From ef5ed4278a8b58ba80ee68a1ce010a89d6621f7a Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Tue, 19 Mar 2024 15:02:02 -0700 Subject: [PATCH 01/38] Various nightly cleanups (#702) - Cleanup `sparse_checkout`, which is not a valid input, so this was never working - Add `manualVersionReplacer` for `markdown-link-check`, since `3.12.1` has been broken for a while and a fix hasn't released - Remove the old download for `gt` since it is no longer a publicly accessible asset. We still have the npm package for newer versions Successful [nightly run](https://github.com/trunk-io/plugins/actions/runs/8347542833/job/22847380037) off this branch. --- .github/workflows/nightly.yaml | 5 ---- .../markdown-link-check.test.ts | 10 +++++++- tools/gt/gt.test.ts | 17 +------------- tools/gt/plugin.yaml | 23 +------------------ 4 files changed, 11 insertions(+), 44 deletions(-) diff --git a/.github/workflows/nightly.yaml b/.github/workflows/nightly.yaml index 3fc46c6f0..81ddd0038 100644 --- a/.github/workflows/nightly.yaml +++ b/.github/workflows/nightly.yaml @@ -127,11 +127,6 @@ jobs: with: ref: ${{ steps.get-release.outputs.tag }} clean: false - sparse_checkout: | - plugin.yaml - linters - actions - tools - name: Overwrite test runners with latest behavior shell: bash diff --git a/linters/markdown-link-check/markdown-link-check.test.ts b/linters/markdown-link-check/markdown-link-check.test.ts index 0c3fc1777..716aba1ea 100644 --- a/linters/markdown-link-check/markdown-link-check.test.ts +++ b/linters/markdown-link-check/markdown-link-check.test.ts @@ -1,3 +1,11 @@ import { linterCheckTest } from "tests"; -linterCheckTest({ linterName: "markdown-link-check" }); +const manualVersionReplacer = (version: string) => { + if (version === "3.12.1") { + // As of 3/19, 3.12.1 cannot check for anchors, so we view it as a bad version. + return "3.11.2"; + } + return version; +}; + +linterCheckTest({ linterName: "markdown-link-check", manualVersionReplacer }); diff --git a/tools/gt/gt.test.ts b/tools/gt/gt.test.ts index 3b45f6c07..22a1912b8 100644 --- a/tools/gt/gt.test.ts +++ b/tools/gt/gt.test.ts @@ -1,20 +1,5 @@ import { makeToolTestConfig, toolTest } from "tests"; -import { skipCPUOS, skipOS } from "tests/utils"; - -toolTest({ - toolName: "gt", - toolVersion: "0.20.19", - testConfigs: [makeToolTestConfig({ command: ["gt", "--version"], expectedOut: "0.20.19" })], - skipTestIf: (version) => { - if (process.env.CI) { - console.log("Skipping gt test for CI until we have better parsing logic."); - return true; - } - - // Unsupported download - return skipCPUOS([{ os: "linux", cpu: "arm64" }])(version); - }, -}); +import { skipOS } from "tests/utils"; toolTest({ toolName: "gt", diff --git a/tools/gt/plugin.yaml b/tools/gt/plugin.yaml index a24042dab..5c1ae2fab 100644 --- a/tools/gt/plugin.yaml +++ b/tools/gt/plugin.yaml @@ -1,32 +1,11 @@ version: 0.1 -downloads: - - name: gt - executable: true - downloads: - - os: - linux: linux - cpu: - x86_64: x86_64 - url: https://github.com/withgraphite/graphite-cli/releases/download/v${version}/gt-${os} - - os: - macos: macos - url: https://github.com/withgraphite/graphite-cli/releases/download/v${version}/gt-${os} - - os: - windows: win - url: https://github.com/withgraphite/graphite-cli/releases/download/v${version}/gt-${os}.exe tools: definitions: - name: gt - version_constraint: ">=1.0.0" + # There used to be a download for older versions, but the assets are no longer available. known_good_version: 1.0.0 runtime: node package: "@withgraphite/graphite-cli" shims: - name: gt target: gt - - name: gt - known_good_version: 0.20.19 - download: gt - shims: - - name: gt - target: gt From 75cc021ece5b9bccf52413ec0522a2223aaa1672 Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Wed, 20 Mar 2024 13:23:12 -0700 Subject: [PATCH 02/38] Add golangci-lint snapshots, cleanup existing snapshots (#705) Upgrade and cleanup: - New `golangci-lint` snapshots for 1.57.0 and tag for release (these were not auto-gen'd because Windows skips some but not all tests) - Remove tags for old release snapshots, since we just made a release - Upgrade the CLI to the latest prod version (closes https://github.com/trunk-io/plugins/pull/704) --- .trunk/trunk.yaml | 4 +- .../biome_v1.6.0_basic_check.check.shot | 1 - .../test_data/biome_v1.6.0_basic_fmt.fmt.shot | 1 - .../biome_v1.6.0_basic_json.fmt.shot | 1 - .../eslint_v8.10.0_bad_install.check.shot | 1 - .../golangci_lint_v1.57.0_all.check.shot | 92 +++++++++++++++++++ .../golangci_lint_v1.57.0_empty.check.shot | 55 +++++++++++ ...langci_lint_v1.57.0_unbuildable.check.shot | 31 +++++++ .../pyright_v1.1.348_basic.check.shot | 1 - .../trufflehog_git_v3.68.0_CUSTOM.check.shot | 1 - .../trufflehog_git_v3.69.0_CUSTOM.check.shot | 1 - .../trufflehog_v3.68.0_buff_size.check.shot | 1 - .../trufflehog_v3.68.0_secrets.check.shot | 1 - ...lehog_v3.68.0_wrong_line_number.check.shot | 1 - .../trufflehog_v3.69.0_buff_size.check.shot | 1 - .../trufflehog_v3.69.0_secrets.check.shot | 1 - ...lehog_v3.69.0_wrong_line_number.check.shot | 1 - 17 files changed, 180 insertions(+), 15 deletions(-) create mode 100644 linters/golangci-lint/test_data/golangci_lint_v1.57.0_all.check.shot create mode 100644 linters/golangci-lint/test_data/golangci_lint_v1.57.0_empty.check.shot create mode 100644 linters/golangci-lint/test_data/golangci_lint_v1.57.0_unbuildable.check.shot diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index eb1b61faf..479320601 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -2,7 +2,7 @@ version: 0.1 # version used for local trunk runs and testing cli: - version: 1.20.2-beta.4 + version: 1.21.0 shell_hooks: enforce: true @@ -17,7 +17,7 @@ plugins: - id: configs uri: https://github.com/trunk-io/configs - ref: v1.0.2 + ref: v1.0.4 lint: # enabled linters inherited from github.com/trunk-io/configs plugin diff --git a/linters/biome/test_data/biome_v1.6.0_basic_check.check.shot b/linters/biome/test_data/biome_v1.6.0_basic_check.check.shot index a8d850004..4c68082f4 100644 --- a/linters/biome/test_data/biome_v1.6.0_basic_check.check.shot +++ b/linters/biome/test_data/biome_v1.6.0_basic_check.check.shot @@ -1,5 +1,4 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -// trunk-upgrade-validation:RELEASE exports[`Testing linter biome test basic_check 1`] = ` { diff --git a/linters/biome/test_data/biome_v1.6.0_basic_fmt.fmt.shot b/linters/biome/test_data/biome_v1.6.0_basic_fmt.fmt.shot index 89fab5e9b..0961c8a09 100644 --- a/linters/biome/test_data/biome_v1.6.0_basic_fmt.fmt.shot +++ b/linters/biome/test_data/biome_v1.6.0_basic_fmt.fmt.shot @@ -1,5 +1,4 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -// trunk-upgrade-validation:RELEASE exports[`Testing formatter biome test basic_fmt 1`] = ` "const foobar = () => {}; diff --git a/linters/biome/test_data/biome_v1.6.0_basic_json.fmt.shot b/linters/biome/test_data/biome_v1.6.0_basic_json.fmt.shot index d2f69a3ac..3b5af7e15 100644 --- a/linters/biome/test_data/biome_v1.6.0_basic_json.fmt.shot +++ b/linters/biome/test_data/biome_v1.6.0_basic_json.fmt.shot @@ -1,5 +1,4 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -// trunk-upgrade-validation:RELEASE exports[`Testing formatter biome test basic_json 1`] = ` "{ "a": "foo", "b": 1, "a": true } diff --git a/linters/eslint/test_data/eslint_v8.10.0_bad_install.check.shot b/linters/eslint/test_data/eslint_v8.10.0_bad_install.check.shot index b45630c46..438aa0f6a 100644 --- a/linters/eslint/test_data/eslint_v8.10.0_bad_install.check.shot +++ b/linters/eslint/test_data/eslint_v8.10.0_bad_install.check.shot @@ -1,5 +1,4 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -// trunk-upgrade-validation:RELEASE exports[`Testing linter eslint test bad_install 1`] = ` { diff --git a/linters/golangci-lint/test_data/golangci_lint_v1.57.0_all.check.shot b/linters/golangci-lint/test_data/golangci_lint_v1.57.0_all.check.shot new file mode 100644 index 000000000..897738f10 --- /dev/null +++ b/linters/golangci-lint/test_data/golangci_lint_v1.57.0_all.check.shot @@ -0,0 +1,92 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP +// trunk-upgrade-validation:RELEASE + +exports[`Testing linter golangci-lint test all 1`] = ` +{ + "issues": [ + { + "autofixOptions": [ + { + "replacements": [ + { + "filePath": "test_data/basic.go", + "length": "34", + "offset": "45", + "replacementText": "// this is the main function 🏃. +", + }, + ], + }, + ], + "code": "godot", + "column": "34", + "file": "test_data/basic.go", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://golangci-lint.run/usage/linters/", + "level": "LEVEL_HIGH", + "line": "6", + "linter": "golangci-lint", + "message": "Comment should end in a period", + "targetType": "go", + }, + { + "code": "errcheck", + "column": "12", + "file": "test_data/basic.go", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://golangci-lint.run/usage/linters/", + "level": "LEVEL_HIGH", + "line": "8", + "linter": "golangci-lint", + "message": "Error return value of \`time.Parse\` is not checked", + "targetType": "go", + }, + { + "code": "unused", + "column": "6", + "file": "test_data/unused_func.go", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://golangci-lint.run/usage/linters/", + "level": "LEVEL_HIGH", + "line": "5", + "linter": "golangci-lint", + "message": "func \`helper\` is unused", + "targetType": "go", + }, + { + "code": "typecheck", + "file": "test_data/wrapper/printer.go", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://golangci-lint.run/usage/linters/", + "level": "LEVEL_HIGH", + "line": "1", + "linter": "golangci-lint", + "message": ": # golangcilint_linter_test/wrapper +wrapper/printer.go:12:23: undefined: Wrapper2", + "targetType": "go", + }, + ], + "lintActions": [ + { + "command": "lint", + "fileGroupName": "go", + "linter": "golangci-lint", + "paths": [ + "test_data", + ], + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "lint", + "fileGroupName": "go", + "linter": "golangci-lint", + "paths": [ + "test_data/wrapper", + ], + "verb": "TRUNK_VERB_CHECK", + }, + ], + "taskFailures": [], + "unformattedFiles": [], +} +`; diff --git a/linters/golangci-lint/test_data/golangci_lint_v1.57.0_empty.check.shot b/linters/golangci-lint/test_data/golangci_lint_v1.57.0_empty.check.shot new file mode 100644 index 000000000..08f295adc --- /dev/null +++ b/linters/golangci-lint/test_data/golangci_lint_v1.57.0_empty.check.shot @@ -0,0 +1,55 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP +// trunk-upgrade-validation:RELEASE + +exports[`Testing linter golangci-lint test empty 1`] = ` +{ + "issues": [ + { + "code": "typecheck", + "column": "1", + "file": "test_data/empty.go", + "issueClass": "ISSUE_CLASS_NEW", + "issueUrl": "https://golangci-lint.run/usage/linters/", + "level": "LEVEL_HIGH", + "line": "1", + "linter": "golangci-lint", + "message": "expected 'package', found 'EOF'", + "targetType": "go", + }, + { + "code": "typecheck", + "file": "test_data/wrapper/printer.go", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://golangci-lint.run/usage/linters/", + "level": "LEVEL_HIGH", + "line": "1", + "linter": "golangci-lint", + "message": ": # golangcilint_linter_test/wrapper +wrapper/printer.go:12:23: undefined: Wrapper2", + "targetType": "go", + }, + ], + "lintActions": [ + { + "command": "lint", + "fileGroupName": "go", + "linter": "golangci-lint", + "paths": [ + "test_data", + ], + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "lint", + "fileGroupName": "go", + "linter": "golangci-lint", + "paths": [ + "test_data/wrapper", + ], + "verb": "TRUNK_VERB_CHECK", + }, + ], + "taskFailures": [], + "unformattedFiles": [], +} +`; diff --git a/linters/golangci-lint/test_data/golangci_lint_v1.57.0_unbuildable.check.shot b/linters/golangci-lint/test_data/golangci_lint_v1.57.0_unbuildable.check.shot new file mode 100644 index 000000000..5e14a0891 --- /dev/null +++ b/linters/golangci-lint/test_data/golangci_lint_v1.57.0_unbuildable.check.shot @@ -0,0 +1,31 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP +// trunk-upgrade-validation:RELEASE + +exports[`Testing linter golangci-lint test unbuildable 1`] = ` +{ + "issues": [ + { + "code": "error", + "file": ".", + "issueClass": "ISSUE_CLASS_NEW", + "level": "LEVEL_HIGH", + "linter": "golangci-lint", + "message": "typechecking error: build constraints exclude all Go files in /tmp/plugins_", + "targetType": "go", + }, + ], + "lintActions": [ + { + "command": "lint", + "fileGroupName": "go", + "linter": "golangci-lint", + "paths": [ + ".", + ], + "verb": "TRUNK_VERB_CHECK", + }, + ], + "taskFailures": [], + "unformattedFiles": [], +} +`; diff --git a/linters/pyright/test_data/pyright_v1.1.348_basic.check.shot b/linters/pyright/test_data/pyright_v1.1.348_basic.check.shot index 578bd08c6..add5d7bf5 100644 --- a/linters/pyright/test_data/pyright_v1.1.348_basic.check.shot +++ b/linters/pyright/test_data/pyright_v1.1.348_basic.check.shot @@ -1,5 +1,4 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -// trunk-upgrade-validation:RELEASE exports[`Testing linter pyright test basic 1`] = ` { diff --git a/linters/trufflehog/test_data/trufflehog_git_v3.68.0_CUSTOM.check.shot b/linters/trufflehog/test_data/trufflehog_git_v3.68.0_CUSTOM.check.shot index 9f4c1ce9c..270fba015 100644 --- a/linters/trufflehog/test_data/trufflehog_git_v3.68.0_CUSTOM.check.shot +++ b/linters/trufflehog/test_data/trufflehog_git_v3.68.0_CUSTOM.check.shot @@ -1,5 +1,4 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -// trunk-upgrade-validation:RELEASE exports[`Testing linter trufflehog-git test CUSTOM 1`] = ` { diff --git a/linters/trufflehog/test_data/trufflehog_git_v3.69.0_CUSTOM.check.shot b/linters/trufflehog/test_data/trufflehog_git_v3.69.0_CUSTOM.check.shot index ef6b700b9..58b9a36af 100644 --- a/linters/trufflehog/test_data/trufflehog_git_v3.69.0_CUSTOM.check.shot +++ b/linters/trufflehog/test_data/trufflehog_git_v3.69.0_CUSTOM.check.shot @@ -1,5 +1,4 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -// trunk-upgrade-validation:RELEASE exports[`Testing linter trufflehog-git test CUSTOM 1`] = ` { diff --git a/linters/trufflehog/test_data/trufflehog_v3.68.0_buff_size.check.shot b/linters/trufflehog/test_data/trufflehog_v3.68.0_buff_size.check.shot index da6cc9615..1bda3a01c 100644 --- a/linters/trufflehog/test_data/trufflehog_v3.68.0_buff_size.check.shot +++ b/linters/trufflehog/test_data/trufflehog_v3.68.0_buff_size.check.shot @@ -1,5 +1,4 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -// trunk-upgrade-validation:RELEASE exports[`Testing linter trufflehog test buff_size 1`] = ` { diff --git a/linters/trufflehog/test_data/trufflehog_v3.68.0_secrets.check.shot b/linters/trufflehog/test_data/trufflehog_v3.68.0_secrets.check.shot index 843140cbf..5c737ae40 100644 --- a/linters/trufflehog/test_data/trufflehog_v3.68.0_secrets.check.shot +++ b/linters/trufflehog/test_data/trufflehog_v3.68.0_secrets.check.shot @@ -1,5 +1,4 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -// trunk-upgrade-validation:RELEASE exports[`Testing linter trufflehog test secrets 1`] = ` { diff --git a/linters/trufflehog/test_data/trufflehog_v3.68.0_wrong_line_number.check.shot b/linters/trufflehog/test_data/trufflehog_v3.68.0_wrong_line_number.check.shot index 97b99d614..fa6ebab37 100644 --- a/linters/trufflehog/test_data/trufflehog_v3.68.0_wrong_line_number.check.shot +++ b/linters/trufflehog/test_data/trufflehog_v3.68.0_wrong_line_number.check.shot @@ -1,5 +1,4 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -// trunk-upgrade-validation:RELEASE exports[`Testing linter trufflehog test wrong_line_number 1`] = ` { diff --git a/linters/trufflehog/test_data/trufflehog_v3.69.0_buff_size.check.shot b/linters/trufflehog/test_data/trufflehog_v3.69.0_buff_size.check.shot index da6cc9615..1bda3a01c 100644 --- a/linters/trufflehog/test_data/trufflehog_v3.69.0_buff_size.check.shot +++ b/linters/trufflehog/test_data/trufflehog_v3.69.0_buff_size.check.shot @@ -1,5 +1,4 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -// trunk-upgrade-validation:RELEASE exports[`Testing linter trufflehog test buff_size 1`] = ` { diff --git a/linters/trufflehog/test_data/trufflehog_v3.69.0_secrets.check.shot b/linters/trufflehog/test_data/trufflehog_v3.69.0_secrets.check.shot index 76fde58b1..589c7bb56 100644 --- a/linters/trufflehog/test_data/trufflehog_v3.69.0_secrets.check.shot +++ b/linters/trufflehog/test_data/trufflehog_v3.69.0_secrets.check.shot @@ -1,5 +1,4 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -// trunk-upgrade-validation:RELEASE exports[`Testing linter trufflehog test secrets 1`] = ` { diff --git a/linters/trufflehog/test_data/trufflehog_v3.69.0_wrong_line_number.check.shot b/linters/trufflehog/test_data/trufflehog_v3.69.0_wrong_line_number.check.shot index 97b99d614..fa6ebab37 100644 --- a/linters/trufflehog/test_data/trufflehog_v3.69.0_wrong_line_number.check.shot +++ b/linters/trufflehog/test_data/trufflehog_v3.69.0_wrong_line_number.check.shot @@ -1,5 +1,4 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -// trunk-upgrade-validation:RELEASE exports[`Testing linter trufflehog test wrong_line_number 1`] = ` { From 6ffd7794d786bd55c705523d68e18ce84800c10f Mon Sep 17 00:00:00 2001 From: Chris Clearwater Date: Wed, 20 Mar 2024 16:43:51 -0700 Subject: [PATCH 03/38] Don't run clang-tidy from lsp. (#706) Clangd is better for that use-case. --- linters/clang-tidy/plugin.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/linters/clang-tidy/plugin.yaml b/linters/clang-tidy/plugin.yaml index ad968b68e..65535d29f 100644 --- a/linters/clang-tidy/plugin.yaml +++ b/linters/clang-tidy/plugin.yaml @@ -42,6 +42,7 @@ lint: cache_results: true run_from: ${compile_command} read_output_from: tmp_file + run_when: [cli, monitor, ci] # Do not run from lsp - clangd is more optimized for this use-case. max_concurrency: 4 # Clang-tidy can be very memory intensive, limit the default concurrency. tools: [clang-tidy] suggest_if: config_present From 82587dee534d3cb1d42bfa912e7bee5be0113af2 Mon Sep 17 00:00:00 2001 From: Chris Clearwater Date: Thu, 21 Mar 2024 14:26:51 -0700 Subject: [PATCH 04/38] Add tofu tool and linter (#707) This is a fork of terraform. Just copied the terraform files and replaced terraform with tofu when needed / fixed the download / changed the version / simplified the backwards compat stuff. --- README.md | 3 +- linters/tofu/plugin.yaml | 39 ++++++++++++ .../tofu_v1.6.2_variables.check.shot | 60 +++++++++++++++++++ .../test_data/tofu_v1.6.2_variables.fmt.shot | 13 ++++ linters/tofu/test_data/variables.in.tf | 8 +++ linters/tofu/tofu.test.ts | 18 ++++++ tools/tofu/plugin.yaml | 19 ++++++ tools/tofu/tofu.test.ts | 11 ++++ 8 files changed, 170 insertions(+), 1 deletion(-) create mode 100644 linters/tofu/plugin.yaml create mode 100644 linters/tofu/test_data/tofu_v1.6.2_variables.check.shot create mode 100644 linters/tofu/test_data/tofu_v1.6.2_variables.fmt.shot create mode 100644 linters/tofu/test_data/variables.in.tf create mode 100644 linters/tofu/tofu.test.ts create mode 100644 tools/tofu/plugin.yaml create mode 100644 tools/tofu/tofu.test.ts diff --git a/README.md b/README.md index 25535fcfa..a986e2a77 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ trunk check enable {linter} | SQL | [sqlfluff], [sqlfmt], [sql-formatter] | | SVG | [svgo] | | Swift | [stringslint], [swiftlint], [swiftformat] | -| Terraform | [terraform] (validate and fmt), [checkov], [tflint],[tfsec],[terrascan] | +| Terraform | [terraform] (validate and fmt), [checkov], [tflint], [tfsec], [terrascan], [tofu] | | Terragrunt | [terragrunt] | | Textproto | [txtpbfmt] | | TOML | [taplo] | @@ -177,6 +177,7 @@ trunk check enable {linter} [taplo]: https://github.com/tamasfe/taplo#readme [terrascan]: https://github.com/tenable/terrascan#readme [terraform]: https://developer.hashicorp.com/terraform/cli/code +[tofu]: https://opentofu.org/ [terragrunt]: https://terragrunt.gruntwork.io/docs/getting-started/quick-start/ [tflint]: https://github.com/terraform-linters/tflint#readme [tfsec]: https://github.com/aquasecurity/tfsec diff --git a/linters/tofu/plugin.yaml b/linters/tofu/plugin.yaml new file mode 100644 index 000000000..68e1bf66b --- /dev/null +++ b/linters/tofu/plugin.yaml @@ -0,0 +1,39 @@ +version: 0.1 +lint: + definitions: + - name: tofu + files: [terraform] + tools: [tofu] + commands: + - name: validate + # Custom parser type defined in the trunk cli to handle tofu's JSON output. + output: terraform_validate + target: ${parent} + run: tofu validate -json + run_from: ${target_directory} + success_codes: [0, 1] + enabled: false + - name: fmt + output: rewrite + formatter: true + run: tofu fmt -no-color - + stdin: true + success_codes: [0] + cache_results: true + suggest_if: never + environment: + - name: PATH + list: ["${linter}"] + - name: GITHUB_APP_ID + value: ${env.GITHUB_APP_ID} + optional: true + - name: GITHUB_APP_INSTALLATION_ID + value: ${env.GITHUB_APP_INSTALLATION_ID} + optional: true + - name: GITHUB_APP_PEM_FILE + value: ${env.GITHUB_APP_PEM_FILE} + optional: true + known_good_version: 1.6.2 + version_command: + parse_regex: ${semver} + run: tofu --version diff --git a/linters/tofu/test_data/tofu_v1.6.2_variables.check.shot b/linters/tofu/test_data/tofu_v1.6.2_variables.check.shot new file mode 100644 index 000000000..bc325d35a --- /dev/null +++ b/linters/tofu/test_data/tofu_v1.6.2_variables.check.shot @@ -0,0 +1,60 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Testing linter tofu test variables 1`] = ` +{ + "issues": [ + { + "code": "Invalid quoted type constraints", + "file": "test_data/variables.in.tf", + "issueClass": "ISSUE_CLASS_EXISTING", + "level": "LEVEL_HIGH", + "line": "2", + "linter": "tofu", + "message": "OpenTofu 0.11 and earlier required type constraints to be given in quotes, but that form is now deprecated and will be removed in a future version of OpenTofu. Remove the quotes around "map" and write map(string) instead to explicitly indicate that the map elements are strings.", + "targetType": "terraform", + }, + ], + "lintActions": [ + { + "command": "fmt", + "fileGroupName": "terraform", + "linter": "tofu", + "paths": [ + "test_data/variables.in.tf", + ], + "verb": "TRUNK_VERB_FMT", + }, + { + "command": "validate", + "fileGroupName": "terraform", + "linter": "tofu", + "paths": [ + "test_data", + ], + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "validate", + "fileGroupName": "terraform", + "linter": "tofu", + "paths": [ + "test_data", + ], + "upstream": true, + "verb": "TRUNK_VERB_CHECK", + }, + ], + "taskFailures": [], + "unformattedFiles": [ + { + "column": "1", + "file": "test_data/variables.in.tf", + "issueClass": "ISSUE_CLASS_UNFORMATTED", + "level": "LEVEL_HIGH", + "line": "1", + "linter": "tofu", + "message": "Incorrect formatting, autoformat by running 'trunk fmt'", + }, + ], +} +`; diff --git a/linters/tofu/test_data/tofu_v1.6.2_variables.fmt.shot b/linters/tofu/test_data/tofu_v1.6.2_variables.fmt.shot new file mode 100644 index 000000000..7ead6f5f8 --- /dev/null +++ b/linters/tofu/test_data/tofu_v1.6.2_variables.fmt.shot @@ -0,0 +1,13 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Testing formatter tofu test variables 1`] = ` +"variable "ssl_certificates" { + type = map(string) + default = { + lorem-elb-us-west-3 = "lorem" + ipsum-elb-us-east-1 = "ipsum" + dolor-elb-us-east-2 = "dolor" + } +} +" +`; diff --git a/linters/tofu/test_data/variables.in.tf b/linters/tofu/test_data/variables.in.tf new file mode 100644 index 000000000..3743a3fef --- /dev/null +++ b/linters/tofu/test_data/variables.in.tf @@ -0,0 +1,8 @@ + variable "ssl_certificates" { + type = "map" + default = { + lorem-elb-us-west-3 = "lorem" + ipsum-elb-us-east-1 = "ipsum" + dolor-elb-us-east-2 = "dolor" + } +} diff --git a/linters/tofu/tofu.test.ts b/linters/tofu/tofu.test.ts new file mode 100644 index 000000000..616f4a3b5 --- /dev/null +++ b/linters/tofu/tofu.test.ts @@ -0,0 +1,18 @@ +import { linterCheckTest, linterFmtTest } from "tests"; +import { TrunkLintDriver } from "tests/driver"; + +// Due to tofu's validate subcommand being disabled by default, we need to manually enable it in our test's trunk.yaml. +const preCheck = (driver: TrunkLintDriver) => { + const trunkYamlPath = ".trunk/trunk.yaml"; + const currentContents = driver.readFile(trunkYamlPath); + const sqlfluffRegex = /- tofu@(.+)\n/; + const newContents = currentContents.replace( + sqlfluffRegex, + "- tofu@$1:\n commands: [validate, fmt]\n", + ); + driver.writeFile(trunkYamlPath, newContents); +}; + +linterCheckTest({ linterName: "tofu", preCheck }); + +linterFmtTest({ linterName: "tofu" }); diff --git a/tools/tofu/plugin.yaml b/tools/tofu/plugin.yaml new file mode 100644 index 000000000..beb10b9d6 --- /dev/null +++ b/tools/tofu/plugin.yaml @@ -0,0 +1,19 @@ +version: 0.1 +downloads: + - name: tofu + version: 1.6.2 + downloads: + - os: + linux: linux + macos: darwin + windows: windows + cpu: + x86_64: amd64 + arm_64: arm64 + url: https://github.com/opentofu/opentofu/releases/download/v${version}/tofu_${version}_${os}_${cpu}.zip +tools: + definitions: + - name: tofu + download: tofu + shims: [tofu] + known_good_version: 1.6.2 diff --git a/tools/tofu/tofu.test.ts b/tools/tofu/tofu.test.ts new file mode 100644 index 000000000..bacd89cca --- /dev/null +++ b/tools/tofu/tofu.test.ts @@ -0,0 +1,11 @@ +import { makeToolTestConfig, toolTest } from "tests"; +toolTest({ + toolName: "tofu", + toolVersion: "1.6.2", + testConfigs: [ + makeToolTestConfig({ + command: ["tofu", "--version"], + expectedOut: "OpenTofu v1.6.2", + }), + ], +}); From 1e241f93d48ad62c2461a35e5b041102f026d37e Mon Sep 17 00:00:00 2001 From: pat-trunk-io Date: Thu, 21 Mar 2024 14:38:48 -0700 Subject: [PATCH 05/38] Add difft as tool (#708) TreeSitter diff tool https://difftastic.wilfred.me.uk/ https://news.ycombinator.com/item?id=39778412 --- tools/difft/difft.test.ts | 6 ++++++ tools/difft/plugin.yaml | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 tools/difft/difft.test.ts create mode 100644 tools/difft/plugin.yaml diff --git a/tools/difft/difft.test.ts b/tools/difft/difft.test.ts new file mode 100644 index 000000000..40e310e56 --- /dev/null +++ b/tools/difft/difft.test.ts @@ -0,0 +1,6 @@ +import { toolInstallTest } from "tests"; + +toolInstallTest({ + toolName: "difft", + toolVersion: "0.56.1", +}); diff --git a/tools/difft/plugin.yaml b/tools/difft/plugin.yaml new file mode 100644 index 000000000..eb0eb016f --- /dev/null +++ b/tools/difft/plugin.yaml @@ -0,0 +1,22 @@ +version: 0.1 +downloads: + - name: difft + downloads: + - os: + linux: unknown-linux-gnu + macos: apple-darwin + cpu: + x86_64: x86_64 + arm_64: aarch64 + url: https://github.com/Wilfred/difftastic/releases/download/${version}/difft-${cpu}-${os}.tar.gz + - os: + windows: pc-windows-msvc + cpu: + x86_64: x86_64 + url: https://github.com/Wilfred/difftastic/releases/download/${version}/difft-${cpu}-${os}.zip +tools: + definitions: + - name: difft + download: difft + known_good_version: 0.56.1 + shims: [difft] From c6a3a878a2200d2b9966d72fb69c91de7d4f139b Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Thu, 21 Mar 2024 14:39:52 -0700 Subject: [PATCH 06/38] Add tool: yq (#655) Replaces #653. `yq` is the yaml equivalent of `jq`. Works really nicely to print a lint definition using: `trunk config print | .trunk/tools/yq '.lint.definitions[] | select(.name == "eslint")'`, which could be streamlined via a Trunk Action if desired once tools are supported in Actions. --- tools/yq/plugin.yaml | 23 +++++++++++++++++++++++ tools/yq/yq.test.ts | 6 ++++++ 2 files changed, 29 insertions(+) create mode 100644 tools/yq/plugin.yaml create mode 100644 tools/yq/yq.test.ts diff --git a/tools/yq/plugin.yaml b/tools/yq/plugin.yaml new file mode 100644 index 000000000..79c05943c --- /dev/null +++ b/tools/yq/plugin.yaml @@ -0,0 +1,23 @@ +version: 0.1 +downloads: + - name: yq + downloads: + - os: + linux: linux + macos: darwin + cpu: + x86_64: 386 + arm_64: arm64 + url: https://github.com/mikefarah/yq/releases/download/v${version}/yq_${os}_${cpu}.tar.gz + - os: + windows: windows + cpu: + x86_64: 386 + arm_64: arm64 + url: https://github.com/mikefarah/yq/releases/download/v${version}/yq_${os}_${cpu}.zip +tools: + definitions: + - name: yq + download: yq + known_good_version: 4.40.5 + shims: [yq] diff --git a/tools/yq/yq.test.ts b/tools/yq/yq.test.ts new file mode 100644 index 000000000..33c1d3c48 --- /dev/null +++ b/tools/yq/yq.test.ts @@ -0,0 +1,6 @@ +import { toolInstallTest } from "tests"; + +toolInstallTest({ + toolName: "yq", + toolVersion: "4.40.5", +}); From bd33b4d29ac73f33a24a92669757543bf3676065 Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Mon, 25 Mar 2024 14:34:55 -0700 Subject: [PATCH 07/38] Support pmd@7.0.0 (#712) Pmd released [7.0.0](https://github.com/pmd/pmd/releases/tag/pmd_releases%2F7.0.0), which includes some expansions on their CLI and better support for Java (migration guide [here](https://docs.pmd-code.org/pmd-doc-7.0.0/pmd_userdocs_migrating_to_pmd7.html)). Updates the download, commands, and snapshot. Commands are first-match, so 7.0.0 works cleanly on all platforms. --- linters/pmd/plugin.yaml | 45 ++++-- linters/pmd/pmd.test.ts | 14 +- ...eck.shot => pmd_v6.55.0_CUSTOM.check.shot} | 57 ++++++- .../test_data/pmd_v6.55.0_hello.check.shot | 67 --------- .../test_data/pmd_v7.0.0_CUSTOM.check.shot | 140 ++++++++++++++++++ 5 files changed, 239 insertions(+), 84 deletions(-) rename linters/pmd/test_data/{pmd_v6.55.0_apex.check.shot => pmd_v6.55.0_CUSTOM.check.shot} (54%) delete mode 100644 linters/pmd/test_data/pmd_v6.55.0_hello.check.shot create mode 100644 linters/pmd/test_data/pmd_v7.0.0_CUSTOM.check.shot diff --git a/linters/pmd/plugin.yaml b/linters/pmd/plugin.yaml index 4884c145f..e85573203 100644 --- a/linters/pmd/plugin.yaml +++ b/linters/pmd/plugin.yaml @@ -2,49 +2,66 @@ version: 0.1 lint: downloads: - name: pmd + args: + semver: ${version}=>(pmd_releases\/)*(?P.*) downloads: + - url: https://github.com/pmd/pmd/releases/download/pmd_releases%2F${semver}/pmd-dist-${semver}-bin.zip + version: ">=7.0.0" + strip_components: 1 - url: https://github.com/pmd/pmd/releases/download/pmd_releases%2F${semver}/pmd-bin-${semver}.zip strip_components: 1 - args: - semver: ${version}=>(pmd_releases\/)*(?P.*) definitions: - name: pmd download: pmd commands: + - name: lint-apex + version: ">=7.0.0" + output: sarif + # Override this in your repo if you have custom rulesets + run: pmd check -R rulesets/apex/quickstart.xml -f sarif -d ${target} + success_codes: [0, 4] + read_output_from: stdout + files: [apex] - name: lint-apex platforms: [windows] output: sarif - # Override this in your repo if you have a custom rulesets + # Override this in your repo if you have custom rulesets run: pmd.bat -R rulesets/apex/quickstart.xml -f sarif -d ${target} success_codes: [0, 4] read_output_from: stdout - files: - - apex + files: [apex] - name: lint-apex + # 6.55.0 uses run.sh in place of pmd for non-Windows output: sarif - # Override this in your repo if you have a custom rulesets + # Override this in your repo if you have custom rulesets run: run.sh pmd -R rulesets/apex/quickstart.xml -f sarif -d ${target} success_codes: [0, 4] read_output_from: stdout - files: - - apex + files: [apex] + - name: lint-java + version: ">=7.0.0" + output: sarif + # Override this in your repo if you have custom rulesets + run: pmd check -R rulesets/java/quickstart.xml -f sarif -d ${target} + success_codes: [0, 4] + read_output_from: stdout + files: [java] - name: lint-java platforms: [windows] output: sarif - # Override this in your repo if you have a custom rulesets + # Override this in your repo if you have custom rulesets run: pmd.bat -R rulesets/java/quickstart.xml -f sarif -d ${target} success_codes: [0, 4] read_output_from: stdout - files: - - java + files: [java] - name: lint-java + # 6.55.0 uses run.sh in place of pmd output: sarif - # Override this in your repo if you have a custom rulesets + # Override this in your repo if you have custom rulesets run: run.sh pmd -R rulesets/java/quickstart.xml -f sarif -d ${target} success_codes: [0, 4] read_output_from: stdout - files: - - java + files: [java] runtime: java suggest_if: never known_good_version: 6.55.0 diff --git a/linters/pmd/pmd.test.ts b/linters/pmd/pmd.test.ts index 5ccf58c6a..7b56e8f1a 100644 --- a/linters/pmd/pmd.test.ts +++ b/linters/pmd/pmd.test.ts @@ -1,5 +1,15 @@ -import { linterCheckTest } from "tests"; +import semver from "semver"; +import { customLinterCheckTest } from "tests"; +import { TEST_DATA } from "tests/utils"; -linterCheckTest({ +const versionGreaterThanOrEqual = (a: string, b: string) => { + const normalizedA = a.replace("pmd_releases/", ""); + const normalizedB = b.replace("pmd_releases/", ""); + return semver.gte(normalizedA, normalizedB); +}; + +customLinterCheckTest({ linterName: "pmd", + args: TEST_DATA, + versionGreaterThanOrEqual, }); diff --git a/linters/pmd/test_data/pmd_v6.55.0_apex.check.shot b/linters/pmd/test_data/pmd_v6.55.0_CUSTOM.check.shot similarity index 54% rename from linters/pmd/test_data/pmd_v6.55.0_apex.check.shot rename to linters/pmd/test_data/pmd_v6.55.0_CUSTOM.check.shot index 33cad54e7..14056c099 100644 --- a/linters/pmd/test_data/pmd_v6.55.0_apex.check.shot +++ b/linters/pmd/test_data/pmd_v6.55.0_CUSTOM.check.shot @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Testing linter pmd test apex 1`] = ` +exports[`Testing linter pmd test CUSTOM 1`] = ` { "issues": [ { @@ -57,6 +57,42 @@ exports[`Testing linter pmd test apex 1`] = ` ], "targetType": "apex", }, + { + "code": "NoPackage", + "column": "1", + "file": "test_data/hello.in.java", + "issueClass": "ISSUE_CLASS_EXISTING", + "level": "LEVEL_HIGH", + "line": "3", + "linter": "pmd", + "message": "All classes, interfaces, enums and annotations must belong to a named package", + "ranges": [ + { + "filePath": "test_data/hello.in.java", + "length": "116", + "offset": "23", + }, + ], + "targetType": "java", + }, + { + "code": "UseUtilityClass", + "column": "18", + "file": "test_data/hello.in.java", + "issueClass": "ISSUE_CLASS_EXISTING", + "level": "LEVEL_HIGH", + "line": "3", + "linter": "pmd", + "message": "All methods are static. Consider using a utility class instead. Alternatively, you could add a private constructor or make the class abstract to silence this warning.", + "ranges": [ + { + "filePath": "test_data/hello.in.java", + "length": "99", + "offset": "40", + }, + ], + "targetType": "java", + }, ], "lintActions": [ { @@ -78,6 +114,25 @@ exports[`Testing linter pmd test apex 1`] = ` "upstream": true, "verb": "TRUNK_VERB_CHECK", }, + { + "command": "lint-java", + "fileGroupName": "java", + "linter": "pmd", + "paths": [ + "test_data/hello.in.java", + ], + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "lint-java", + "fileGroupName": "java", + "linter": "pmd", + "paths": [ + "test_data/hello.in.java", + ], + "upstream": true, + "verb": "TRUNK_VERB_CHECK", + }, ], "taskFailures": [], "unformattedFiles": [], diff --git a/linters/pmd/test_data/pmd_v6.55.0_hello.check.shot b/linters/pmd/test_data/pmd_v6.55.0_hello.check.shot deleted file mode 100644 index 49509de8a..000000000 --- a/linters/pmd/test_data/pmd_v6.55.0_hello.check.shot +++ /dev/null @@ -1,67 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Testing linter pmd test hello 1`] = ` -{ - "issues": [ - { - "code": "NoPackage", - "column": "1", - "file": "test_data/hello.in.java", - "issueClass": "ISSUE_CLASS_EXISTING", - "level": "LEVEL_HIGH", - "line": "3", - "linter": "pmd", - "message": "All classes, interfaces, enums and annotations must belong to a named package", - "ranges": [ - { - "filePath": "test_data/hello.in.java", - "length": "116", - "offset": "23", - }, - ], - "targetType": "java", - }, - { - "code": "UseUtilityClass", - "column": "18", - "file": "test_data/hello.in.java", - "issueClass": "ISSUE_CLASS_EXISTING", - "level": "LEVEL_HIGH", - "line": "3", - "linter": "pmd", - "message": "All methods are static. Consider using a utility class instead. Alternatively, you could add a private constructor or make the class abstract to silence this warning.", - "ranges": [ - { - "filePath": "test_data/hello.in.java", - "length": "99", - "offset": "40", - }, - ], - "targetType": "java", - }, - ], - "lintActions": [ - { - "command": "lint-java", - "fileGroupName": "java", - "linter": "pmd", - "paths": [ - "test_data/hello.in.java", - ], - "verb": "TRUNK_VERB_CHECK", - }, - { - "command": "lint-java", - "fileGroupName": "java", - "linter": "pmd", - "paths": [ - "test_data/hello.in.java", - ], - "upstream": true, - "verb": "TRUNK_VERB_CHECK", - }, - ], - "taskFailures": [], - "unformattedFiles": [], -} -`; diff --git a/linters/pmd/test_data/pmd_v7.0.0_CUSTOM.check.shot b/linters/pmd/test_data/pmd_v7.0.0_CUSTOM.check.shot new file mode 100644 index 000000000..bed649a29 --- /dev/null +++ b/linters/pmd/test_data/pmd_v7.0.0_CUSTOM.check.shot @@ -0,0 +1,140 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Testing linter pmd test CUSTOM 1`] = ` +{ + "issues": [ + { + "code": "ApexDoc", + "column": "8", + "file": "test_data/apex.in.cls", + "issueClass": "ISSUE_CLASS_EXISTING", + "level": "LEVEL_HIGH", + "line": "1", + "linter": "pmd", + "message": "Missing ApexDoc comment", + "ranges": [ + { + "filePath": "test_data/apex.in.cls", + "length": "69", + "offset": "7", + }, + ], + "targetType": "apex", + }, + { + "code": "AvoidGlobalModifier", + "column": "8", + "file": "test_data/apex.in.cls", + "issueClass": "ISSUE_CLASS_EXISTING", + "level": "LEVEL_HIGH", + "line": "1", + "linter": "pmd", + "message": "Avoid using global modifier", + "ranges": [ + { + "filePath": "test_data/apex.in.cls", + "length": "69", + "offset": "7", + }, + ], + "targetType": "apex", + }, + { + "code": "ApexDoc", + "column": "8", + "file": "test_data/apex.in.cls", + "issueClass": "ISSUE_CLASS_EXISTING", + "level": "LEVEL_HIGH", + "line": "2", + "linter": "pmd", + "message": "Missing ApexDoc comment", + "ranges": [ + { + "filePath": "test_data/apex.in.cls", + "length": "41", + "offset": "33", + }, + ], + "targetType": "apex", + }, + { + "code": "NoPackage", + "column": "1", + "file": "test_data/hello.in.java", + "issueClass": "ISSUE_CLASS_EXISTING", + "level": "LEVEL_HIGH", + "line": "3", + "linter": "pmd", + "message": "All classes, interfaces, enums and annotations must belong to a named package", + "ranges": [ + { + "filePath": "test_data/hello.in.java", + "length": "5", + "offset": "23", + }, + ], + "targetType": "java", + }, + { + "code": "UseUtilityClass", + "column": "1", + "file": "test_data/hello.in.java", + "issueClass": "ISSUE_CLASS_EXISTING", + "level": "LEVEL_HIGH", + "line": "3", + "linter": "pmd", + "message": "This utility class has a non-private constructor", + "ranges": [ + { + "filePath": "test_data/hello.in.java", + "length": "5", + "offset": "23", + }, + ], + "targetType": "java", + }, + ], + "lintActions": [ + { + "command": "lint-apex", + "fileGroupName": "apex", + "linter": "pmd", + "paths": [ + "test_data/apex.in.cls", + ], + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "lint-apex", + "fileGroupName": "apex", + "linter": "pmd", + "paths": [ + "test_data/apex.in.cls", + ], + "upstream": true, + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "lint-java", + "fileGroupName": "java", + "linter": "pmd", + "paths": [ + "test_data/hello.in.java", + ], + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "lint-java", + "fileGroupName": "java", + "linter": "pmd", + "paths": [ + "test_data/hello.in.java", + ], + "upstream": true, + "verb": "TRUNK_VERB_CHECK", + }, + ], + "taskFailures": [], + "unformattedFiles": [], +} +`; From 39047665b5f8d5fbe49168fa357be64932dc8340 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 15:09:40 -0700 Subject: [PATCH 08/38] Bump the dependencies group with 3 updates (#711) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps the dependencies group with 3 updates: [trunk-io/trunk-action](https://github.com/trunk-io/trunk-action), [github/codeql-action](https://github.com/github/codeql-action) and [actions/cache](https://github.com/actions/cache). Updates `trunk-io/trunk-action` from 1.1.10 to 1.1.11
Release notes

Sourced from trunk-io/trunk-action's releases.

v1.1.11

What's Changed

  • Adds an action to setup trunk: trunk-io/trunk-action/setup@v1 (#225)

Full Changelog: https://github.com/trunk-io/trunk-action/compare/v1.1.10...v1.1.11

Commits

Updates `github/codeql-action` from 3.24.7 to 3.24.9
Changelog

Sourced from github/codeql-action's changelog.

CodeQL Action Changelog

See the releases page for the relevant changes to the CodeQL CLI and language packs.

Note that the only difference between v2 and v3 of the CodeQL Action is the node version they support, with v3 running on node 20 while we continue to release v2 to support running on node 16. For example 3.22.11 was the first v3 release and is functionally identical to 2.22.11. This approach ensures an easy way to track exactly which features are included in different versions, indicated by the minor and patch version numbers.

[UNRELEASED]

No user facing changes.

3.24.9 - 22 Mar 2024

  • Update default CodeQL bundle version to 2.16.5. #2203

3.24.8 - 18 Mar 2024

  • Improve the ease of debugging extraction issues by increasing the verbosity of the extractor logs when running in debug mode. #2195

3.24.7 - 12 Mar 2024

  • Update default CodeQL bundle version to 2.16.4. #2185

3.24.6 - 29 Feb 2024

No user facing changes.

3.24.5 - 23 Feb 2024

  • Update default CodeQL bundle version to 2.16.3. #2156

3.24.4 - 21 Feb 2024

  • Fix an issue where an existing, but empty, /sys/fs/cgroup/cpuset.cpus file always resulted in a single-threaded run. #2151

3.24.3 - 15 Feb 2024

  • Fix an issue where the CodeQL Action would fail to load a configuration specified by the config input to the init Action. #2147

3.24.2 - 15 Feb 2024

  • Enable improved multi-threaded performance on larger runners for GitHub Enterprise Server users. This feature is already available to GitHub.com users. #2141

3.24.1 - 13 Feb 2024

  • Update default CodeQL bundle version to 2.16.2. #2124
  • The CodeQL action no longer fails if it can't write to the telemetry api endpoint. #2121

3.24.0 - 02 Feb 2024

  • CodeQL Python analysis will no longer install dependencies on GitHub Enterprise Server, as is already the case for GitHub.com. See release notes for 3.23.0 for more details. #2106

... (truncated)

Commits
  • 1b1aada Merge pull request #2208 from github/update-v3.24.9-09d4101d2
  • 6505708 Update changelog for v3.24.9
  • 09d4101 Merge pull request #2203 from github/update-bundle/codeql-bundle-v2.16.5
  • a3ab02e Merge branch 'main' into update-bundle/codeql-bundle-v2.16.5
  • 9cf4574 Add changelog note
  • 964f5e7 Merge pull request #2207 from github/henrymercer/more-processing-error-catego...
  • 9c0c35b Merge pull request #2206 from github/henrymercer/improved-autobuild-error-wit...
  • c84e4c8 Mark some more processing errors as invalid SARIF upload requests
  • 4aca720 Improve error message when using build modes and autobuild fails
  • 7f375ae Wrap configuration errors for all CLI commands
  • Additional commits viewable in compare view

Updates `actions/cache` from 4.0.1 to 4.0.2
Release notes

Sourced from actions/cache's releases.

v4.0.2

What's Changed

Full Changelog: https://github.com/actions/cache/compare/v4.0.1...v4.0.2

Changelog

Sourced from actions/cache's changelog.

Releases

4.0.2

  • Fixed restore fail-on-cache-miss not working.

4.0.1

  • Updated isGhes check

4.0.0

  • Updated minimum runner version support from node 12 -> node 20

3.3.3

  • Updates @​actions/cache to v3.2.3 to fix accidental mutated path arguments to getCacheVersion actions/toolkit#1378
  • Additional audit fixes of npm package(s)

3.3.2

  • Fixes bug with Azure SDK causing blob downloads to get stuck.

3.3.1

  • Reduced segment size to 128MB and segment timeout to 10 minutes to fail fast in case the cache download is stuck.

3.3.0

  • Added option to lookup cache without downloading it.

3.2.6

  • Fix zstd not being used after zstd version upgrade to 1.5.4 on hosted runners.

3.2.5

  • Added fix to prevent from setting MYSYS environment variable globally.

3.2.4

  • Added option to fail job on cache miss.

3.2.3

  • Support cross os caching on Windows as an opt-in feature.
  • Fix issue with symlink restoration on Windows for cross-os caches.

3.2.2

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/annotate_pr.yaml | 2 +- .github/workflows/codeql.yml | 6 +++--- .github/workflows/nightly.yaml | 4 ++-- .github/workflows/pr.yaml | 6 +++--- .github/workflows/scorecard.yml | 2 +- .github/workflows/upgrade_trunk.yaml | 2 +- .github/workflows/windows_nightly.yaml | 4 ++-- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/annotate_pr.yaml b/.github/workflows/annotate_pr.yaml index ec05aa67c..7612892bf 100644 --- a/.github/workflows/annotate_pr.yaml +++ b/.github/workflows/annotate_pr.yaml @@ -18,7 +18,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Trunk Check - uses: trunk-io/trunk-action@65228585e2c6128315f0f2d5190e2eae7f5c32c6 # v1.1.10 + uses: trunk-io/trunk-action@718b71fb3e4d83f6734f0c372d92ee7d4c9976d7 # v1.1.11 with: post-annotations: true # This job may fail when the PR was not run on a fork, and that's okay diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 5eb4a60d7..dcdf2425a 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -34,7 +34,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@3ab4101902695724f9365a384f86c1074d94e18c # v3.24.7 + uses: github/codeql-action/init@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9 # Override language selection by uncommenting this and choosing your languages with: languages: javascript @@ -42,7 +42,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). # If this step fails, then you should remove it and run the build manually (see below). - name: Autobuild - uses: github/codeql-action/autobuild@3ab4101902695724f9365a384f86c1074d94e18c # v3.24.7 + uses: github/codeql-action/autobuild@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9 # ℹ️ Command-line programs to run using the OS shell. # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun @@ -56,4 +56,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@3ab4101902695724f9365a384f86c1074d94e18c # v3.24.7 + uses: github/codeql-action/analyze@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9 diff --git a/.github/workflows/nightly.yaml b/.github/workflows/nightly.yaml index 81ddd0038..6b1e32590 100644 --- a/.github/workflows/nightly.yaml +++ b/.github/workflows/nightly.yaml @@ -43,7 +43,7 @@ jobs: - name: Cache tool downloads # ubuntu runner has persistent cache if: matrix.os == 'windows-latest' - uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1 + uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 with: path: /tmp/plugins_testing_download_cache # No need to key on trunk version unless we change how we store downloads. @@ -149,7 +149,7 @@ jobs: - name: Cache tool downloads # ubuntu, mac runners have persistent cache if: matrix.os == 'windows-latest' - uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1 + uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 with: path: /tmp/plugins_testing_download_cache # No need to key on trunk version unless we change how we store downloads. diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 4e4241a72..d0b30874a 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -214,7 +214,7 @@ jobs: lfs: true - name: Trunk Check - uses: trunk-io/trunk-action@65228585e2c6128315f0f2d5190e2eae7f5c32c6 + uses: trunk-io/trunk-action@718b71fb3e4d83f6734f0c372d92ee7d4c9976d7 env: TRUNK_GITHUB_CHECK_RUN_TITLE: Trunk Check @@ -231,7 +231,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Cache tool downloads - uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1 + uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 with: path: /tmp/plugins_testing_download_cache key: trunk-${{ runner.os }} @@ -257,7 +257,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Cache tool downloads - uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1 + uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 with: path: /tmp/plugins_testing_download_cache key: trunk-${{ runner.os }} diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 8ef7c18be..681e66dca 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -65,6 +65,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: Upload to code-scanning - uses: github/codeql-action/upload-sarif@3ab4101902695724f9365a384f86c1074d94e18c # v3.24.7 + uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9 with: sarif_file: results.sarif diff --git a/.github/workflows/upgrade_trunk.yaml b/.github/workflows/upgrade_trunk.yaml index ba325590e..cc56d8d11 100644 --- a/.github/workflows/upgrade_trunk.yaml +++ b/.github/workflows/upgrade_trunk.yaml @@ -26,7 +26,7 @@ jobs: private_key: ${{ secrets.TRUNK_OPEN_PR_APP_PRIVATE_KEY }} - name: Trunk Upgrade - uses: trunk-io/trunk-action/upgrade@65228585e2c6128315f0f2d5190e2eae7f5c32c6 + uses: trunk-io/trunk-action/upgrade@718b71fb3e4d83f6734f0c372d92ee7d4c9976d7 with: arguments: -n --bleeding-edge github-token: ${{ steps.generate-token.outputs.token }} diff --git a/.github/workflows/windows_nightly.yaml b/.github/workflows/windows_nightly.yaml index 6af54a00c..9c0fa7a7b 100644 --- a/.github/workflows/windows_nightly.yaml +++ b/.github/workflows/windows_nightly.yaml @@ -21,7 +21,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Cache tool downloads - uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1 + uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 with: path: /tmp/plugins_testing_download_cache # No need to key on trunk version unless we change how we store downloads. @@ -60,7 +60,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Cache tool downloads - uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1 + uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 with: path: /tmp/plugins_testing_download_cache # No need to key on trunk version unless we change how we store downloads. From 2f51ee585d42177b667557f4b48e45acf6e38294 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 15:10:11 -0700 Subject: [PATCH 09/38] Bump the dependencies group with 4 updates (#710) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps the dependencies group with 4 updates: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin), [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) and [typescript](https://github.com/Microsoft/TypeScript). Updates `@types/node` from 20.11.28 to 20.11.30
Commits

Updates `@typescript-eslint/eslint-plugin` from 7.2.0 to 7.3.1
Release notes

Sourced from @​typescript-eslint/eslint-plugin's releases.

v7.3.1

7.3.1 (2024-03-18)

🩹 Fixes

  • eslint-plugin: [no-floating-promises] revert disable of ignoreVoid in strict config (#8718)

❤️ Thank You

  • Josh Goldberg ✨

You can read about our versioning strategy and releases on our website.

v7.3.0

7.3.0 (2024-03-18)

Note that this release enables rules to have more restrictive default options as configured in the strict and strict-type-checked configs. See #8364 for more details.

🚀 Features

  • eslint-plugin: [restrict-template-expressions] add allowArray option (#8389)
  • eslint-plugin: add meta.docs.recommended setting for strict config options (#8364)
  • eslint-plugin: add rule use-unknown-in-catch-callback-variables (#8383)
  • eslint-plugin: [prefer-reduce-type-parameter] supports tuple, union, intersection (#8642)
  • eslint-plugin-internal: add internal lint rule no-relative-paths-to-internal-packages (#8596)
  • typescript-estree: disallow switch statements with multiple default cases (#8411)
  • utils: add parser name to thrown parser error message (#8484)

🩹 Fixes

  • correct engines.node constraints in package.json (#8671)
  • eslint-plugin: [unbound-method] check method definition in object literal using longhand form (#8637)
  • eslint-plugin: [consistent-type-imports] handle imports without specifiers (#8308)
  • eslint-plugin: [no-redundant-type-constituents] incorrectly marks & string as redundant (#8282)
  • eslint-plugin: [no-unnecessary-qualifier] handle merge namespace with enum (#8591)
  • eslint-plugin: [no-unused-expressions] false negatives when using assertions (#8668)
  • eslint-plugin: [ban-ts-comment] more accurate handling of multiline comments (#8416)
  • eslint-plugin: [explicit-function-return-type, explicit-module-boundary-types] improved checking for allowHigherOrderFunctions option (#8508)
  • eslint-plugin: [class-literal-property-style] ignore property assigned in constructor (#8412)
  • eslint-plugin: [no-unnecessary-type-assertion] fix false negative for const variable declarations (#8558)
  • typescript-estree: fix the issue of single run inferring in the pnpm repo (#3811, #8702)

❤️ Thank You

... (truncated)

Changelog

Sourced from @​typescript-eslint/eslint-plugin's changelog.

7.3.1 (2024-03-18)

🩹 Fixes

  • eslint-plugin: [no-floating-promises] revert disable of ignoreVoid in strict config

❤️ Thank You

  • Josh Goldberg ✨

You can read about our versioning strategy and releases on our website.

7.3.0 (2024-03-18)

🚀 Features

  • eslint-plugin: [restrict-template-expressions] add allowArray option

  • eslint-plugin: add meta.docs.recommended setting for strict config options

  • eslint-plugin: add rule use-unknown-in-catch-callback-variables

  • eslint-plugin: [prefer-reduce-type-parameter] supports tuple, union, intersection

🩹 Fixes

  • correct engines.node constraints in package.json

  • eslint-plugin: [unbound-method] check method definition in object literal using longhand form

  • eslint-plugin: [consistent-type-imports] handle imports without specifiers

  • eslint-plugin: [no-redundant-type-constituents] incorrectly marks & string as redundant

  • eslint-plugin: [no-unnecessary-qualifier] handle merge namespace with enum

  • eslint-plugin: [no-unused-expressions] false negatives when using assertions

  • eslint-plugin: [ban-ts-comment] more accurate handling of multiline comments

  • eslint-plugin: [explicit-function-return-type, explicit-module-boundary-types] improved checking for allowHigherOrderFunctions option

  • eslint-plugin: [class-literal-property-style] ignore property assigned in constructor

  • eslint-plugin: [no-unnecessary-type-assertion] fix false negative for const variable declarations

... (truncated)

Commits
  • 5995614 chore(release): publish 7.3.1
  • d78d98b fix(eslint-plugin): [no-floating-promises] revert disable of ignoreVoid in st...
  • 4cf8ec7 chore(release): publish 7.3.0
  • d2995df fix(eslint-plugin): [no-unnecessary-type-assertion] fix false negative for co...
  • 2869c68 feat(eslint-plugin): [prefer-reduce-type-parameter] supports tuple, union, in...
  • d830364 test(eslint-plugin): [no-unnecessary-type-assertion] add tests with noUncheck...
  • 04e32d6 fix(eslint-plugin): [class-literal-property-style] ignore property assigned i...
  • 612875b fix(eslint-plugin): [explicit-function-return-type, explicit-module-boundary-...
  • da006b1 fix(eslint-plugin): [ban-ts-comment] more accurate handling of multiline comm...
  • 71bfb7c chore: fix ast-spec type import snapshot errors (#8699)
  • Additional commits viewable in compare view

Updates `@typescript-eslint/parser` from 7.2.0 to 7.3.1
Release notes

Sourced from @​typescript-eslint/parser's releases.

v7.3.1

7.3.1 (2024-03-18)

🩹 Fixes

  • eslint-plugin: [no-floating-promises] revert disable of ignoreVoid in strict config (#8718)

❤️ Thank You

  • Josh Goldberg ✨

You can read about our versioning strategy and releases on our website.

v7.3.0

7.3.0 (2024-03-18)

Note that this release enables rules to have more restrictive default options as configured in the strict and strict-type-checked configs. See #8364 for more details.

🚀 Features

  • eslint-plugin: [restrict-template-expressions] add allowArray option (#8389)
  • eslint-plugin: add meta.docs.recommended setting for strict config options (#8364)
  • eslint-plugin: add rule use-unknown-in-catch-callback-variables (#8383)
  • eslint-plugin: [prefer-reduce-type-parameter] supports tuple, union, intersection (#8642)
  • eslint-plugin-internal: add internal lint rule no-relative-paths-to-internal-packages (#8596)
  • typescript-estree: disallow switch statements with multiple default cases (#8411)
  • utils: add parser name to thrown parser error message (#8484)

🩹 Fixes

  • correct engines.node constraints in package.json (#8671)
  • eslint-plugin: [unbound-method] check method definition in object literal using longhand form (#8637)
  • eslint-plugin: [consistent-type-imports] handle imports without specifiers (#8308)
  • eslint-plugin: [no-redundant-type-constituents] incorrectly marks & string as redundant (#8282)
  • eslint-plugin: [no-unnecessary-qualifier] handle merge namespace with enum (#8591)
  • eslint-plugin: [no-unused-expressions] false negatives when using assertions (#8668)
  • eslint-plugin: [ban-ts-comment] more accurate handling of multiline comments (#8416)
  • eslint-plugin: [explicit-function-return-type, explicit-module-boundary-types] improved checking for allowHigherOrderFunctions option (#8508)
  • eslint-plugin: [class-literal-property-style] ignore property assigned in constructor (#8412)
  • eslint-plugin: [no-unnecessary-type-assertion] fix false negative for const variable declarations (#8558)
  • typescript-estree: fix the issue of single run inferring in the pnpm repo (#3811, #8702)

❤️ Thank You

... (truncated)

Changelog

Sourced from @​typescript-eslint/parser's changelog.

7.3.1 (2024-03-18)

This was a version bump only for parser to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

7.3.0 (2024-03-18)

🩹 Fixes

  • correct engines.node constraints in package.json

❤️ Thank You

  • Abraham Guo
  • Alexu
  • Arka Pratim Chaudhuri
  • auvred
  • Derrick Isaacson
  • fnx
  • Josh Goldberg ✨
  • Kirk Waiblinger
  • Marta Cardoso
  • Michaël De Boey
  • Tristan Rasmussen
  • YeonJuan

You can read about our versioning strategy and releases on our website.

Commits

Updates `typescript` from 5.4.2 to 5.4.3
Release notes

Sourced from typescript's releases.

TypeScript 5.4.3

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 394 +++++++++++++++++++++++----------------------- package.json | 8 +- 2 files changed, 201 insertions(+), 201 deletions(-) diff --git a/package-lock.json b/package-lock.json index d15824484..b3d08aeb3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,9 +16,9 @@ "@types/debug": "^4.1.12", "@types/jest": "^29.5.12", "@types/jest-specific-snapshot": "^0.5.9", - "@types/node": "^20.11.28", - "@typescript-eslint/eslint-plugin": "^7.2.0", - "@typescript-eslint/parser": "^7.2.0", + "@types/node": "^20.11.30", + "@typescript-eslint/eslint-plugin": "^7.3.1", + "@typescript-eslint/parser": "^7.3.1", "caller": "^1.1.0", "debug": "^4.3.4", "eslint": "^8.57.0", @@ -38,7 +38,7 @@ "ts-jest": "^29.1.2", "ts-node": "^10.9.2", "tsconfig-paths": "^4.1.2", - "typescript": "^5.4.2", + "typescript": "^5.4.3", "yaml": "^2.4.1" }, "engines": { @@ -1472,9 +1472,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.28.tgz", - "integrity": "sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA==", + "version": "20.11.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz", + "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1508,16 +1508,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.2.0.tgz", - "integrity": "sha512-mdekAHOqS9UjlmyF/LSs6AIEvfceV749GFxoBAjwAv0nkevfKHWQFDMcBZWUiIC5ft6ePWivXoS36aKQ0Cy3sw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.3.1.tgz", + "integrity": "sha512-STEDMVQGww5lhCuNXVSQfbfuNII5E08QWkvAw5Qwf+bj2WT+JkG1uc+5/vXA3AOYMDHVOSpL+9rcbEUiHIm2dw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/type-utils": "7.2.0", - "@typescript-eslint/utils": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/scope-manager": "7.3.1", + "@typescript-eslint/type-utils": "7.3.1", + "@typescript-eslint/utils": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1526,7 +1526,7 @@ "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1543,16 +1543,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", - "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.3.1.tgz", + "integrity": "sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0" + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1560,12 +1560,12 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", - "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.3.1.tgz", + "integrity": "sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==", "dev": true, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1573,13 +1573,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", - "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.3.1.tgz", + "integrity": "sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1588,7 +1588,7 @@ "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1601,21 +1601,21 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.2.0.tgz", - "integrity": "sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.3.1.tgz", + "integrity": "sha512-jIERm/6bYQ9HkynYlNZvXpzmXWZGhMbrOvq3jJzOSOlKXsVjrrolzWBjDW6/TvT5Q3WqaN4EkmcfdQwi9tDjBQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/typescript-estree": "7.2.0", + "@typescript-eslint/scope-manager": "7.3.1", + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/typescript-estree": "7.3.1", "semver": "^7.5.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1626,16 +1626,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", - "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.3.1.tgz", + "integrity": "sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/types": "7.3.1", "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1667,19 +1667,19 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.2.0.tgz", - "integrity": "sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.3.1.tgz", + "integrity": "sha512-Rq49+pq7viTRCH48XAbTA+wdLRrB/3sRq4Lpk0oGDm0VmnjBrAOVXH/Laalmwsv2VpekiEfVFwJYVk6/e8uvQw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/typescript-estree": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/scope-manager": "7.3.1", + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/typescript-estree": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1", "debug": "^4.3.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1695,16 +1695,16 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", - "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.3.1.tgz", + "integrity": "sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0" + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1712,12 +1712,12 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", - "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.3.1.tgz", + "integrity": "sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==", "dev": true, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1725,13 +1725,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", - "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.3.1.tgz", + "integrity": "sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1740,7 +1740,7 @@ "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1753,16 +1753,16 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", - "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.3.1.tgz", + "integrity": "sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/types": "7.3.1", "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1811,18 +1811,18 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.2.0.tgz", - "integrity": "sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.3.1.tgz", + "integrity": "sha512-iFhaysxFsMDQlzJn+vr3OrxN8NmdQkHks4WaqD4QBnt5hsq234wcYdyQ9uquzJJIDAj5W4wQne3yEsYA6OmXGw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.2.0", - "@typescript-eslint/utils": "7.2.0", + "@typescript-eslint/typescript-estree": "7.3.1", + "@typescript-eslint/utils": "7.3.1", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1838,16 +1838,16 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", - "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.3.1.tgz", + "integrity": "sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0" + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1855,12 +1855,12 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", - "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.3.1.tgz", + "integrity": "sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==", "dev": true, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1868,13 +1868,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", - "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.3.1.tgz", + "integrity": "sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1883,7 +1883,7 @@ "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1896,21 +1896,21 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.2.0.tgz", - "integrity": "sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.3.1.tgz", + "integrity": "sha512-jIERm/6bYQ9HkynYlNZvXpzmXWZGhMbrOvq3jJzOSOlKXsVjrrolzWBjDW6/TvT5Q3WqaN4EkmcfdQwi9tDjBQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/typescript-estree": "7.2.0", + "@typescript-eslint/scope-manager": "7.3.1", + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/typescript-estree": "7.3.1", "semver": "^7.5.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1921,16 +1921,16 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", - "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.3.1.tgz", + "integrity": "sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/types": "7.3.1", "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6644,9 +6644,9 @@ } }, "node_modules/typescript": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", - "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz", + "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -8046,9 +8046,9 @@ "dev": true }, "@types/node": { - "version": "20.11.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.28.tgz", - "integrity": "sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA==", + "version": "20.11.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz", + "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==", "dev": true, "requires": { "undici-types": "~5.26.4" @@ -8082,16 +8082,16 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.2.0.tgz", - "integrity": "sha512-mdekAHOqS9UjlmyF/LSs6AIEvfceV749GFxoBAjwAv0nkevfKHWQFDMcBZWUiIC5ft6ePWivXoS36aKQ0Cy3sw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.3.1.tgz", + "integrity": "sha512-STEDMVQGww5lhCuNXVSQfbfuNII5E08QWkvAw5Qwf+bj2WT+JkG1uc+5/vXA3AOYMDHVOSpL+9rcbEUiHIm2dw==", "dev": true, "requires": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/type-utils": "7.2.0", - "@typescript-eslint/utils": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/scope-manager": "7.3.1", + "@typescript-eslint/type-utils": "7.3.1", + "@typescript-eslint/utils": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -8101,29 +8101,29 @@ }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", - "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.3.1.tgz", + "integrity": "sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==", "dev": true, "requires": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0" + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1" } }, "@typescript-eslint/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", - "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.3.1.tgz", + "integrity": "sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", - "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.3.1.tgz", + "integrity": "sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==", "dev": true, "requires": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -8133,27 +8133,27 @@ } }, "@typescript-eslint/utils": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.2.0.tgz", - "integrity": "sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.3.1.tgz", + "integrity": "sha512-jIERm/6bYQ9HkynYlNZvXpzmXWZGhMbrOvq3jJzOSOlKXsVjrrolzWBjDW6/TvT5Q3WqaN4EkmcfdQwi9tDjBQ==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/typescript-estree": "7.2.0", + "@typescript-eslint/scope-manager": "7.3.1", + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/typescript-estree": "7.3.1", "semver": "^7.5.4" } }, "@typescript-eslint/visitor-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", - "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.3.1.tgz", + "integrity": "sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==", "dev": true, "requires": { - "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/types": "7.3.1", "eslint-visitor-keys": "^3.4.1" } }, @@ -8178,42 +8178,42 @@ } }, "@typescript-eslint/parser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.2.0.tgz", - "integrity": "sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.3.1.tgz", + "integrity": "sha512-Rq49+pq7viTRCH48XAbTA+wdLRrB/3sRq4Lpk0oGDm0VmnjBrAOVXH/Laalmwsv2VpekiEfVFwJYVk6/e8uvQw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/typescript-estree": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/scope-manager": "7.3.1", + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/typescript-estree": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1", "debug": "^4.3.4" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", - "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.3.1.tgz", + "integrity": "sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==", "dev": true, "requires": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0" + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1" } }, "@typescript-eslint/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", - "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.3.1.tgz", + "integrity": "sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", - "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.3.1.tgz", + "integrity": "sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==", "dev": true, "requires": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -8223,12 +8223,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", - "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.3.1.tgz", + "integrity": "sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==", "dev": true, "requires": { - "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/types": "7.3.1", "eslint-visitor-keys": "^3.4.1" } }, @@ -8263,41 +8263,41 @@ } }, "@typescript-eslint/type-utils": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.2.0.tgz", - "integrity": "sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.3.1.tgz", + "integrity": "sha512-iFhaysxFsMDQlzJn+vr3OrxN8NmdQkHks4WaqD4QBnt5hsq234wcYdyQ9uquzJJIDAj5W4wQne3yEsYA6OmXGw==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "7.2.0", - "@typescript-eslint/utils": "7.2.0", + "@typescript-eslint/typescript-estree": "7.3.1", + "@typescript-eslint/utils": "7.3.1", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", - "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.3.1.tgz", + "integrity": "sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==", "dev": true, "requires": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0" + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1" } }, "@typescript-eslint/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", - "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.3.1.tgz", + "integrity": "sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", - "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.3.1.tgz", + "integrity": "sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==", "dev": true, "requires": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -8307,27 +8307,27 @@ } }, "@typescript-eslint/utils": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.2.0.tgz", - "integrity": "sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.3.1.tgz", + "integrity": "sha512-jIERm/6bYQ9HkynYlNZvXpzmXWZGhMbrOvq3jJzOSOlKXsVjrrolzWBjDW6/TvT5Q3WqaN4EkmcfdQwi9tDjBQ==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/typescript-estree": "7.2.0", + "@typescript-eslint/scope-manager": "7.3.1", + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/typescript-estree": "7.3.1", "semver": "^7.5.4" } }, "@typescript-eslint/visitor-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", - "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.3.1.tgz", + "integrity": "sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==", "dev": true, "requires": { - "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/types": "7.3.1", "eslint-visitor-keys": "^3.4.1" } }, @@ -11719,9 +11719,9 @@ } }, "typescript": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", - "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz", + "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==", "dev": true }, "unbox-primitive": { diff --git a/package.json b/package.json index 81b4da78c..b54227436 100644 --- a/package.json +++ b/package.json @@ -14,9 +14,9 @@ "@types/debug": "^4.1.12", "@types/jest": "^29.5.12", "@types/jest-specific-snapshot": "^0.5.9", - "@types/node": "^20.11.28", - "@typescript-eslint/eslint-plugin": "^7.2.0", - "@typescript-eslint/parser": "^7.2.0", + "@types/node": "^20.11.30", + "@typescript-eslint/eslint-plugin": "^7.3.1", + "@typescript-eslint/parser": "^7.3.1", "caller": "^1.1.0", "debug": "^4.3.4", "eslint": "^8.57.0", @@ -36,7 +36,7 @@ "ts-jest": "^29.1.2", "ts-node": "^10.9.2", "tsconfig-paths": "^4.1.2", - "typescript": "^5.4.2", + "typescript": "^5.4.3", "yaml": "^2.4.1" }, "bundleDependencies": [ From a390bcd635b99e26d6721d08360dd1ec95e848e4 Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Wed, 27 Mar 2024 11:39:37 -0700 Subject: [PATCH 10/38] Upgrade trunk, fix trufflehog and buildifier (#716) - Upgrade trunk and bump the minimum required version - This will unblock #229 - This will fix some of the Windows [nightly issues](https://github.com/trunk-io/plugins/actions/runs/8448489088/job/23140665928) (I'll queue a job after this lands) - This will fix the [check nightly](https://github.com/trunk-io/.trunk/actions/runs/8355518290/job/22870763034) runs (I'll queue a job after this lands) - This will add PHP runtime support (soon) - Note there is one rare daemon lifetime bug that will need a fast follow-up upgrade fix - buildifier released [7.1.0](https://github.com/bazelbuild/buildtools/releases/tag/v7.1.0), which mandates `load` sorting as a formatting fix - trufflehog released [3.71.1](https://github.com/trufflesecurity/trufflehog/releases/tag/v3.71.1), which no longer lints symlinks, so we have to use `copy_targets` and cache results to generate a sandbox (`cache_ttl` does not imply `cache_results` currently) Note that we will need to have a prod CLI release before we can next release plugins (minor version bump) --- .trunk/trunk.yaml | 2 +- .../buildifier_v7.1.0_basic_check.check.shot | 135 ++++++++++++++++++ ...config.test_data.add_tables.BUILD.fmt.shot | 36 +++++ ...1.0_no_config.test_data.basic.bzl.fmt.shot | 11 ++ ...config.test_data.add_tables.BUILD.fmt.shot | 36 +++++ linters/trufflehog/plugin.yaml | 3 + linters/trufflehog/trufflehog.test.ts | 2 + plugin.yaml | 2 +- tests/repo_tests/config_check.test.ts | 2 +- 9 files changed, 226 insertions(+), 3 deletions(-) create mode 100644 linters/buildifier/test_data/buildifier_v7.1.0_basic_check.check.shot create mode 100644 linters/buildifier/test_data/buildifier_v7.1.0_no_config.test_data.add_tables.BUILD.fmt.shot create mode 100644 linters/buildifier/test_data/buildifier_v7.1.0_no_config.test_data.basic.bzl.fmt.shot create mode 100644 linters/buildifier/test_data/buildifier_v7.1.0_with_config.test_data.add_tables.BUILD.fmt.shot diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index 479320601..08afedb6f 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -2,7 +2,7 @@ version: 0.1 # version used for local trunk runs and testing cli: - version: 1.21.0 + version: 1.21.1-beta.14 shell_hooks: enforce: true diff --git a/linters/buildifier/test_data/buildifier_v7.1.0_basic_check.check.shot b/linters/buildifier/test_data/buildifier_v7.1.0_basic_check.check.shot new file mode 100644 index 000000000..45eab45ea --- /dev/null +++ b/linters/buildifier/test_data/buildifier_v7.1.0_basic_check.check.shot @@ -0,0 +1,135 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP +// trunk-upgrade-validation:RELEASE + +exports[`Testing linter buildifier test basic_check 1`] = ` +{ + "issues": [ + { + "code": "module-docstring", + "column": "1", + "file": "test_data/basic.bzl", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://github.com/bazelbuild/buildtools/blob/master/WARNINGS.md#module-docstring", + "level": "LEVEL_HIGH", + "line": "1", + "linter": "buildifier", + "message": "The file has no module docstring. +A module docstring is a string literal (not a comment) which should be the first statement of a file (it may follow comment lines).", + "targetType": "starlark", + }, + { + "code": "load", + "column": "26", + "file": "test_data/basic.bzl", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://github.com/bazelbuild/buildtools/blob/master/WARNINGS.md#load", + "level": "LEVEL_HIGH", + "line": "1", + "linter": "buildifier", + "message": "Loaded symbol "a" is unused. Please remove it. +To disable the warning, add '@unused' in a comment. +If you want to re-export a symbol, use the following pattern: + + load(..., _a = "a", ...) + a = _a", + "targetType": "starlark", + }, + { + "code": "load", + "column": "26", + "file": "test_data/basic.bzl", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://github.com/bazelbuild/buildtools/blob/master/WARNINGS.md#load", + "level": "LEVEL_HIGH", + "line": "2", + "linter": "buildifier", + "message": "Loaded symbol "b" is unused. Please remove it. +To disable the warning, add '@unused' in a comment. +If you want to re-export a symbol, use the following pattern: + + load(..., _b = "b", ...) + b = _b", + "targetType": "starlark", + }, + ], + "lintActions": [ + { + "command": "fix", + "fileGroupName": "bazel-build", + "linter": "buildifier", + "paths": [ + "test_data/add_tables.BUILD", + ], + "verb": "TRUNK_VERB_FMT", + }, + { + "command": "fix", + "fileGroupName": "starlark", + "linter": "buildifier", + "paths": [ + "test_data/basic.bzl", + ], + "verb": "TRUNK_VERB_FMT", + }, + { + "command": "warn", + "fileGroupName": "bazel-build", + "linter": "buildifier", + "paths": [ + "test_data/add_tables.BUILD", + ], + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "warn", + "fileGroupName": "starlark", + "linter": "buildifier", + "paths": [ + "test_data/basic.bzl", + ], + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "warn", + "fileGroupName": "bazel-build", + "linter": "buildifier", + "paths": [ + "test_data/add_tables.BUILD", + ], + "upstream": true, + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "warn", + "fileGroupName": "starlark", + "linter": "buildifier", + "paths": [ + "test_data/basic.bzl", + ], + "upstream": true, + "verb": "TRUNK_VERB_CHECK", + }, + ], + "taskFailures": [], + "unformattedFiles": [ + { + "column": "1", + "file": "test_data/add_tables.BUILD", + "issueClass": "ISSUE_CLASS_UNFORMATTED", + "level": "LEVEL_HIGH", + "line": "1", + "linter": "buildifier", + "message": "Incorrect formatting, autoformat by running 'trunk fmt'", + }, + { + "column": "1", + "file": "test_data/basic.bzl", + "issueClass": "ISSUE_CLASS_UNFORMATTED", + "level": "LEVEL_HIGH", + "line": "1", + "linter": "buildifier", + "message": "Incorrect formatting, autoformat by running 'trunk fmt'", + }, + ], +} +`; diff --git a/linters/buildifier/test_data/buildifier_v7.1.0_no_config.test_data.add_tables.BUILD.fmt.shot b/linters/buildifier/test_data/buildifier_v7.1.0_no_config.test_data.add_tables.BUILD.fmt.shot new file mode 100644 index 000000000..54e82961f --- /dev/null +++ b/linters/buildifier/test_data/buildifier_v7.1.0_no_config.test_data.add_tables.BUILD.fmt.shot @@ -0,0 +1,36 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP +// trunk-upgrade-validation:RELEASE + +exports[`Testing formatter buildifier test no_config 1`] = ` +"foo_macro( + fizz = [ + ":lib2", + ":lib1", + ], +) + +filegroup( + name = "files", + srcs = glob(["**"]), +) + +sh_library( + name = "lib1", + srcs = ["src1.sh"], +) + +sh_library( + name = "lib2", + srcs = ["src1.sh"], +) + +sh_binary( + name = "foo", + srcs = ["foo.sh"], + deps = [ + ":lib1", + ":lib2", + ], +) +" +`; diff --git a/linters/buildifier/test_data/buildifier_v7.1.0_no_config.test_data.basic.bzl.fmt.shot b/linters/buildifier/test_data/buildifier_v7.1.0_no_config.test_data.basic.bzl.fmt.shot new file mode 100644 index 000000000..0f9da3bb5 --- /dev/null +++ b/linters/buildifier/test_data/buildifier_v7.1.0_no_config.test_data.basic.bzl.fmt.shot @@ -0,0 +1,11 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP +// trunk-upgrade-validation:RELEASE + +exports[`Testing formatter buildifier test no_config 1`] = ` +"# Misformatted file +def eponymous_name(): + name = native.package_name() + + return name[name.rfind("/") + 1:] +" +`; diff --git a/linters/buildifier/test_data/buildifier_v7.1.0_with_config.test_data.add_tables.BUILD.fmt.shot b/linters/buildifier/test_data/buildifier_v7.1.0_with_config.test_data.add_tables.BUILD.fmt.shot new file mode 100644 index 000000000..e4ce11ada --- /dev/null +++ b/linters/buildifier/test_data/buildifier_v7.1.0_with_config.test_data.add_tables.BUILD.fmt.shot @@ -0,0 +1,36 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP +// trunk-upgrade-validation:RELEASE + +exports[`Testing formatter buildifier test with_config 1`] = ` +"foo_macro( + fizz = [ + ":lib1", + ":lib2", + ], +) + +filegroup( + name = "files", + srcs = glob(["**"]), +) + +sh_library( + name = "lib1", + srcs = ["src1.sh"], +) + +sh_library( + name = "lib2", + srcs = ["src1.sh"], +) + +sh_binary( + name = "foo", + srcs = ["foo.sh"], + deps = [ + ":lib1", + ":lib2", + ], +) +" +`; diff --git a/linters/trufflehog/plugin.yaml b/linters/trufflehog/plugin.yaml index 4ff554d74..7958ad38e 100644 --- a/linters/trufflehog/plugin.yaml +++ b/linters/trufflehog/plugin.yaml @@ -31,7 +31,10 @@ lint: success_codes: [0, 183] is_security: true batch: true + cache_results: true cache_ttl: 1h + # trufflehog 3.71.1 stopped linting symlinks + sandbox_type: copy_targets parser: runtime: python run: python3 ${plugin}/linters/trufflehog/trufflehog_to_sarif.py diff --git a/linters/trufflehog/trufflehog.test.ts b/linters/trufflehog/trufflehog.test.ts index 35cc3a065..a7639e655 100644 --- a/linters/trufflehog/trufflehog.test.ts +++ b/linters/trufflehog/trufflehog.test.ts @@ -13,6 +13,8 @@ const preCheck = async (driver: TrunkLintDriver) => { await driver.gitDriver.add("secrets.in.py").add("secrets2.in.py").commit("Add secrets"); driver.deleteFile("secrets.in.py"); await driver.gitDriver.add("secrets.in.py").commit("Remove secrets"); + } else { + driver.debug("Error: failed to initialize git driver"); } }; diff --git a/plugin.yaml b/plugin.yaml index 5a1be73eb..288f62dbf 100644 --- a/plugin.yaml +++ b/plugin.yaml @@ -1,6 +1,6 @@ version: 0.1 # IfChange -required_trunk_version: ">=1.18.2-beta.7" +required_trunk_version: ">=1.21.1-beta.14" # ThenChange tests/repo_tests/config_check.test.ts environments: diff --git a/tests/repo_tests/config_check.test.ts b/tests/repo_tests/config_check.test.ts index 8c1adfcd1..662a08ba1 100644 --- a/tests/repo_tests/config_check.test.ts +++ b/tests/repo_tests/config_check.test.ts @@ -25,7 +25,7 @@ describe("Global config health check", () => { setupTrunk: true, // NOTE: This version should be kept compatible in lockstep with the `required_trunk_version` in plugin.yaml // IfChange - trunkVersion: "1.18.2-beta.7", + trunkVersion: "1.21.1-beta.14", // ThenChange plugin.yaml }); From 01640edffbf4e5d196f0fea7dbc49b3270e0e506 Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Wed, 27 Mar 2024 15:00:20 -0700 Subject: [PATCH 11/38] Upgrade CLI (#719) Fixes a rare daemon [crash](https://github.com/trunk-io/plugins/actions/runs/8456988192/job/23167941970) --- .trunk/trunk.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index 08afedb6f..ef5020ad1 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -2,7 +2,7 @@ version: 0.1 # version used for local trunk runs and testing cli: - version: 1.21.1-beta.14 + version: 1.21.1-beta.15 shell_hooks: enforce: true From 31085126b67ec8797ae5a52a601fc96d7f82faa5 Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Wed, 27 Mar 2024 15:18:03 -0700 Subject: [PATCH 12/38] Add Poetry actions (#718) Dupe of #229. Adds poetry Trunk Actions to match parity with [pre-commit](https://python-poetry.org/docs/pre-commit-hooks/). Note that the non-hermetic story is much cleaner at time of writing, with the hermetic story blocked by not being able to unset `VIRTUAL_ENV` in the Action and Tool. In other words, for now recommended behavior requires manual [Poetry installation](https://python-poetry.org/docs/#installation). We've added a tool test and several actions tests --- README.md | 21 +++---- actions/poetry/README.md | 52 ++++++++++++++++ actions/poetry/plugin.yaml | 68 +++++++++++++++++++++ actions/poetry/poetry.test.ts | 103 ++++++++++++++++++++++++++++++++ actions/poetry/requirements.txt | 2 + 5 files changed, 236 insertions(+), 10 deletions(-) create mode 100644 actions/poetry/README.md create mode 100644 actions/poetry/plugin.yaml create mode 100644 actions/poetry/poetry.test.ts create mode 100644 actions/poetry/requirements.txt diff --git a/README.md b/README.md index a986e2a77..8b5ebdd4d 100644 --- a/README.md +++ b/README.md @@ -202,16 +202,17 @@ Enable trunk actions via: trunk actions enable {action} ``` -| action | description | -| -------------------------------------------------------------------- | ---------------------------------------------------------- | -| [`buf-gen`](actions/buf/README.md) | run `buf` on .proto file change | -| [`commitizen`](actions/commitizen/README.md) | enforce conventional commits and manage releases | -| [`commitlint`](https://github.com/conventional-changelog/commitlint) | enforce conventional commit message for your local commits | -| [`go-mod-tidy`](actions/go-mod-tidy/README.md) | automatically tidy go.mod file | -| [`go-mod-tidy-vendor`](actions/go-mod-tidy-vendor/README.md) | automatically tidy and vendor go.mod file | -| [`git-blame-ignore-revs`](actions/git-blame-ignore-revs/README.md) | automatically configure git to use .git-blame-ignore-revs | -| [`npm-check`](actions/npm-check/README.md) | check whether NPM installation is up to date | -| [`yarn-check`](actions/yarn-check/README.md) | check whether Yarn installation is up to date | +| action | description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- | +| [`buf-gen`](actions/buf/README.md) | run `buf` on .proto file change | +| [`commitizen`](actions/commitizen/README.md) | enforce conventional commits and manage releases | +| [`commitlint`](https://github.com/conventional-changelog/commitlint) | enforce conventional commit message for your local commits | +| [`go-mod-tidy`](actions/go-mod-tidy/README.md) | automatically tidy go.mod file | +| [`go-mod-tidy-vendor`](actions/go-mod-tidy-vendor/README.md) | automatically tidy and vendor go.mod file | +| [`git-blame-ignore-revs`](actions/git-blame-ignore-revs/README.md) | automatically configure git to use .git-blame-ignore-revs | +| [`npm-check`](actions/npm-check/README.md) | check whether NPM installation is up to date | +| [`poetry-check`](actions/poetry/README.md), [`poetry-lock`](actions/poetry/README.md), [`poetry-export`](actions/poetry/README.md), [`poetry-install`](actions/poetry/README.md) | hooks to enforce poetry configuration | +| [`yarn-check`](actions/yarn-check/README.md) | check whether Yarn installation is up to date | ### Supported Tools diff --git a/actions/poetry/README.md b/actions/poetry/README.md new file mode 100644 index 000000000..29cd8168a --- /dev/null +++ b/actions/poetry/README.md @@ -0,0 +1,52 @@ +# Poetry + +## Recommended Usage + +The recommended way to run [Poetry](https://python-poetry.org/docs/) using Trunk is to use the +SYSTEM environment, rather than a hermetic setup. This is because Poetry provides its own +environment management that will often collide with Trunk's hermetic setup. Nevertheless, leveraging +Poetry and Trunk in parallel can be powerful. + +Trunk provides 4 different Actions for running Poetry validation, matching parity with +[Poetry pre-commit hooks](https://python-poetry.org/docs/pre-commit-hooks/). + +| action | description | +| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `poetry-check` | Validate `pyproject.toml` when running `git commit` | +| `poetry-lock` | Update `poetry.lock` to match `pyproject.toml` when running `git commit`. To avoid updating packages, you can override `run` to include `--no-update` | +| `poetry-export` | Update `requirements.txt` to match `pyproject.toml` when running `git commit` | +| `poetry-install` | Install dependencies to make sure all locked packages are installed when running `git checkout` or `git merge` | + +You can enable any subset of these Actions using `trunk actions enable`. + +As written, all of these actions require that you have `poetry` in your `PATH` in order to run. + +## Hermetic Installation + +Trunk provides some mechanisms for a hermetic installation and execution of `poetry`. You can use +the Poetry [Tool](https://docs.trunk.io/check/advanced-setup/tools) to run `poetry` manually, and +you can override each of the action definitions to include the `packages_file` and `runtime`, like +so: + +```yaml +version: 0.1 +actions: + definitions: + - id: poetry-check + runtime: python + packages_file: ${cwd}/requirements.txt +``` + +These overrides will tell Trunk to use the hermetic install of `poetry` and use a sandboxed +execution for the Action. Note that this approach has some limitations, namely when creating +`poetry` shells or virtual environments. Currently full functionality is blocked by the inability to +unset runtime-inherited environments. Note that the `poetry` Tool suffers from the same problem. + +When using the hermetic installation, you will want to ensure that your `python` runtime is enabled +at the same version required by your Poetry configuration. See our +[docs](https://docs.trunk.io/check/advanced-setup/runtimes) for more information about specifying +runtime versions. + +## Notes + +Poetry requires Python 3.8 or higher to run. diff --git a/actions/poetry/plugin.yaml b/actions/poetry/plugin.yaml new file mode 100644 index 000000000..f088e7e29 --- /dev/null +++ b/actions/poetry/plugin.yaml @@ -0,0 +1,68 @@ +version: 0.1 +# NOTE: See README.md for usage guidelines. +actions: + definitions: + - id: poetry-check + display_name: poetry check + description: Run 'poetry check' to validate config + # runtime: python + # packages_file: ${cwd}/requirements.txt + run: poetry check + triggers: + - git_hooks: [pre-commit] + environment: + - name: VIRTUAL_ENV + value: ${env.VIRTUAL_ENV} + optional: true + + - id: poetry-lock + display_name: poetry lock + # You may wish to override this with 'poetry lock --no-update' + description: Run 'poetry lock' to update lock file to match pyproject.toml + run: poetry lock --no-update + # runtime: python + # packages_file: ${cwd}/requirements.txt + triggers: + - git_hooks: [pre-commit] + environment: + - name: VIRTUAL_ENV + value: ${env.VIRTUAL_ENV} + optional: true + + - id: poetry-export + display_name: poetry export + description: Run 'poetry export' to sync requirements.txt with lock file + run: poetry export -f requirements.txt -o requirements.txt + # packages_file: ${cwd}/requirements.txt + # runtime: python + triggers: + - git_hooks: [pre-commit] + environment: + - name: VIRTUAL_ENV + value: ${env.VIRTUAL_ENV} + optional: true + + - id: poetry-install + display_name: poetry install + description: Run 'poetry install' to ensure all locked packages are installed + run: poetry install + # packages_file: ${cwd}/requirements.txt + # runtime: python + triggers: + - git_hooks: [post-checkout, post-merge] + environment: + - name: VIRTUAL_ENV + value: ${env.VIRTUAL_ENV} + optional: true + +tools: + definitions: + - name: poetry + runtime: python + package: poetry + extra_packages: [poetry-plugin-export] + known_good_version: 1.8.2 + health_checks: + - command: poetry --version + parse_regex: ${semver} + shims: [poetry] diff --git a/actions/poetry/poetry.test.ts b/actions/poetry/poetry.test.ts new file mode 100644 index 000000000..46a4001a9 --- /dev/null +++ b/actions/poetry/poetry.test.ts @@ -0,0 +1,103 @@ +import * as fs from "fs"; +import * as path from "path"; +import { actionRunTest, toolInstallTest } from "tests"; +import { TrunkActionDriver } from "tests/driver"; + +toolInstallTest({ + toolName: "poetry", + toolVersion: "1.8.2", +}); + +const preCheck = (authors: boolean) => (driver: TrunkActionDriver) => { + const trunkYamlPath = ".trunk/trunk.yaml"; + const currentContents = driver.readFile(trunkYamlPath); + const newContents = currentContents.concat(` + definitions: + - id: poetry-check + runtime: python + packages_file: \${cwd}/requirements.txt + - id: poetry-lock + runtime: python + packages_file: \${cwd}/requirements.txt + - id: poetry-export + runtime: python + packages_file: \${cwd}/requirements.txt`); + driver.writeFile(trunkYamlPath, newContents); + + const authorsSection = authors ? "authors = []" : ""; + driver.writeFile( + "pyproject.toml", + `[tool.poetry] +name = "poetry-test" +version = "0.1.0" +description = "" +${authorsSection} + +[tool.poetry.dependencies] +python = "^3.10" +pendulum = "^3.0.0" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + `, + ); +}; + +const checkTestCallback = async (driver: TrunkActionDriver) => { + try { + await driver.gitDriver?.commit( + "Test commit", + [], + { "--allow-empty": null }, + (error, result) => { + expect(error?.message).toContain("The fields ['authors'] are required in package mode."); + expect(result).toBeUndefined(); + }, + ); + + // Commit step should throw + expect(1).toBe(2); + } catch (_err) { + // Intentionally empty + } +}; + +const fileExistsCallback = (filename: string) => async (driver: TrunkActionDriver) => { + try { + await driver.gitDriver?.commit( + "Test commit", + [], + { "--allow-empty": null }, + (_error, result) => { + expect(_error).toBeFalsy(); + expect(result).toBeTruthy(); + }, + ); + + expect(fs.existsSync(path.resolve(driver.getSandbox(), filename))).toBeTruthy(); + } catch (_err) { + // Intentionally empty + } +}; + +actionRunTest({ + actionName: "poetry-check", + syncGitHooks: true, + testCallback: checkTestCallback, + preCheck: preCheck(/*authors=*/ false), +}); + +actionRunTest({ + actionName: "poetry-lock", + syncGitHooks: true, + testCallback: fileExistsCallback("poetry.lock"), + preCheck: preCheck(/*authors=*/ true), +}); + +actionRunTest({ + actionName: "poetry-export", + syncGitHooks: true, + testCallback: fileExistsCallback("requirements.txt"), + preCheck: preCheck(/*authors=*/ true), +}); diff --git a/actions/poetry/requirements.txt b/actions/poetry/requirements.txt new file mode 100644 index 000000000..541d1dabd --- /dev/null +++ b/actions/poetry/requirements.txt @@ -0,0 +1,2 @@ +poetry==1.8.2 +poetry-plugin-export==1.7.1 From 93a5d45cfbb83a5f85c8bba3207496095a30ecfe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 10:52:17 -0700 Subject: [PATCH 13/38] Bump the dependencies group with 4 updates (#721) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps the dependencies group with 4 updates: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin), [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) and [simple-git](https://github.com/steveukx/git-js/tree/HEAD/simple-git). Updates `@types/node` from 20.11.30 to 20.12.2
Commits

Updates `@typescript-eslint/eslint-plugin` from 7.3.1 to 7.4.0
Release notes

Sourced from @​typescript-eslint/eslint-plugin's releases.

v7.4.0

7.4.0 (2024-03-25)

🚀 Features

🩹 Fixes

  • eslint-plugin: [prefer-optional-chain] address multipart nullish checks false positive (#8678)
  • eslint-plugin: [prefer-optional-chain] properly disambiguate between boolean and false (#8685)
  • eslint-plugin: [no-unnecessary-type-assertion] avoid remove const casting on template literals with expressions inside (#8740)
  • typescript-eslint: declare peer dependency on utils to ensure npm correctly installs dependencies (#8738)
  • website: visual Editor is not scrolled (#8709)
  • website: make 404 page good again (#8750)

❤️ Thank You

You can read about our versioning strategy and releases on our website.

Changelog

Sourced from @​typescript-eslint/eslint-plugin's changelog.

7.4.0 (2024-03-25)

🚀 Features

  • eslint-plugin: [consistent-type-imports] ignore files with decorators, experimentalDecorators, and emitDecoratorMetadata

  • eslint-plugin: [no-unnecessary-type-arguments] handle tagged templates

  • eslint-plugin: deprecate no-throw-literal and add a renamed only-throw-error

🩹 Fixes

  • eslint-plugin: [prefer-optional-chain] address multipart nullish checks false positive

  • eslint-plugin: [prefer-optional-chain] properly disambiguate between boolean and false

  • eslint-plugin: [no-unnecessary-type-assertion] avoid remove const casting on template literals with expressions inside

❤️ Thank You

  • Abraham Guo
  • Brad Zacher
  • Josh Goldberg ✨
  • Kim Sang Du
  • Kirk Waiblinger
  • Marco Pasqualetti
  • YeonJuan

You can read about our versioning strategy and releases on our website.

Commits
  • 5d24691 chore(release): publish 7.4.0
  • 029fc0b feat(eslint-plugin): deprecate no-throw-literal and add a renamed only-throw-...
  • 2a62a40 fix(eslint-plugin): [no-unnecessary-type-assertion] avoid remove const castin...
  • 990ec22 docs: fix example of binding unbound method (#8754)
  • a08554a feat(eslint-plugin): [no-unnecessary-type-arguments] handle tagged templates ...
  • 2018f91 fix(eslint-plugin): [prefer-optional-chain] properly disambiguate between `bo...
  • 56358a6 fix(eslint-plugin): [prefer-optional-chain] address multipart nullish checks ...
  • 532ae8b docs: fix typo in switch-exhaustiveness-check (#8768)
  • e408b93 feat(eslint-plugin): [consistent-type-imports] ignore files with decorators, ...
  • c787fe4 docs: restrict-template-expressions - remove mention of numbers being allowed...
  • See full diff in compare view

Updates `@typescript-eslint/parser` from 7.3.1 to 7.4.0
Release notes

Sourced from @​typescript-eslint/parser's releases.

v7.4.0

7.4.0 (2024-03-25)

🚀 Features

🩹 Fixes

  • eslint-plugin: [prefer-optional-chain] address multipart nullish checks false positive (#8678)
  • eslint-plugin: [prefer-optional-chain] properly disambiguate between boolean and false (#8685)
  • eslint-plugin: [no-unnecessary-type-assertion] avoid remove const casting on template literals with expressions inside (#8740)
  • typescript-eslint: declare peer dependency on utils to ensure npm correctly installs dependencies (#8738)
  • website: visual Editor is not scrolled (#8709)
  • website: make 404 page good again (#8750)

❤️ Thank You

You can read about our versioning strategy and releases on our website.

Changelog

Sourced from @​typescript-eslint/parser's changelog.

7.4.0 (2024-03-25)

🚀 Features

  • eslint-plugin: [consistent-type-imports] ignore files with decorators, experimentalDecorators, and emitDecoratorMetadata

❤️ Thank You

  • Abraham Guo
  • Brad Zacher
  • Josh Goldberg ✨
  • Kim Sang Du
  • Kirk Waiblinger
  • Marco Pasqualetti
  • YeonJuan

You can read about our versioning strategy and releases on our website.

Commits
  • 5d24691 chore(release): publish 7.4.0
  • e408b93 feat(eslint-plugin): [consistent-type-imports] ignore files with decorators, ...
  • See full diff in compare view

Updates `simple-git` from 3.23.0 to 3.24.0
Release notes

Sourced from simple-git's releases.

simple-git@3.24.0

Minor Changes

  • c355317: Enable the use of a two part custom binary
Changelog

Sourced from simple-git's changelog.

3.24.0

Minor Changes

  • c355317: Enable the use of a two part custom binary
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 360 +++++++++++++++++++++++----------------------- package.json | 8 +- 2 files changed, 184 insertions(+), 184 deletions(-) diff --git a/package-lock.json b/package-lock.json index b3d08aeb3..b7f1f6bd7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,9 +16,9 @@ "@types/debug": "^4.1.12", "@types/jest": "^29.5.12", "@types/jest-specific-snapshot": "^0.5.9", - "@types/node": "^20.11.30", - "@typescript-eslint/eslint-plugin": "^7.3.1", - "@typescript-eslint/parser": "^7.3.1", + "@types/node": "^20.12.2", + "@typescript-eslint/eslint-plugin": "^7.4.0", + "@typescript-eslint/parser": "^7.4.0", "caller": "^1.1.0", "debug": "^4.3.4", "eslint": "^8.57.0", @@ -34,7 +34,7 @@ "jest": "^29.3.1", "jest-specific-snapshot": "^8.0.0", "semver": "^7.6.0", - "simple-git": "^3.23.0", + "simple-git": "^3.24.0", "ts-jest": "^29.1.2", "ts-node": "^10.9.2", "tsconfig-paths": "^4.1.2", @@ -1472,9 +1472,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz", - "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==", + "version": "20.12.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.2.tgz", + "integrity": "sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1508,16 +1508,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.3.1.tgz", - "integrity": "sha512-STEDMVQGww5lhCuNXVSQfbfuNII5E08QWkvAw5Qwf+bj2WT+JkG1uc+5/vXA3AOYMDHVOSpL+9rcbEUiHIm2dw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.4.0.tgz", + "integrity": "sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "7.3.1", - "@typescript-eslint/type-utils": "7.3.1", - "@typescript-eslint/utils": "7.3.1", - "@typescript-eslint/visitor-keys": "7.3.1", + "@typescript-eslint/scope-manager": "7.4.0", + "@typescript-eslint/type-utils": "7.4.0", + "@typescript-eslint/utils": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1543,13 +1543,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.3.1.tgz", - "integrity": "sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.4.0.tgz", + "integrity": "sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/visitor-keys": "7.3.1" + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1560,9 +1560,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.3.1.tgz", - "integrity": "sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.4.0.tgz", + "integrity": "sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1573,13 +1573,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.3.1.tgz", - "integrity": "sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.4.0.tgz", + "integrity": "sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/visitor-keys": "7.3.1", + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1601,17 +1601,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.3.1.tgz", - "integrity": "sha512-jIERm/6bYQ9HkynYlNZvXpzmXWZGhMbrOvq3jJzOSOlKXsVjrrolzWBjDW6/TvT5Q3WqaN4EkmcfdQwi9tDjBQ==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.4.0.tgz", + "integrity": "sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.3.1", - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/typescript-estree": "7.3.1", + "@typescript-eslint/scope-manager": "7.4.0", + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/typescript-estree": "7.4.0", "semver": "^7.5.4" }, "engines": { @@ -1626,12 +1626,12 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.3.1.tgz", - "integrity": "sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.4.0.tgz", + "integrity": "sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/types": "7.4.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -1667,15 +1667,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.3.1.tgz", - "integrity": "sha512-Rq49+pq7viTRCH48XAbTA+wdLRrB/3sRq4Lpk0oGDm0VmnjBrAOVXH/Laalmwsv2VpekiEfVFwJYVk6/e8uvQw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.4.0.tgz", + "integrity": "sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.3.1", - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/typescript-estree": "7.3.1", - "@typescript-eslint/visitor-keys": "7.3.1", + "@typescript-eslint/scope-manager": "7.4.0", + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/typescript-estree": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0", "debug": "^4.3.4" }, "engines": { @@ -1695,13 +1695,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.3.1.tgz", - "integrity": "sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.4.0.tgz", + "integrity": "sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/visitor-keys": "7.3.1" + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1712,9 +1712,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.3.1.tgz", - "integrity": "sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.4.0.tgz", + "integrity": "sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1725,13 +1725,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.3.1.tgz", - "integrity": "sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.4.0.tgz", + "integrity": "sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/visitor-keys": "7.3.1", + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1753,12 +1753,12 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.3.1.tgz", - "integrity": "sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.4.0.tgz", + "integrity": "sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/types": "7.4.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -1811,13 +1811,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.3.1.tgz", - "integrity": "sha512-iFhaysxFsMDQlzJn+vr3OrxN8NmdQkHks4WaqD4QBnt5hsq234wcYdyQ9uquzJJIDAj5W4wQne3yEsYA6OmXGw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.4.0.tgz", + "integrity": "sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.3.1", - "@typescript-eslint/utils": "7.3.1", + "@typescript-eslint/typescript-estree": "7.4.0", + "@typescript-eslint/utils": "7.4.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -1838,13 +1838,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.3.1.tgz", - "integrity": "sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.4.0.tgz", + "integrity": "sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/visitor-keys": "7.3.1" + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1855,9 +1855,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.3.1.tgz", - "integrity": "sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.4.0.tgz", + "integrity": "sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1868,13 +1868,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.3.1.tgz", - "integrity": "sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.4.0.tgz", + "integrity": "sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/visitor-keys": "7.3.1", + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1896,17 +1896,17 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.3.1.tgz", - "integrity": "sha512-jIERm/6bYQ9HkynYlNZvXpzmXWZGhMbrOvq3jJzOSOlKXsVjrrolzWBjDW6/TvT5Q3WqaN4EkmcfdQwi9tDjBQ==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.4.0.tgz", + "integrity": "sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.3.1", - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/typescript-estree": "7.3.1", + "@typescript-eslint/scope-manager": "7.4.0", + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/typescript-estree": "7.4.0", "semver": "^7.5.4" }, "engines": { @@ -1921,12 +1921,12 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.3.1.tgz", - "integrity": "sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.4.0.tgz", + "integrity": "sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/types": "7.4.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -6080,9 +6080,9 @@ "dev": true }, "node_modules/simple-git": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.23.0.tgz", - "integrity": "sha512-P9ggTW8vb/21CAL/AmnACAhqBDfnqSSZVpV7WuFtsFR9HLunf5IqQvk+OXAQTfkcZep8pKnt3DV3o7w3TegEkQ==", + "version": "3.24.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.24.0.tgz", + "integrity": "sha512-QqAKee9Twv+3k8IFOFfPB2hnk6as6Y6ACUpwCtQvRYBAes23Wv3SZlHVobAzqcE8gfsisCvPw3HGW3HYM+VYYw==", "dev": true, "dependencies": { "@kwsites/file-exists": "^1.1.1", @@ -8046,9 +8046,9 @@ "dev": true }, "@types/node": { - "version": "20.11.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz", - "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==", + "version": "20.12.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.2.tgz", + "integrity": "sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==", "dev": true, "requires": { "undici-types": "~5.26.4" @@ -8082,16 +8082,16 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.3.1.tgz", - "integrity": "sha512-STEDMVQGww5lhCuNXVSQfbfuNII5E08QWkvAw5Qwf+bj2WT+JkG1uc+5/vXA3AOYMDHVOSpL+9rcbEUiHIm2dw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.4.0.tgz", + "integrity": "sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==", "dev": true, "requires": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "7.3.1", - "@typescript-eslint/type-utils": "7.3.1", - "@typescript-eslint/utils": "7.3.1", - "@typescript-eslint/visitor-keys": "7.3.1", + "@typescript-eslint/scope-manager": "7.4.0", + "@typescript-eslint/type-utils": "7.4.0", + "@typescript-eslint/utils": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -8101,29 +8101,29 @@ }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.3.1.tgz", - "integrity": "sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.4.0.tgz", + "integrity": "sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==", "dev": true, "requires": { - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/visitor-keys": "7.3.1" + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0" } }, "@typescript-eslint/types": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.3.1.tgz", - "integrity": "sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.4.0.tgz", + "integrity": "sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.3.1.tgz", - "integrity": "sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.4.0.tgz", + "integrity": "sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==", "dev": true, "requires": { - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/visitor-keys": "7.3.1", + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -8133,27 +8133,27 @@ } }, "@typescript-eslint/utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.3.1.tgz", - "integrity": "sha512-jIERm/6bYQ9HkynYlNZvXpzmXWZGhMbrOvq3jJzOSOlKXsVjrrolzWBjDW6/TvT5Q3WqaN4EkmcfdQwi9tDjBQ==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.4.0.tgz", + "integrity": "sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.3.1", - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/typescript-estree": "7.3.1", + "@typescript-eslint/scope-manager": "7.4.0", + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/typescript-estree": "7.4.0", "semver": "^7.5.4" } }, "@typescript-eslint/visitor-keys": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.3.1.tgz", - "integrity": "sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.4.0.tgz", + "integrity": "sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==", "dev": true, "requires": { - "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/types": "7.4.0", "eslint-visitor-keys": "^3.4.1" } }, @@ -8178,42 +8178,42 @@ } }, "@typescript-eslint/parser": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.3.1.tgz", - "integrity": "sha512-Rq49+pq7viTRCH48XAbTA+wdLRrB/3sRq4Lpk0oGDm0VmnjBrAOVXH/Laalmwsv2VpekiEfVFwJYVk6/e8uvQw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.4.0.tgz", + "integrity": "sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "7.3.1", - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/typescript-estree": "7.3.1", - "@typescript-eslint/visitor-keys": "7.3.1", + "@typescript-eslint/scope-manager": "7.4.0", + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/typescript-estree": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0", "debug": "^4.3.4" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.3.1.tgz", - "integrity": "sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.4.0.tgz", + "integrity": "sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==", "dev": true, "requires": { - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/visitor-keys": "7.3.1" + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0" } }, "@typescript-eslint/types": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.3.1.tgz", - "integrity": "sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.4.0.tgz", + "integrity": "sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.3.1.tgz", - "integrity": "sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.4.0.tgz", + "integrity": "sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==", "dev": true, "requires": { - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/visitor-keys": "7.3.1", + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -8223,12 +8223,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.3.1.tgz", - "integrity": "sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.4.0.tgz", + "integrity": "sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==", "dev": true, "requires": { - "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/types": "7.4.0", "eslint-visitor-keys": "^3.4.1" } }, @@ -8263,41 +8263,41 @@ } }, "@typescript-eslint/type-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.3.1.tgz", - "integrity": "sha512-iFhaysxFsMDQlzJn+vr3OrxN8NmdQkHks4WaqD4QBnt5hsq234wcYdyQ9uquzJJIDAj5W4wQne3yEsYA6OmXGw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.4.0.tgz", + "integrity": "sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "7.3.1", - "@typescript-eslint/utils": "7.3.1", + "@typescript-eslint/typescript-estree": "7.4.0", + "@typescript-eslint/utils": "7.4.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.3.1.tgz", - "integrity": "sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.4.0.tgz", + "integrity": "sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==", "dev": true, "requires": { - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/visitor-keys": "7.3.1" + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0" } }, "@typescript-eslint/types": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.3.1.tgz", - "integrity": "sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.4.0.tgz", + "integrity": "sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.3.1.tgz", - "integrity": "sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.4.0.tgz", + "integrity": "sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==", "dev": true, "requires": { - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/visitor-keys": "7.3.1", + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -8307,27 +8307,27 @@ } }, "@typescript-eslint/utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.3.1.tgz", - "integrity": "sha512-jIERm/6bYQ9HkynYlNZvXpzmXWZGhMbrOvq3jJzOSOlKXsVjrrolzWBjDW6/TvT5Q3WqaN4EkmcfdQwi9tDjBQ==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.4.0.tgz", + "integrity": "sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.3.1", - "@typescript-eslint/types": "7.3.1", - "@typescript-eslint/typescript-estree": "7.3.1", + "@typescript-eslint/scope-manager": "7.4.0", + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/typescript-estree": "7.4.0", "semver": "^7.5.4" } }, "@typescript-eslint/visitor-keys": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.3.1.tgz", - "integrity": "sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.4.0.tgz", + "integrity": "sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==", "dev": true, "requires": { - "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/types": "7.4.0", "eslint-visitor-keys": "^3.4.1" } }, @@ -11323,9 +11323,9 @@ "dev": true }, "simple-git": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.23.0.tgz", - "integrity": "sha512-P9ggTW8vb/21CAL/AmnACAhqBDfnqSSZVpV7WuFtsFR9HLunf5IqQvk+OXAQTfkcZep8pKnt3DV3o7w3TegEkQ==", + "version": "3.24.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.24.0.tgz", + "integrity": "sha512-QqAKee9Twv+3k8IFOFfPB2hnk6as6Y6ACUpwCtQvRYBAes23Wv3SZlHVobAzqcE8gfsisCvPw3HGW3HYM+VYYw==", "dev": true, "requires": { "@kwsites/file-exists": "^1.1.1", diff --git a/package.json b/package.json index b54227436..244a0e40e 100644 --- a/package.json +++ b/package.json @@ -14,9 +14,9 @@ "@types/debug": "^4.1.12", "@types/jest": "^29.5.12", "@types/jest-specific-snapshot": "^0.5.9", - "@types/node": "^20.11.30", - "@typescript-eslint/eslint-plugin": "^7.3.1", - "@typescript-eslint/parser": "^7.3.1", + "@types/node": "^20.12.2", + "@typescript-eslint/eslint-plugin": "^7.4.0", + "@typescript-eslint/parser": "^7.4.0", "caller": "^1.1.0", "debug": "^4.3.4", "eslint": "^8.57.0", @@ -32,7 +32,7 @@ "jest": "^29.3.1", "jest-specific-snapshot": "^8.0.0", "semver": "^7.6.0", - "simple-git": "^3.23.0", + "simple-git": "^3.24.0", "ts-jest": "^29.1.2", "ts-node": "^10.9.2", "tsconfig-paths": "^4.1.2", From f33cdefa83a8816bba8425c47487beed9027301f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 10:52:50 -0700 Subject: [PATCH 14/38] Bump the dependencies group with 1 update (#722) Bumps the dependencies group with 1 update: [trunk-io/trunk-action](https://github.com/trunk-io/trunk-action). Updates `trunk-io/trunk-action` from 1.1.11 to 1.1.12
Release notes

Sourced from trunk-io/trunk-action's releases.

v1.1.12

What's Changed

  • Adds an action to install trunk: trunk-io/trunk-action/install@v1 (#234)

Full Changelog: https://github.com/trunk-io/trunk-action/compare/v1.1.11...v1.1.12

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=trunk-io/trunk-action&package-manager=github_actions&previous-version=1.1.11&new-version=1.1.12)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/annotate_pr.yaml | 2 +- .github/workflows/pr.yaml | 2 +- .github/workflows/upgrade_trunk.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/annotate_pr.yaml b/.github/workflows/annotate_pr.yaml index 7612892bf..2a3c1ccb3 100644 --- a/.github/workflows/annotate_pr.yaml +++ b/.github/workflows/annotate_pr.yaml @@ -18,7 +18,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Trunk Check - uses: trunk-io/trunk-action@718b71fb3e4d83f6734f0c372d92ee7d4c9976d7 # v1.1.11 + uses: trunk-io/trunk-action@540e7fe497a45ae76370d26d95cc249059c4ac3a # v1.1.12 with: post-annotations: true # This job may fail when the PR was not run on a fork, and that's okay diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index d0b30874a..f84addc51 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -214,7 +214,7 @@ jobs: lfs: true - name: Trunk Check - uses: trunk-io/trunk-action@718b71fb3e4d83f6734f0c372d92ee7d4c9976d7 + uses: trunk-io/trunk-action@540e7fe497a45ae76370d26d95cc249059c4ac3a env: TRUNK_GITHUB_CHECK_RUN_TITLE: Trunk Check diff --git a/.github/workflows/upgrade_trunk.yaml b/.github/workflows/upgrade_trunk.yaml index cc56d8d11..c5d1bdebc 100644 --- a/.github/workflows/upgrade_trunk.yaml +++ b/.github/workflows/upgrade_trunk.yaml @@ -26,7 +26,7 @@ jobs: private_key: ${{ secrets.TRUNK_OPEN_PR_APP_PRIVATE_KEY }} - name: Trunk Upgrade - uses: trunk-io/trunk-action/upgrade@718b71fb3e4d83f6734f0c372d92ee7d4c9976d7 + uses: trunk-io/trunk-action/upgrade@540e7fe497a45ae76370d26d95cc249059c4ac3a with: arguments: -n --bleeding-edge github-token: ${{ steps.generate-token.outputs.token }} From e1744adde1407d0da1e560825a6a45d8ab529a32 Mon Sep 17 00:00:00 2001 From: Lauri Takacsi Date: Tue, 2 Apr 2024 10:33:37 -0700 Subject: [PATCH 15/38] Phpstan integration (#720) + php config definitions --- .github/actions/linter_tests/action.yaml | 6 +++ .trunk/trunk.yaml | 2 +- README.md | 2 + linters/phpstan/phpstan.test.ts | 4 ++ linters/phpstan/phpstan_parser.py | 45 ++++++++++++++++ linters/phpstan/plugin.yaml | 32 ++++++++++++ linters/phpstan/test_data/basic.in.php | 9 ++++ .../phpstan_v1.10.58_basic.check.shot | 51 +++++++++++++++++++ plugin.yaml | 2 +- runtimes/php/plugin.yaml | 29 +++++++++++ tests/repo_tests/config_check.test.ts | 2 +- 11 files changed, 181 insertions(+), 3 deletions(-) create mode 100644 linters/phpstan/phpstan.test.ts create mode 100755 linters/phpstan/phpstan_parser.py create mode 100644 linters/phpstan/plugin.yaml create mode 100644 linters/phpstan/test_data/basic.in.php create mode 100644 linters/phpstan/test_data/phpstan_v1.10.58_basic.check.shot create mode 100644 runtimes/php/plugin.yaml diff --git a/.github/actions/linter_tests/action.yaml b/.github/actions/linter_tests/action.yaml index 0bc5897ff..60da100c2 100644 --- a/.github/actions/linter_tests/action.yaml +++ b/.github/actions/linter_tests/action.yaml @@ -36,6 +36,8 @@ runs: with: node-version: 18 + # NOTE: tzdata is a dependency of php, but without the DEBIAN_FRONTEND=noninteractive + # it will prompt for a timezone selection - name: Install packages and specify defaults run: | echo "CLI_PATH=${{ inputs.cli-path }}" >> "$GITHUB_ENV" @@ -44,11 +46,15 @@ runs: Linux) sudo apt-get update sudo apt-get -y install libperl-critic-perl perltidy zlib1g-dev + DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC sudo apt-get -y install tzdata + sudo add-apt-repository ppa:ondrej/php + sudo apt install -y php8.0-fpm php8.0-xml php8.0-mbstring php8.0-curl ;; macOS) brew install cpm cpm install -g --no-test --color Perl::Critic Perl::Tidy brew unlink perl && brew link perl + brew install php gnupg ;; Windows) echo "PLATFORM_APPEND_ARGS=--maxWorkers=5" >> "$GITHUB_ENV" diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index ef5020ad1..460a9332a 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -2,7 +2,7 @@ version: 0.1 # version used for local trunk runs and testing cli: - version: 1.21.1-beta.15 + version: 1.21.1-beta.16 shell_hooks: enforce: true diff --git a/README.md b/README.md index 8b5ebdd4d..8276b8642 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,7 @@ trunk check enable {linter} | Nix | [nixpkgs-fmt] | | package.json | [sort-package-json] | | Perl | [perlcritic], [perltidy] | +| PHP | [phpstan] | | PNG | [oxipng] | | PowerShell | [psscriptanalyzer] | | Prisma | [prisma] | @@ -142,6 +143,7 @@ trunk check enable {linter} [oxipng]: https://github.com/shssoichiro/oxipng#readme [perlcritic]: https://metacpan.org/pod/Perl::Critic [perltidy]: https://metacpan.org/dist/Perl-Tidy/view/bin/perltidy +[phpstan]: https://phpstan.org/ [pmd]: https://pmd.github.io/ [pragma-once]: linters/pragma-once/README.md [prettier]: https://github.com/prettier/prettier#readme diff --git a/linters/phpstan/phpstan.test.ts b/linters/phpstan/phpstan.test.ts new file mode 100644 index 000000000..cd5626d05 --- /dev/null +++ b/linters/phpstan/phpstan.test.ts @@ -0,0 +1,4 @@ +import { linterCheckTest } from "tests"; +import { skipOS } from "tests/utils"; + +linterCheckTest({ linterName: "phpstan", skipTestIf: skipOS(["win32"]) }); diff --git a/linters/phpstan/phpstan_parser.py b/linters/phpstan/phpstan_parser.py new file mode 100755 index 000000000..32a7133e4 --- /dev/null +++ b/linters/phpstan/phpstan_parser.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python3 + +import json +import sys + + +def main(): + phpstan_json = json.loads(sys.stdin.read()) + + results = [] + for file_name in phpstan_json["files"]: + file_result = phpstan_json["files"][file_name] + for result in file_result["messages"]: + result = { + # We do not have a ruleId + "message": { + "text": result["message"], + }, + "ruleId": "phpstan", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": {"uri": file_name}, + "region": { + "startLine": result["line"], + "startColumn": 0, # Output column is not available in phpstan + }, + } + }, + ], + } + results.append(result) + + sarif = { + "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json", + "version": "2.1.0", + "runs": [{"results": results}], + } + + print(json.dumps(sarif, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/linters/phpstan/plugin.yaml b/linters/phpstan/plugin.yaml new file mode 100644 index 000000000..289e2b61e --- /dev/null +++ b/linters/phpstan/plugin.yaml @@ -0,0 +1,32 @@ +version: 0.1 +tools: + definitions: + - name: phpstan + runtime: php + package: phpstan/phpstan + known_good_version: 1.10.58 + shims: [phpstan] + environment: + - name: PATH + list: ["${tool}/vendor/bin"] +lint: + definitions: + - name: phpstan + main_tool: phpstan + known_good_version: 1.10.58 + commands: + - run: phpstan analyze "${target}" --error-format=json --level=9 + output: sarif + success_codes: [0, 1] + files: [php] + batch: true + cache_results: true + read_output_from: stdout + parser: + runtime: python + run: python3 ${plugin}/linters/phpstan/phpstan_parser.py + + direct_configs: + - phpstan.neon + - phpstan.neon.dist + - phpstan.dist.neon diff --git a/linters/phpstan/test_data/basic.in.php b/linters/phpstan/test_data/basic.in.php new file mode 100644 index 000000000..749995fbe --- /dev/null +++ b/linters/phpstan/test_data/basic.in.php @@ -0,0 +1,9 @@ +format('j. n. Y'); + } +} diff --git a/linters/phpstan/test_data/phpstan_v1.10.58_basic.check.shot b/linters/phpstan/test_data/phpstan_v1.10.58_basic.check.shot new file mode 100644 index 000000000..abf9957a7 --- /dev/null +++ b/linters/phpstan/test_data/phpstan_v1.10.58_basic.check.shot @@ -0,0 +1,51 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Testing linter phpstan test basic 1`] = ` +{ + "issues": [ + { + "code": "phpstan", + "file": "test_data/basic.in.php", + "issueClass": "ISSUE_CLASS_EXISTING", + "level": "LEVEL_HIGH", + "line": "5", + "linter": "phpstan", + "message": "Parameter $date of method HelloWorld::sayHello() has invalid type DateTimeImutable.", + "targetType": "php", + }, + { + "code": "phpstan", + "file": "test_data/basic.in.php", + "issueClass": "ISSUE_CLASS_EXISTING", + "level": "LEVEL_HIGH", + "line": "7", + "linter": "phpstan", + "message": "Call to method format() on an unknown class DateTimeImutable.", + "targetType": "php", + }, + ], + "lintActions": [ + { + "command": "lint", + "fileGroupName": "php", + "linter": "phpstan", + "paths": [ + "test_data/basic.in.php", + ], + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "lint", + "fileGroupName": "php", + "linter": "phpstan", + "paths": [ + "test_data/basic.in.php", + ], + "upstream": true, + "verb": "TRUNK_VERB_CHECK", + }, + ], + "taskFailures": [], + "unformattedFiles": [], +} +`; diff --git a/plugin.yaml b/plugin.yaml index 288f62dbf..e2fe55ca7 100644 --- a/plugin.yaml +++ b/plugin.yaml @@ -1,6 +1,6 @@ version: 0.1 # IfChange -required_trunk_version: ">=1.21.1-beta.14" +required_trunk_version: ">=1.21.1-beta.16" # ThenChange tests/repo_tests/config_check.test.ts environments: diff --git a/runtimes/php/plugin.yaml b/runtimes/php/plugin.yaml new file mode 100644 index 000000000..bd4db0d78 --- /dev/null +++ b/runtimes/php/plugin.yaml @@ -0,0 +1,29 @@ +version: 0.1 +downloads: # Needed for the php runtime to install packages + - name: composer + executable: true + version: 2.5.1 + downloads: + - version: 2.5.1 + gpg: CBB3D576F2A0946F + - name: phive + executable: true + version: 0.15.1 + downloads: + - url: https://github.com/phar-io/phive/releases/download/${version}/phive-${version}.phar +runtimes: + definitions: + - type: php + system_version: required + version: ">=8.0.0" + runtime_environment: + - name: HOME + value: ${env.HOME} + - name: PATH + list: ["${env.PATH}"] + linter_environment: + - name: PATH + list: ["${linter}/bin"] + version_commands: + - run: php --version + parse_regex: PHP ${short_semver} diff --git a/tests/repo_tests/config_check.test.ts b/tests/repo_tests/config_check.test.ts index 662a08ba1..7cb4a0ee8 100644 --- a/tests/repo_tests/config_check.test.ts +++ b/tests/repo_tests/config_check.test.ts @@ -25,7 +25,7 @@ describe("Global config health check", () => { setupTrunk: true, // NOTE: This version should be kept compatible in lockstep with the `required_trunk_version` in plugin.yaml // IfChange - trunkVersion: "1.21.1-beta.14", + trunkVersion: "1.21.1-beta.16", // ThenChange plugin.yaml }); From a4a3eb99f0ecd1f59912abd4a531b9aab519de2a Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Thu, 4 Apr 2024 14:04:06 -0700 Subject: [PATCH 16/38] Run ruff on python-interface files (#727) Ruff [supports](https://docs.astral.sh/ruff/configuration/#default-inclusions) running on `python-interface` (`.pyi`) files. Updates the fileset to include this and adds a test. --- linters/ruff/plugin.yaml | 2 +- linters/ruff/ruff.test.ts | 2 +- linters/ruff/test_data/interface.in.pyi | 51 +++++ .../ruff_v0.0.250_interface.check.shot | 208 ++++++++++++++++++ 4 files changed, 261 insertions(+), 2 deletions(-) create mode 100644 linters/ruff/test_data/interface.in.pyi create mode 100644 linters/ruff/test_data/ruff_v0.0.250_interface.check.shot diff --git a/linters/ruff/plugin.yaml b/linters/ruff/plugin.yaml index e74775f4b..51fcf5f71 100644 --- a/linters/ruff/plugin.yaml +++ b/linters/ruff/plugin.yaml @@ -9,7 +9,7 @@ tools: lint: definitions: - name: ruff - files: [python] + files: [python, python-interface] commands: - name: lint # As of ruff v0.1.0, --format is replaced with --output-format diff --git a/linters/ruff/ruff.test.ts b/linters/ruff/ruff.test.ts index bd322b90f..253490de7 100644 --- a/linters/ruff/ruff.test.ts +++ b/linters/ruff/ruff.test.ts @@ -2,7 +2,7 @@ import { linterCheckTest, linterFmtTest } from "tests"; import { TrunkLintDriver } from "tests/driver"; import { skipOS } from "tests/utils"; -linterCheckTest({ linterName: "ruff", namedTestPrefixes: ["basic"] }); +linterCheckTest({ linterName: "ruff", namedTestPrefixes: ["basic", "interface"] }); // ruff-nbqa still runs correctly on Windows, but the diagnostics are slightly different from the assertions. linterCheckTest({ diff --git a/linters/ruff/test_data/interface.in.pyi b/linters/ruff/test_data/interface.in.pyi new file mode 100644 index 000000000..ac27d5d56 --- /dev/null +++ b/linters/ruff/test_data/interface.in.pyi @@ -0,0 +1,51 @@ +# Based on test file input from astral-sh/ruff +import json + +from typing import Any, Sequence + +class MissingCommand(TypeError): ... +class AnoherClass: ... + +def a(): ... + +@overload +def a(arg: int): ... + +@overload +def a(arg: int, name: str): ... + + +def grouped1(): ... +def grouped2(): ... +def grouped3( ): ... + + +class BackendProxy: + backend_module: str + backend_object: str | None + backend: Any + + def grouped1(): ... + def grouped2(): ... + def grouped3( ): ... + @decorated + + def with_blank_line(): ... + + + def ungrouped(): ... +a = "test" + +def function_def(): + pass +b = "test" + + +def outer(): + def inner(): + pass + def inner2(): + pass + +class Foo: ... +class Bar: ... diff --git a/linters/ruff/test_data/ruff_v0.0.250_interface.check.shot b/linters/ruff/test_data/ruff_v0.0.250_interface.check.shot new file mode 100644 index 000000000..2df3cf57b --- /dev/null +++ b/linters/ruff/test_data/ruff_v0.0.250_interface.check.shot @@ -0,0 +1,208 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Testing linter ruff test interface 1`] = ` +{ + "issues": [ + { + "code": "F821", + "column": "2", + "file": "test_data/interface.in.pyi", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://docs.astral.sh/ruff/rules/#F821", + "level": "LEVEL_HIGH", + "line": "11", + "linter": "ruff", + "message": "Undefined name \`overload\`", + "ranges": [ + { + "filePath": "test_data/interface.in.pyi", + "length": "8", + "offset": "170", + }, + ], + "targetType": "python-interface", + }, + { + "code": "F811", + "column": "5", + "file": "test_data/interface.in.pyi", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://docs.astral.sh/ruff/rules/#F811", + "level": "LEVEL_HIGH", + "line": "12", + "linter": "ruff", + "message": "Redefinition of unused \`a\` from line 9", + "ranges": [ + { + "filePath": "test_data/interface.in.pyi", + "length": "1", + "offset": "183", + }, + ], + "targetType": "python-interface", + }, + { + "code": "F821", + "column": "2", + "file": "test_data/interface.in.pyi", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://docs.astral.sh/ruff/rules/#F821", + "level": "LEVEL_HIGH", + "line": "14", + "linter": "ruff", + "message": "Undefined name \`overload\`", + "ranges": [ + { + "filePath": "test_data/interface.in.pyi", + "length": "8", + "offset": "202", + }, + ], + "targetType": "python-interface", + }, + { + "code": "F811", + "column": "5", + "file": "test_data/interface.in.pyi", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://docs.astral.sh/ruff/rules/#F811", + "level": "LEVEL_HIGH", + "line": "15", + "linter": "ruff", + "message": "Redefinition of unused \`a\` from line 12", + "ranges": [ + { + "filePath": "test_data/interface.in.pyi", + "length": "1", + "offset": "215", + }, + ], + "targetType": "python-interface", + }, + { + "autofixOptions": [ + { + "message": "Remove unused import: \`json\`", + "replacements": [ + { + "filePath": "test_data/interface.in.pyi", + "length": "12", + "offset": "47", + }, + ], + }, + ], + "code": "F401", + "column": "8", + "file": "test_data/interface.in.pyi", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://docs.astral.sh/ruff/rules/#F401", + "level": "LEVEL_HIGH", + "line": "2", + "linter": "ruff", + "message": "\`json\` imported but unused", + "ranges": [ + { + "filePath": "test_data/interface.in.pyi", + "length": "4", + "offset": "54", + }, + ], + "targetType": "python-interface", + }, + { + "code": "F821", + "column": "6", + "file": "test_data/interface.in.pyi", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://docs.astral.sh/ruff/rules/#F821", + "level": "LEVEL_HIGH", + "line": "31", + "linter": "ruff", + "message": "Undefined name \`decorated\`", + "ranges": [ + { + "filePath": "test_data/interface.in.pyi", + "length": "9", + "offset": "479", + }, + ], + "targetType": "python-interface", + }, + { + "code": "F811", + "column": "1", + "file": "test_data/interface.in.pyi", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://docs.astral.sh/ruff/rules/#F811", + "level": "LEVEL_HIGH", + "line": "37", + "linter": "ruff", + "message": "Redefinition of unused \`a\` from line 15", + "ranges": [ + { + "filePath": "test_data/interface.in.pyi", + "length": "1", + "offset": "548", + }, + ], + "targetType": "python-interface", + }, + { + "autofixOptions": [ + { + "message": "Remove unused import: \`typing.Sequence\`", + "replacements": [ + { + "filePath": "test_data/interface.in.pyi", + "length": "32", + "offset": "60", + "replacementText": "from typing import Any", + }, + ], + }, + ], + "code": "F401", + "column": "25", + "file": "test_data/interface.in.pyi", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://docs.astral.sh/ruff/rules/#F401", + "level": "LEVEL_HIGH", + "line": "4", + "linter": "ruff", + "message": "\`typing.Sequence\` imported but unused", + "ranges": [ + { + "filePath": "test_data/interface.in.pyi", + "length": "8", + "offset": "84", + }, + ], + "targetType": "python-interface", + }, + ], + "lintActions": [ + { + "command": "lint", + "fileGroupName": "python-interface", + "linter": "ruff", + "paths": [ + "test_data/interface.in.pyi", + ], + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "lint", + "fileGroupName": "python-interface", + "linter": "ruff", + "paths": [ + "test_data/interface.in.pyi", + ], + "upstream": true, + "verb": "TRUNK_VERB_CHECK", + }, + ], + "taskFailures": [], + "unformattedFiles": [], +} +`; From d3ff70b47ed8d0225cb06d5b197b4809f46dc88a Mon Sep 17 00:00:00 2001 From: rriski Date: Thu, 4 Apr 2024 21:46:34 +0000 Subject: [PATCH 17/38] Update commitlint v17 -> v19 (#726) v19 contains breaking changes, see: - https://github.com/conventional-changelog/commitlint/blob/master/CHANGELOG.md#1900-2024-02-27 --- actions/commitlint/README.md | 8 ++++---- actions/commitlint/commitlint.test.ts | 4 ++-- actions/commitlint/package.json | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/actions/commitlint/README.md b/actions/commitlint/README.md index 1d2111e51..b4f8e2ad4 100644 --- a/actions/commitlint/README.md +++ b/actions/commitlint/README.md @@ -4,7 +4,7 @@ https://github.com/conventional-changelog/commitlint ## Simple configuration -1. `echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js` +1. `echo "export default {extends: ['@commitlint/config-conventional']}" > commitlint.config.mjs` 2. `trunk actions enable commitlint` This will install the basic config and run commitlint on every `commit-msg` hook. @@ -14,7 +14,7 @@ This will install the basic config and run commitlint on every `commit-msg` hook In order to use different commitlint configuration or specify a specific commitlint version, you must: -1. Modify your `commitlint.config.js` accordingly +1. Modify your `commitlint.config.mjs` accordingly 2. Override the `packages_file` field for the action and specify a package.json For example: @@ -30,10 +30,10 @@ actions: packages_file: ${workspace}/.trunk/commitlint/package.json ``` -`commitlint.config.js`: +`commitlint.config.mjs`: ```js -module.exports = { +export default { extends: ["@commitlint/config-angular", "@commitlint/config-conventional"], }; ``` diff --git a/actions/commitlint/commitlint.test.ts b/actions/commitlint/commitlint.test.ts index fe8402105..f9dd17fb1 100644 --- a/actions/commitlint/commitlint.test.ts +++ b/actions/commitlint/commitlint.test.ts @@ -4,8 +4,8 @@ import { TrunkActionDriver } from "tests/driver"; const preCheck = (driver: TrunkActionDriver) => { driver.writeFile( - "commitlint.config.js", - "module.exports = {extends: ['@commitlint/config-conventional']}", + "commitlint.config.mjs", + "export default {extends: ['@commitlint/config-conventional']}", ); }; diff --git a/actions/commitlint/package.json b/actions/commitlint/package.json index dedb725d5..972a41131 100644 --- a/actions/commitlint/package.json +++ b/actions/commitlint/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "@commitlint/cli": "^17.0", - "@commitlint/config-conventional": "^17.0" + "@commitlint/cli": "^19.0", + "@commitlint/config-conventional": "^19.0" } } From 25bbe54f273f6bd699644fa09f8dad887b2ab76b Mon Sep 17 00:00:00 2001 From: kathlam Date: Fri, 5 Apr 2024 10:42:42 -0700 Subject: [PATCH 18/38] Update README.md (#728) Replaced linter pages with Trunk linter pages. --- README.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 8276b8642..47e20065f 100644 --- a/README.md +++ b/README.md @@ -88,17 +88,17 @@ trunk check enable {linter} | Typescript | [deno], [eslint], [prettier], [rome], [semgrep] | | YAML | [prettier], [semgrep], [yamllint] | -[actionlint]: https://github.com/rhysd/actionlint#readme +[actionlint]: https://trunk.io/linters/infra/actionlint [ansible-lint]: https://github.com/ansible/ansible-lint#readme [autopep8]: https://github.com/hhatto/autopep8#readme -[bandit]: https://github.com/PyCQA/bandit#readme +[bandit]: https://trunk.io/linters/python/bandit [biome]: https://github.com/biomejs/biome#readme [black]: https://github.com/psf/black#readme -[brakeman]: https://github.com/presidentbeef/brakeman#readme +[brakeman]: https://trunk.io/linters/security/brakeman [buf]: https://github.com/bufbuild/buf#readme [buildifier]: https://github.com/bazelbuild/buildtools/blob/master/buildifier/README.md [cfnlint]: https://github.com/aws-cloudformation/cfn-lint#readme -[checkov]: https://github.com/bridgecrewio/checkov#readme +[checkov]: https://trunk.io/linters/security/checkov [circleci]: https://github.com/CircleCI-Public/circleci-cli#readme [clang-format]: https://clang.llvm.org/docs/ClangFormat.html [clang-tidy]: https://clang.llvm.org/extra/clang-tidy/ @@ -115,9 +115,9 @@ trunk check enable {linter} [dotnet-format]: https://github.com/dotnet/format#readme [dustilock]: https://github.com/Checkmarx/dustilock [eslint]: https://github.com/eslint/eslint#readme -[flake8]: https://github.com/PyCQA/flake8#readme +[flake8]: https://trunk.io/linters/python/flake8 [git-diff-check]: https://git-scm.com/docs/git-diff -[gitleaks]: https://github.com/zricethezav/gitleaks#readme +[gitleaks]: https://trunk.io/linters/security/gitleaks [gofmt]: https://pkg.go.dev/cmd/gofmt [gofumpt]: https://pkg.go.dev/mvdan.cc/gofumpt [goimports]: https://pkg.go.dev/golang.org/x/tools/cmd/goimports @@ -139,7 +139,7 @@ trunk check enable {linter} [nancy]: https://github.com/sonatype-nexus-community/nancy#readme [nixpkgs-fmt]: https://github.com/nix-community/nixpkgs-fmt [opa]: https://www.openpolicyagent.org/docs/latest/cli/ -[osv-scanner]: https://github.com/google/osv-scanner +[osv-scanner]: https://trunk.io/linters/security/osv-scanner [oxipng]: https://github.com/shssoichiro/oxipng#readme [perlcritic]: https://metacpan.org/pod/Perl::Critic [perltidy]: https://metacpan.org/dist/Perl-Tidy/view/bin/perltidy @@ -157,12 +157,12 @@ trunk check enable {linter} [renovate]: https://github.com/renovatebot/renovate#readme [rome]: https://github.com/rome/tools#readme [rubocop]: https://github.com/rubocop/rubocop#readme -[ruff]: https://github.com/charliermarsh/ruff +[ruff]: https://trunk.io/linters/python/ruff [rufo]: https://github.com/ruby-formatter/rufo#readme [rustfmt]: https://github.com/rust-lang/rustfmt#readme [scalafmt]: https://github.com/scalameta/scalafmt#readme [semgrep]: https://github.com/returntocorp/semgrep#readme -[shellcheck]: https://github.com/koalaman/shellcheck#readme +[shellcheck]: https://trunk.io/linters/shell/shellcheck [shfmt]: https://github.com/mvdan/sh#readme [sort-package-json]: https://github.com/keithamus/sort-package-json#readme [sql-formatter]: https://github.com/sql-formatter-org/sql-formatter#readme @@ -173,7 +173,7 @@ trunk check enable {linter} [stylelint]: https://github.com/stylelint/stylelint#readme [stylua]: https://github.com/JohnnyMorganz/StyLua/tree/main [sourcery]: https://sourcery.ai/ -[svgo]: https://github.com/svg/svgo#readme +[svgo]: https://trunk.io/linters/nodejs/svgo [swiftformat]: https://github.com/nicklockwood/SwiftFormat#readme [swiftlint]: https://github.com/realm/SwiftLint#readme [taplo]: https://github.com/tamasfe/taplo#readme @@ -183,11 +183,11 @@ trunk check enable {linter} [terragrunt]: https://terragrunt.gruntwork.io/docs/getting-started/quick-start/ [tflint]: https://github.com/terraform-linters/tflint#readme [tfsec]: https://github.com/aquasecurity/tfsec -[trivy]: https://github.com/aquasecurity/trivy#readme -[trufflehog]: https://github.com/trufflesecurity/trufflehog#readme +[trivy]: https://trunk.io/linters/security/trivy +[trufflehog]: https://trunk.io/linters/security/trufflehog [trunk-toolbox]: https://github.com/trunk-io/toolbox#readme [txtpbfmt]: https://github.com/protocolbuffers/txtpbfmt#readme -[yamllint]: https://github.com/adrienverge/yamllint#readme +[yamllint]: https://trunk.io/linters/yaml/yamllint [yapf]: https://github.com/google/yapf#readme
From 0cfcdb0914bbe157484afe1eb7c375de4adbf3db Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Fri, 5 Apr 2024 15:21:33 -0700 Subject: [PATCH 19/38] Cleanup install on ubuntu runners (#730) Fix [failures](https://github.com/trunk-io/plugins/actions/runs/8566927464/job/23477663625) introduced by php setup. Successful [run](https://github.com/trunk-io/plugins/actions/runs/8575992769/job/23506162438?pr=730) --- .github/actions/linter_tests/action.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/actions/linter_tests/action.yaml b/.github/actions/linter_tests/action.yaml index 60da100c2..9807a2e1c 100644 --- a/.github/actions/linter_tests/action.yaml +++ b/.github/actions/linter_tests/action.yaml @@ -44,6 +44,11 @@ runs: case "$RUNNER_OS" in Linux) + # Cleanup any existing apt locks + sudo killall apt-get || true + sudo rm /var/lib/apt/lists/lock || true + + # Install non-hermetic linters sudo apt-get update sudo apt-get -y install libperl-critic-perl perltidy zlib1g-dev DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC sudo apt-get -y install tzdata From 40d07cf743c97e1bf168a0c83d5229d0384b0651 Mon Sep 17 00:00:00 2001 From: Matthew Baggett Date: Mon, 8 Apr 2024 21:56:20 +0200 Subject: [PATCH 20/38] Add goreleaser tool. (#729) Add goreleaser tool using the go runtime to build & install it. --- tools/goreleaser/goreleaser.test.ts | 6 ++++++ tools/goreleaser/plugin.yaml | 10 ++++++++++ 2 files changed, 16 insertions(+) create mode 100644 tools/goreleaser/goreleaser.test.ts create mode 100644 tools/goreleaser/plugin.yaml diff --git a/tools/goreleaser/goreleaser.test.ts b/tools/goreleaser/goreleaser.test.ts new file mode 100644 index 000000000..118462d11 --- /dev/null +++ b/tools/goreleaser/goreleaser.test.ts @@ -0,0 +1,6 @@ +import { toolInstallTest } from "tests"; + +toolInstallTest({ + toolName: "goreleaser", + toolVersion: "1.25.1", +}); diff --git a/tools/goreleaser/plugin.yaml b/tools/goreleaser/plugin.yaml new file mode 100644 index 000000000..1717ff9f1 --- /dev/null +++ b/tools/goreleaser/plugin.yaml @@ -0,0 +1,10 @@ +version: 0.1 +tools: + definitions: + - name: goreleaser + known_good_version: 1.25.1 + package: github.com/goreleaser/goreleaser + runtime: go + shims: + - name: goreleaser + target: goreleaser From 5611fee80d1d5a639a2a76504c02fbd40653c4e7 Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Tue, 9 Apr 2024 23:20:09 -0700 Subject: [PATCH 21/38] Cleanup infra issues (#736) - `remark-lint`'s `extra_packages` released new changes, so I've refreshed the snapshots. We don't pin versions unless explicit, so this causes some mild hermeticity issues (but is still an acceptable edge case) - Change to use `ubuntu-latest` runners until we find a more sustainable solution for this repo (see nightly failures) - Mild workflow cleanup Takes over #725 and addresses [nightly issues](https://github.com/trunk-io/plugins/actions/runs/8612368048) --- .github/actionlint.yaml | 1 + .github/actions/linter_tests/action.yaml | 4 ++-- .github/workflows/nightly.yaml | 23 ++++++++++-------- .github/workflows/pr.yaml | 24 +++++++++++++++---- .github/workflows/repo_tests.reusable.yaml | 2 +- .../workflows/upload_results.reusable.yaml | 4 ++-- .trunk/trunk.yaml | 2 +- linters/brakeman/brakeman.test.ts | 2 +- linters/haml-lint/haml_lint.test.ts | 2 +- linters/kube-linter/kube_linter.test.ts | 2 +- linters/nixpkgs-fmt/nixpkgs_fmt.test.ts | 2 +- .../remark_lint_v11.0.0_basic.check.shot | 15 ++++++++++-- .../remark_lint_v12.0.0_basic.check.shot | 13 +++++++++- linters/renovate/renovate.test.ts | 2 +- linters/rubocop/rubocop.test.ts | 2 +- linters/rufo/rufo.test.ts | 2 +- linters/standardrb/standardrb.test.ts | 2 +- tests/jest_setup.ts | 2 +- tests/repo_tests/config_check.test.ts | 2 +- tests/types/index.ts | 1 + tests/utils/landing_state.ts | 1 + tools/goreleaser/goreleaser.test.ts | 4 ++++ tools/kubectl/kubectl.test.ts | 5 ++-- tools/renovate/renovate.test.ts | 2 +- 24 files changed, 84 insertions(+), 37 deletions(-) diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml index a38f874bd..cb72013d0 100644 --- a/.github/actionlint.yaml +++ b/.github/actionlint.yaml @@ -3,6 +3,7 @@ self-hosted-runner: labels: - ubuntu-x64 - macOS + - ubuntu-latest # Configuration variables in array of strings defined in your repository or # organization. `null` means disabling configuration variables check. # Empty array means no configuration variable is allowed. diff --git a/.github/actions/linter_tests/action.yaml b/.github/actions/linter_tests/action.yaml index 9807a2e1c..44a4f465f 100644 --- a/.github/actions/linter_tests/action.yaml +++ b/.github/actions/linter_tests/action.yaml @@ -50,7 +50,7 @@ runs: # Install non-hermetic linters sudo apt-get update - sudo apt-get -y install libperl-critic-perl perltidy zlib1g-dev + sudo apt-get -y install libperl-critic-perl perltidy zlib1g-dev software-properties-common DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC sudo apt-get -y install tzdata sudo add-apt-repository ppa:ondrej/php sudo apt install -y php8.0-fpm php8.0-xml php8.0-mbstring php8.0-curl @@ -98,7 +98,7 @@ runs: working-directory: ${{ inputs.path }} trunk-token: ${{ inputs.trunk-token }} org: trunk-staging-org - run: npm test ${{ inputs.append-args }} ${{ env.PLATFORM_APPEND_ARGS }} --ci + run: npm test ${{ inputs.append-args }} ${{ env.PLATFORM_APPEND_ARGS }} --ci --runInBand env: PLUGINS_TEST_LINTER_VERSION: ${{ inputs.linter-version }} PLUGINS_TEST_CLI_VERSION: ${{ inputs.cli-version }} diff --git a/.github/workflows/nightly.yaml b/.github/workflows/nightly.yaml index 6b1e32590..32889ba34 100644 --- a/.github/workflows/nightly.yaml +++ b/.github/workflows/nightly.yaml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: linter-version: [Snapshots, Latest] - os: [ubuntu-x64, macOS, windows-latest] + os: [ubuntu-latest, macOS, windows-latest] steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 @@ -80,10 +80,10 @@ jobs: fail-fast: false matrix: linter-version: [Snapshots, Latest] - os: [ubuntu-x64, macOS, windows-latest] + os: [ubuntu-latest, macOS, windows-latest] include: # Normalize the filenames as inputs for ease of parsing - - os: ubuntu-x64 + - os: ubuntu-latest results-file: ubuntu-latest - os: macOS results-file: macos-latest @@ -157,17 +157,20 @@ jobs: - name: Delete cache # For now, avoid deleting cache on pull request changes to nightly. This improves PR experience. - if: env.TRIGGER != 'pull_request' run: | - if [ -d "/tmp/plugins_testing_download_cache" ] + if [ -d "${TMPDIR:-/tmp}/plugins_testing_download_cache" ] then - tmp_dir=/tmp/${GITHUB_RUN_ID}-${GITHUB_RUN_NUMBER}-${GITHUB_RUN_ATTEMPT} - mv "/tmp/plugins_testing_download_cache" ${tmp_dir} + tmp_dir=${TMPDIR:-/tmp}/${GITHUB_RUN_ID}-${GITHUB_RUN_NUMBER}-${GITHUB_RUN_ATTEMPT} + mv "${TMPDIR:-/tmp}/plugins_testing_download_cache" ${tmp_dir} chmod -R u+w ${tmp_dir} rm -rf ${tmp_dir} fi shell: bash + - name: Clean jest cache + run: npx jest --clearCache + shell: bash + - name: Linter Tests ${{ matrix.os }} # Use overwritten dependency action, rather than released version uses: ./.github/actions/linter_tests @@ -215,10 +218,10 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-x64, macOS, windows-latest] + os: [ubuntu-latest, macOS, windows-latest] include: # Normalize the filenames as inputs for ease of parsing - - os: ubuntu-x64 + - os: ubuntu-latest results-file: ubuntu-latest - os: macOS results-file: macos-latest @@ -268,7 +271,7 @@ jobs: action_tests_main: name: Action Tests Main - runs-on: [self-hosted, Linux] + runs-on: [ubuntu-latest] timeout-minutes: 30 steps: - name: Checkout diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index f84addc51..539771169 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -117,7 +117,7 @@ jobs: # Run tests against all linters for known_good_version and latest version linter_tests: name: Linter Tests ${{ matrix.os }} - runs-on: [self-hosted, "${{ matrix.os }}"] + runs-on: ${{ matrix.os }} needs: detect_changes if: needs.detect_changes.outputs.linters == 'true' || needs.detect_changes.outputs.all-linters == @@ -126,11 +126,25 @@ jobs: strategy: fail-fast: false matrix: - os: [Linux, macOS] + os: [ubuntu-latest, macOS] steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + # TODO(Tyler): Remove this once the cache has stabilized + - name: Delete cache (mac only) + if: matrix.os == 'macOS' + # For now, avoid deleting cache on pull request changes to nightly. This improves PR experience. + run: | + if [ -d "${TMPDIR:-/tmp}/plugins_testing_download_cache" ] + then + tmp_dir=${TMPDIR:-/tmp}/${GITHUB_RUN_ID}-${GITHUB_RUN_NUMBER}-${GITHUB_RUN_ATTEMPT} + mv "${TMPDIR:-/tmp}/plugins_testing_download_cache" ${tmp_dir} + chmod -R u+w ${tmp_dir} + rm -rf ${tmp_dir} + fi + shell: bash + - name: Linter Tests # Run tests using KnownGoodVersion with any modified linters and conditionally all linters uses: ./.github/actions/linter_tests @@ -156,7 +170,7 @@ jobs: tool_tests: name: Tool Tests - runs-on: [self-hosted, "${{ matrix.os }}"] + runs-on: ${{ matrix.os }} needs: detect_changes if: needs.detect_changes.outputs.tools == 'true' || needs.detect_changes.outputs.all-tools == @@ -165,7 +179,7 @@ jobs: strategy: fail-fast: false matrix: - os: [Linux, macOS] + os: [ubuntu-latest, macOS] steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 @@ -182,7 +196,7 @@ jobs: action_tests: name: Action Tests - runs-on: [self-hosted, Linux] + runs-on: ubuntu-latest needs: detect_changes if: needs.detect_changes.outputs.actions == 'true' || needs.detect_changes.outputs.all-actions == diff --git a/.github/workflows/repo_tests.reusable.yaml b/.github/workflows/repo_tests.reusable.yaml index b930aa75c..bc03a049a 100644 --- a/.github/workflows/repo_tests.reusable.yaml +++ b/.github/workflows/repo_tests.reusable.yaml @@ -18,7 +18,7 @@ permissions: read-all jobs: plugins_test: name: Plugin Tests - runs-on: ubuntu-x64 + runs-on: ubuntu-latest timeout-minutes: 15 steps: diff --git a/.github/workflows/upload_results.reusable.yaml b/.github/workflows/upload_results.reusable.yaml index 6fe46d6d1..e7c5d01cf 100644 --- a/.github/workflows/upload_results.reusable.yaml +++ b/.github/workflows/upload_results.reusable.yaml @@ -44,7 +44,7 @@ permissions: read-all jobs: upload_test_results: name: Upload Test Results - runs-on: ubuntu-x64 + runs-on: ubuntu-latest timeout-minutes: 10 env: SLACK_CHANNEL_ID: plugins-notifications @@ -226,7 +226,7 @@ jobs: SLACK_BOT_TOKEN: ${{ secrets.TRUNKBOT_SLACK_BOT_TOKEN }} generate_snapshots_pr: name: Generate Snapshots PR - runs-on: ubuntu-x64 + runs-on: ubuntu-latest timeout-minutes: 30 needs: upload_test_results if: needs.upload_test_results.outputs.reruns != '' diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index 460a9332a..0848691b1 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -2,7 +2,7 @@ version: 0.1 # version used for local trunk runs and testing cli: - version: 1.21.1-beta.16 + version: 1.21.1-beta.17 shell_hooks: enforce: true diff --git a/linters/brakeman/brakeman.test.ts b/linters/brakeman/brakeman.test.ts index 9912664ac..d3cef51a0 100644 --- a/linters/brakeman/brakeman.test.ts +++ b/linters/brakeman/brakeman.test.ts @@ -3,7 +3,7 @@ import { osTimeoutMultiplier, skipOS, TEST_DATA } from "tests/utils"; // Note that the ruby setup can sometimes take a while. // Ruby build is quite slow on Mac, so only run tests on linux for now -jest.setTimeout(600000 * osTimeoutMultiplier); // 300s or 900s +jest.setTimeout(600000 * osTimeoutMultiplier); customLinterCheckTest({ linterName: "brakeman", diff --git a/linters/haml-lint/haml_lint.test.ts b/linters/haml-lint/haml_lint.test.ts index 1864aabea..ccc83613a 100644 --- a/linters/haml-lint/haml_lint.test.ts +++ b/linters/haml-lint/haml_lint.test.ts @@ -3,7 +3,7 @@ import { osTimeoutMultiplier, skipOS, TEST_DATA } from "tests/utils"; // Note that the first-time ruby/rufo download can sometimes take a while. // Ruby build is quite slow on Mac, so only run tests on linux for now -jest.setTimeout(600000 * osTimeoutMultiplier); // 300s or 900s +jest.setTimeout(600000 * osTimeoutMultiplier); // Ruby build is quite slow on Mac, so only run tests on linux for now customLinterCheckTest({ diff --git a/linters/kube-linter/kube_linter.test.ts b/linters/kube-linter/kube_linter.test.ts index f26e59447..37a1027d5 100644 --- a/linters/kube-linter/kube_linter.test.ts +++ b/linters/kube-linter/kube_linter.test.ts @@ -1,7 +1,7 @@ import { linterCheckTest } from "tests"; import { osTimeoutMultiplier } from "tests/utils"; -jest.setTimeout(900000 * osTimeoutMultiplier); // 300s or 900s +jest.setTimeout(900000 * osTimeoutMultiplier); // TODO(Tyler): We will eventually need to add a couple more test cases involving failure modes. linterCheckTest({ linterName: "kube-linter" }); diff --git a/linters/nixpkgs-fmt/nixpkgs_fmt.test.ts b/linters/nixpkgs-fmt/nixpkgs_fmt.test.ts index fb68b786d..1ce6c05c1 100644 --- a/linters/nixpkgs-fmt/nixpkgs_fmt.test.ts +++ b/linters/nixpkgs-fmt/nixpkgs_fmt.test.ts @@ -1,7 +1,7 @@ import { linterFmtTest, TestCallback } from "tests"; import { osTimeoutMultiplier, skipOS } from "tests/utils"; -jest.setTimeout(600000 * osTimeoutMultiplier); // 300s or 900s +jest.setTimeout(600000 * osTimeoutMultiplier); // Earlier nixpkgs-fmt transitive dependencies are no longer // supported through older rust runtime installs. diff --git a/linters/remark-lint/test_data/remark_lint_v11.0.0_basic.check.shot b/linters/remark-lint/test_data/remark_lint_v11.0.0_basic.check.shot index 61d64ba93..77a9f4921 100644 --- a/linters/remark-lint/test_data/remark_lint_v11.0.0_basic.check.shot +++ b/linters/remark-lint/test_data/remark_lint_v11.0.0_basic.check.shot @@ -5,13 +5,24 @@ exports[`Testing linter remark-lint test basic 1`] = ` "issues": [ { "code": "list-item-indent", - "column": "4", + "column": "1", + "file": "test_data/basic.in.md", + "issueClass": "ISSUE_CLASS_EXISTING", + "level": "LEVEL_HIGH", + "line": "1", + "linter": "remark-lint", + "message": "Unexpected \`2\` spaces between list item marker and content, expected \`1\` space, remove \`1\` space", + "targetType": "markdown", + }, + { + "code": "list-item-indent", + "column": "1", "file": "test_data/basic.in.md", "issueClass": "ISSUE_CLASS_EXISTING", "level": "LEVEL_HIGH", "line": "1", "linter": "remark-lint", - "message": "Incorrect list-item indent: add 1 space", + "message": "Unexpected \`3\` spaces between list item marker and content, expected \`1\` space, remove \`2\` spaces", "targetType": "markdown", }, ], diff --git a/linters/remark-lint/test_data/remark_lint_v12.0.0_basic.check.shot b/linters/remark-lint/test_data/remark_lint_v12.0.0_basic.check.shot index 61d64ba93..ecff80f23 100644 --- a/linters/remark-lint/test_data/remark_lint_v12.0.0_basic.check.shot +++ b/linters/remark-lint/test_data/remark_lint_v12.0.0_basic.check.shot @@ -11,7 +11,18 @@ exports[`Testing linter remark-lint test basic 1`] = ` "level": "LEVEL_HIGH", "line": "1", "linter": "remark-lint", - "message": "Incorrect list-item indent: add 1 space", + "message": "Unexpected \`2\` spaces between list item marker and content, expected \`1\` space, remove \`1\` space", + "targetType": "markdown", + }, + { + "code": "list-item-indent", + "column": "5", + "file": "test_data/basic.in.md", + "issueClass": "ISSUE_CLASS_EXISTING", + "level": "LEVEL_HIGH", + "line": "4", + "linter": "remark-lint", + "message": "Unexpected \`3\` spaces between list item marker and content, expected \`1\` space, remove \`2\` spaces", "targetType": "markdown", }, ], diff --git a/linters/renovate/renovate.test.ts b/linters/renovate/renovate.test.ts index 5ec5f1d94..d64ff51df 100644 --- a/linters/renovate/renovate.test.ts +++ b/linters/renovate/renovate.test.ts @@ -1,7 +1,7 @@ import { customLinterCheckTest } from "tests"; import { osTimeoutMultiplier, TEST_DATA } from "tests/utils"; -jest.setTimeout(600000 * osTimeoutMultiplier); // 300s or 900s +jest.setTimeout(600000 * osTimeoutMultiplier); customLinterCheckTest({ linterName: "renovate", diff --git a/linters/rubocop/rubocop.test.ts b/linters/rubocop/rubocop.test.ts index 5a417b719..861f59784 100644 --- a/linters/rubocop/rubocop.test.ts +++ b/linters/rubocop/rubocop.test.ts @@ -5,7 +5,7 @@ import { osTimeoutMultiplier, skipOS, TEST_DATA } from "tests/utils"; // Note that the first-time ruby/rufo download can sometimes take a while. // Ruby build is quite slow on Mac, so only run tests on linux for now -jest.setTimeout(600000 * osTimeoutMultiplier); // 300s or 900s +jest.setTimeout(600000 * osTimeoutMultiplier); const preCheck = (driver: TrunkLintDriver) => { if (process.platform == "win32") { diff --git a/linters/rufo/rufo.test.ts b/linters/rufo/rufo.test.ts index ab5e1e8fb..dc5b57c94 100644 --- a/linters/rufo/rufo.test.ts +++ b/linters/rufo/rufo.test.ts @@ -4,7 +4,7 @@ import { osTimeoutMultiplier, skipOS, TEST_DATA } from "tests/utils"; // Note that the first-time ruby/rufo download can sometimes take a while. // Ruby build is quite slow on Mac, so only run tests on linux for now -jest.setTimeout(600000 * osTimeoutMultiplier); // 300s or 900s +jest.setTimeout(600000 * osTimeoutMultiplier); // Rufo succeeds on empty files customLinterCheckTest({ diff --git a/linters/standardrb/standardrb.test.ts b/linters/standardrb/standardrb.test.ts index 6d6abc5e4..bf5069d1f 100644 --- a/linters/standardrb/standardrb.test.ts +++ b/linters/standardrb/standardrb.test.ts @@ -4,7 +4,7 @@ import { osTimeoutMultiplier, skipOS } from "tests/utils"; // Note that the first-time ruby/rufo download can sometimes take a while. // Ruby build is quite slow on Mac, so only run tests on linux for now -jest.setTimeout(600000 * osTimeoutMultiplier); // 300s or 900s +jest.setTimeout(600000 * osTimeoutMultiplier); const preCheck = (driver: TrunkLintDriver) => { if (process.platform == "win32") { diff --git a/tests/jest_setup.ts b/tests/jest_setup.ts index 2a7ec187f..caf1e4c41 100644 --- a/tests/jest_setup.ts +++ b/tests/jest_setup.ts @@ -2,7 +2,7 @@ import { FileIssue } from "tests/types"; import { osTimeoutMultiplier } from "tests/utils"; import { isDeepStrictEqual } from "util"; -jest.setTimeout(300000 * osTimeoutMultiplier); // 300s or 900s +jest.setTimeout(300000 * osTimeoutMultiplier); /** * Compares 2 file issues to determine exact equality. diff --git a/tests/repo_tests/config_check.test.ts b/tests/repo_tests/config_check.test.ts index 7cb4a0ee8..725f97f95 100644 --- a/tests/repo_tests/config_check.test.ts +++ b/tests/repo_tests/config_check.test.ts @@ -10,7 +10,7 @@ import { osTimeoutMultiplier, REPO_ROOT } from "tests/utils"; // trunk-ignore-all(eslint/@typescript-eslint/no-unsafe-argument) // trunk-ignore-all(eslint/@typescript-eslint/no-unsafe-return) -jest.setTimeout(300000 * osTimeoutMultiplier); // 300s or 900s +jest.setTimeout(300000 * osTimeoutMultiplier); /** * This test runs 'trunk config print' from the root of the repository to verify a healthy config. diff --git a/tests/types/index.ts b/tests/types/index.ts index 2c3f8245e..5f0868dfb 100644 --- a/tests/types/index.ts +++ b/tests/types/index.ts @@ -88,6 +88,7 @@ export interface LintAction { parser: string; report: string; cacheHit?: boolean; + cacheExpiration?: string; upstream: boolean; fileGroupName: string; command: string; diff --git a/tests/utils/landing_state.ts b/tests/utils/landing_state.ts index 3b9a67f4f..a306170c8 100644 --- a/tests/utils/landing_state.ts +++ b/tests/utils/landing_state.ts @@ -26,6 +26,7 @@ const normalizePlatformPath = (originalPath: string | undefined) => { const extractLintActionFields = ({ actionDurationMs: _actionDurationMs, cacheHit: _cacheHit, + cacheExpiration: _cacheExpiration, paths: _paths, ...rest }: LintAction): LintAction => ({ diff --git a/tools/goreleaser/goreleaser.test.ts b/tools/goreleaser/goreleaser.test.ts index 118462d11..9f798e884 100644 --- a/tools/goreleaser/goreleaser.test.ts +++ b/tools/goreleaser/goreleaser.test.ts @@ -1,4 +1,8 @@ import { toolInstallTest } from "tests"; +import { osTimeoutMultiplier } from "tests/utils"; + +// This install is quite slow on some Linux machines. +jest.setTimeout(600000 * osTimeoutMultiplier); toolInstallTest({ toolName: "goreleaser", diff --git a/tools/kubectl/kubectl.test.ts b/tools/kubectl/kubectl.test.ts index 136a9de56..2bcd4cc3e 100644 --- a/tools/kubectl/kubectl.test.ts +++ b/tools/kubectl/kubectl.test.ts @@ -1,16 +1,17 @@ import { makeToolTestConfig, toolTest } from "tests"; -import { skipOS } from "tests/utils"; toolTest({ toolName: "kubectl", toolVersion: "1.25.16", testConfigs: [ makeToolTestConfig({ + // --short flag will be removed in future versions command: ["kubectl", "version", "--short"], expectedOut: "Client Version: v1.25.16", // This fails on no kubectl credentials. Why do you need that for a version check? Who knows... expectedExitCode: 1, }), ], - skipTestIf: skipOS(["win32"]), + // kubectl does not run on Windows. But kubectl is frequently flaky in CI because it spins up a kubectl daemon. + skipTestIf: () => true, }); diff --git a/tools/renovate/renovate.test.ts b/tools/renovate/renovate.test.ts index 1671964a8..f9b24e558 100644 --- a/tools/renovate/renovate.test.ts +++ b/tools/renovate/renovate.test.ts @@ -1,7 +1,7 @@ import { makeToolTestConfig, toolTest } from "tests"; import { osTimeoutMultiplier, skipOS } from "tests/utils"; -jest.setTimeout(600000 * osTimeoutMultiplier); // 300s or 900s +jest.setTimeout(600000 * osTimeoutMultiplier); toolTest({ toolName: "renovate", From c8c7e4a951598b91382078f86fc2940ecad555b5 Mon Sep 17 00:00:00 2001 From: "trunk-open-pr-bot[bot]" <131314627+trunk-open-pr-bot[bot]@users.noreply.github.com> Date: Wed, 10 Apr 2024 10:25:32 -0700 Subject: [PATCH 22/38] Upgrade trunk to 1.21.1-beta.20 (#737) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Trunk](https://static.trunk.io/assets/trunk_action_upgrade_banner.png)](https://trunk.io) cli upgraded: 1.21.1-beta.17 → 1.21.1-beta.20 This PR was generated by the [Trunk Action]. For more info, see our [docs] or reach out on [Slack]. [Trunk Action]: https://github.com/trunk-io/trunk-action [docs]: https://docs.trunk.io [Slack]: https://slack.trunk.io/ Co-authored-by: TylerJang27 <42743566+TylerJang27@users.noreply.github.com> --- .trunk/trunk.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index 0848691b1..4638cf0ef 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -2,7 +2,7 @@ version: 0.1 # version used for local trunk runs and testing cli: - version: 1.21.1-beta.17 + version: 1.21.1-beta.20 shell_hooks: enforce: true From 5abe62a76d985b16b4c5185ebfc6246257c73d26 Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Wed, 10 Apr 2024 21:55:32 -0700 Subject: [PATCH 23/38] Fix nightly run clearing jest cache (#739) Fixes [nightly run](https://github.com/trunk-io/plugins/actions/runs/8627977953/job/23649046645) where jest hasn't been installed yet. Follow-up to #736 --- .github/actions/linter_tests/action.yaml | 4 ++++ .github/workflows/nightly.yaml | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/actions/linter_tests/action.yaml b/.github/actions/linter_tests/action.yaml index 44a4f465f..d803cc1b3 100644 --- a/.github/actions/linter_tests/action.yaml +++ b/.github/actions/linter_tests/action.yaml @@ -75,6 +75,10 @@ runs: shell: bash working-directory: ${{ inputs.path }} + - name: Clean jest cache + run: npx jest --clearCache + shell: bash + - name: Run plugin tests if: runner.os == 'Windows' run: npm test ${{ inputs.append-args }} ${{ env.PLATFORM_APPEND_ARGS }} --ci diff --git a/.github/workflows/nightly.yaml b/.github/workflows/nightly.yaml index 32889ba34..ba6cc893f 100644 --- a/.github/workflows/nightly.yaml +++ b/.github/workflows/nightly.yaml @@ -167,10 +167,6 @@ jobs: fi shell: bash - - name: Clean jest cache - run: npx jest --clearCache - shell: bash - - name: Linter Tests ${{ matrix.os }} # Use overwritten dependency action, rather than released version uses: ./.github/actions/linter_tests From 1a3d5aad1a57f2deab0c6af38d13d776cd4b3aaf Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Thu, 11 Apr 2024 15:41:06 -0700 Subject: [PATCH 24/38] Add prettier support for postcss (#740) Tested manually on a toy example that prettier formats these correctly. Using [postcss extension](https://marketplace.visualstudio.com/items?itemName=csstools.postcss) as reference. Fixes #738 --- linters/plugin.yaml | 6 ++++++ linters/prettier/plugin.yaml | 1 + 2 files changed, 7 insertions(+) diff --git a/linters/plugin.yaml b/linters/plugin.yaml index 5552fccc0..c4c552139 100644 --- a/linters/plugin.yaml +++ b/linters/plugin.yaml @@ -412,6 +412,12 @@ lint: extensions: - png + - name: postcss + extensions: + # TODO(Tyler): Do we want to include css here as well? + - pcss + - postcss + - name: powershell extensions: - ps1 diff --git a/linters/prettier/plugin.yaml b/linters/prettier/plugin.yaml index f0507aede..452e13f57 100644 --- a/linters/prettier/plugin.yaml +++ b/linters/prettier/plugin.yaml @@ -13,6 +13,7 @@ lint: - typescript - yaml - css + - postcss - sass - html - markdown From e712242f67b640cdcf91b3cf35b412accfefe3f9 Mon Sep 17 00:00:00 2001 From: David Apirian Date: Sun, 14 Apr 2024 21:43:28 -0700 Subject: [PATCH 25/38] Add cuda support for clang-format (#723) Co-authored-by: Tyler Jang --- .github/workflows/repo_tests.reusable.yaml | 4 +++- .github/workflows/upload_results.reusable.yaml | 6 +++++- linters/clang-format/plugin.yaml | 2 +- .../test_data/clang_format_v16.0.3_cuda.fmt.shot | 11 +++++++++++ linters/clang-format/test_data/cuda.in.cu | 8 ++++++++ linters/plugin.yaml | 7 +++++++ 6 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 linters/clang-format/test_data/clang_format_v16.0.3_cuda.fmt.shot create mode 100644 linters/clang-format/test_data/cuda.in.cu diff --git a/.github/workflows/repo_tests.reusable.yaml b/.github/workflows/repo_tests.reusable.yaml index bc03a049a..1b0814136 100644 --- a/.github/workflows/repo_tests.reusable.yaml +++ b/.github/workflows/repo_tests.reusable.yaml @@ -13,7 +13,9 @@ on: required: false type: string -permissions: read-all +permissions: + contents: read + statuses: read jobs: plugins_test: diff --git a/.github/workflows/upload_results.reusable.yaml b/.github/workflows/upload_results.reusable.yaml index e7c5d01cf..40c99007e 100644 --- a/.github/workflows/upload_results.reusable.yaml +++ b/.github/workflows/upload_results.reusable.yaml @@ -39,7 +39,11 @@ on: TRUNK_DEBUGGER_TOKEN: required: false -permissions: read-all +permissions: + actions: write + contents: read + statuses: read + pull-requests: write jobs: upload_test_results: diff --git a/linters/clang-format/plugin.yaml b/linters/clang-format/plugin.yaml index 52b213d56..a874492fc 100644 --- a/linters/clang-format/plugin.yaml +++ b/linters/clang-format/plugin.yaml @@ -33,7 +33,7 @@ lint: definitions: - name: clang-format supported_platforms: [linux, macos] - files: [c/c++, proto] + files: [c/c++, cuda, proto] commands: - name: format output: rewrite diff --git a/linters/clang-format/test_data/clang_format_v16.0.3_cuda.fmt.shot b/linters/clang-format/test_data/clang_format_v16.0.3_cuda.fmt.shot new file mode 100644 index 000000000..76e6a8d69 --- /dev/null +++ b/linters/clang-format/test_data/clang_format_v16.0.3_cuda.fmt.shot @@ -0,0 +1,11 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Testing formatter clang-format test cuda 1`] = ` +"__global__ void cuda_hello() { printf("Hello World from GPU!\\n"); } + +int main() { + cuda_hello<<<1, 1>>>(); + return 0; +} +" +`; diff --git a/linters/clang-format/test_data/cuda.in.cu b/linters/clang-format/test_data/cuda.in.cu new file mode 100644 index 000000000..bf6a375af --- /dev/null +++ b/linters/clang-format/test_data/cuda.in.cu @@ -0,0 +1,8 @@ +__global__ void cuda_hello(){ + printf("Hello World from GPU!\n"); +} + +int main() { + cuda_hello<<<1,1>>>( ); + return 0 ; +} diff --git a/linters/plugin.yaml b/linters/plugin.yaml index c4c552139..e2c6862bf 100644 --- a/linters/plugin.yaml +++ b/linters/plugin.yaml @@ -149,6 +149,13 @@ lint: comments: - slashes-block + - name: cuda + extensions: + - cu + comments: + - slashes-block + - slashes-inline + - name: cue extensions: - cue From 57497c40b66f2cf416eed85c4f80af80533286e8 Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Mon, 15 Apr 2024 12:40:27 -0700 Subject: [PATCH 26/38] Fix linter tests action to be reusable (#745) Fixes [failures](https://github.com/trunk-io/trunk/actions/runs/8659672695/job/23746050111) and cleans up dependabot ignores for `eslint` until #735 is resolved. [Successful run](https://github.com/trunk-io/trunk/actions/runs/8693488278/job/23840365226) --- .github/actions/linter_tests/action.yaml | 1 + .github/dependabot.yaml | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/actions/linter_tests/action.yaml b/.github/actions/linter_tests/action.yaml index d803cc1b3..6ce930423 100644 --- a/.github/actions/linter_tests/action.yaml +++ b/.github/actions/linter_tests/action.yaml @@ -78,6 +78,7 @@ runs: - name: Clean jest cache run: npx jest --clearCache shell: bash + working-directory: ${{ inputs.path }} - name: Run plugin tests if: runner.os == 'Windows' diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index d6b401a61..71d8bd7c0 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -7,7 +7,6 @@ updates: day: sunday # trunk-ignore(yamllint/quoted-strings) time: "08:00" # UTC - labels: [🤖 dependabot] groups: dependencies: patterns: @@ -21,9 +20,11 @@ updates: day: sunday # trunk-ignore(yamllint/quoted-strings) time: "08:00" # UTC - labels: [🤖 dependabot] groups: dependencies: patterns: - "*" + # TODO(Tyler): Readd once eslint9 is resolved. + ignore: + - dependency-name: eslint open-pull-requests-limit: 2 From d39bb982d7c9cc84d80497aeaeb9e8569777697b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 13:08:40 -0700 Subject: [PATCH 27/38] Bump github/codeql-action from 3.24.9 to 3.25.0 in the dependencies group (#746) Bumps the dependencies group with 1 update: [github/codeql-action](https://github.com/github/codeql-action). Updates `github/codeql-action` from 3.24.9 to 3.25.0
Changelog

Sourced from github/codeql-action's changelog.

CodeQL Action Changelog

See the releases page for the relevant changes to the CodeQL CLI and language packs.

Note that the only difference between v2 and v3 of the CodeQL Action is the node version they support, with v3 running on node 20 while we continue to release v2 to support running on node 16. For example 3.22.11 was the first v3 release and is functionally identical to 2.22.11. This approach ensures an easy way to track exactly which features are included in different versions, indicated by the minor and patch version numbers.

[UNRELEASED]

No user facing changes.

3.25.0 - 15 Apr 2024

  • The deprecated feature for extracting dependencies for a Python analysis has been removed. #2224

    As a result, the following inputs and environment variables are now ignored:

    • The setup-python-dependencies input to the init Action
    • The CODEQL_ACTION_DISABLE_PYTHON_DEPENDENCY_INSTALLATION environment variable

    We recommend removing any references to these from your workflows. For more information, see the release notes for CodeQL Action v3.23.0 and v2.23.0.

  • Automatically overwrite an existing database if found on the filesystem. #2229

  • Bump the minimum CodeQL bundle version to 2.12.6. #2232

  • A more relevant log message and a diagnostic are now emitted when the file program is not installed on a Linux runner, but is required for Go tracing to succeed. #2234

3.24.10 - 05 Apr 2024

  • Update default CodeQL bundle version to 2.17.0. #2219
  • Add a deprecation warning for customers using CodeQL version 2.12.5 and earlier. These versions of CodeQL were discontinued on 26 March 2024 alongside GitHub Enterprise Server 3.8, and will be unsupported by CodeQL Action versions 3.25.0 and later and versions 2.25.0 and later. #2220
    • If you are using one of these versions, please update to CodeQL CLI version 2.12.6 or later. For instance, if you have specified a custom version of the CLI using the 'tools' input to the 'init' Action, you can remove this input to use the default version.
    • Alternatively, if you want to continue using a version of the CodeQL CLI between 2.11.6 and 2.12.5, you can replace github/codeql-action/*@v3 by github/codeql-action/*@v3.24.10 and github/codeql-action/*@v2 by github/codeql-action/*@v2.24.10 in your code scanning workflow to ensure you continue using this version of the CodeQL Action.

3.24.9 - 22 Mar 2024

  • Update default CodeQL bundle version to 2.16.5. #2203

3.24.8 - 18 Mar 2024

  • Improve the ease of debugging extraction issues by increasing the verbosity of the extractor logs when running in debug mode. #2195

3.24.7 - 12 Mar 2024

  • Update default CodeQL bundle version to 2.16.4. #2185

3.24.6 - 29 Feb 2024

No user facing changes.

3.24.5 - 23 Feb 2024

  • Update default CodeQL bundle version to 2.16.3. #2156

... (truncated)

Commits
  • df5a14d Merge pull request #2238 from github/update-v3.25.0-2b2cee522
  • 3f70eaa Update changelog for v3.25.0
  • 2b2cee5 Merge pull request #2234 from github/mbg/clearer-file-command-failure
  • 4fcf7a2 Add changelog entry
  • d30d1ca Merge pull request #2237 from github/henrymercer/more-configuration-errors
  • 5558536 Add configuration error for unsupported build mode
  • fa75c14 Capture rate limit and ref not existing config errors
  • 5a599c6 Merge pull request #2236 from github/henrymercer/feature-flags-with-tool-feat...
  • 829376a Allow feature flags to specify tool feature requirements
  • efc4746 Downgrade log levels for some messages to debug
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github/codeql-action&package-manager=github_actions&previous-version=3.24.9&new-version=3.25.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql.yml | 6 +++--- .github/workflows/scorecard.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index dcdf2425a..af3b11dcf 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -34,7 +34,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9 + uses: github/codeql-action/init@df5a14dc28094dc936e103b37d749c6628682b60 # v3.25.0 # Override language selection by uncommenting this and choosing your languages with: languages: javascript @@ -42,7 +42,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). # If this step fails, then you should remove it and run the build manually (see below). - name: Autobuild - uses: github/codeql-action/autobuild@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9 + uses: github/codeql-action/autobuild@df5a14dc28094dc936e103b37d749c6628682b60 # v3.25.0 # ℹ️ Command-line programs to run using the OS shell. # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun @@ -56,4 +56,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9 + uses: github/codeql-action/analyze@df5a14dc28094dc936e103b37d749c6628682b60 # v3.25.0 diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 681e66dca..1ca8497b8 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -65,6 +65,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: Upload to code-scanning - uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9 + uses: github/codeql-action/upload-sarif@df5a14dc28094dc936e103b37d749c6628682b60 # v3.25.0 with: sarif_file: results.sarif From 0b4393b9ba234e125ce7a68323f45f65970fbf7a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 13:18:02 -0700 Subject: [PATCH 28/38] Bump the dependencies group with 7 updates (#747) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps the dependencies group with 7 updates: | Package | From | To | | --- | --- | --- | | [@trunkio/launcher](https://trunk.io) | `1.3.0` | `1.3.1` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `20.12.2` | `20.12.7` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `7.4.0` | `7.7.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `7.4.0` | `7.7.0` | | [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) | `27.9.0` | `28.2.0` | | [eslint-plugin-simple-import-sort](https://github.com/lydell/eslint-plugin-simple-import-sort) | `12.0.0` | `12.1.0` | | [typescript](https://github.com/Microsoft/TypeScript) | `5.4.3` | `5.4.5` | Updates `@trunkio/launcher` from 1.3.0 to 1.3.1 Updates `@types/node` from 20.12.2 to 20.12.7
Commits

Updates `@typescript-eslint/eslint-plugin` from 7.4.0 to 7.7.0
Release notes

Sourced from @​typescript-eslint/eslint-plugin's releases.

v7.7.0

7.7.0 (2024-04-15)

🚀 Features

  • eslint-plugin: replace no-new-symbol with no-new-native-nonconstructor (#8895)
  • typescript-estree: add defaultProject for project service (#8815)

❤️ Thank You

You can read about our versioning strategy and releases on our website.

v7.6.0

7.6.0 (2024-04-08)

🚀 Features

  • add name field to shared configs and flat config types (#8863)
  • bump npm dependency ranges (#8860)
  • utils: add types for both flat and legacy eslint classes (#8861)

🩹 Fixes

  • typescript-eslint: fix type errors when using exactOptionalPropertyTypes (#8786)

❤️ Thank You

You can read about our versioning strategy and releases on our website.

v7.5.0

7.5.0 (2024-04-01)

🩹 Fixes

  • eslint-plugin: [no-floating-promises] handle TaggedTemplateExpression (#8758)
  • eslint-plugin: [no-unnecessary-type-assertion] handle exactOptionalPropertyTypes compiler option (#8770)
  • parser: disallow errorOnTypeScriptSyntacticAndSemanticIssues (#8784)
  • typescript-eslint: improve support for legacy configs (#8812)

❤️ Thank You

... (truncated)

Changelog

Sourced from @​typescript-eslint/eslint-plugin's changelog.

7.7.0 (2024-04-15)

🚀 Features

  • eslint-plugin: replace no-new-symbol with no-new-native-nonconstructor

❤️ Thank You

  • Dave
  • Josh Goldberg ✨

You can read about our versioning strategy and releases on our website.

7.6.0 (2024-04-08)

🚀 Features

  • bump npm dependency ranges

❤️ Thank You

  • Abraham Guo
  • auvred
  • Brad Zacher

You can read about our versioning strategy and releases on our website.

7.5.0 (2024-04-01)

🩹 Fixes

  • eslint-plugin: [no-floating-promises] handle TaggedTemplateExpression

  • eslint-plugin: [no-unnecessary-type-assertion] handle exactOptionalPropertyTypes compiler option

❤️ Thank You

  • Brad Zacher
  • Kim Sang Du
  • Mark de Dios
  • Naru
  • YeonJuan

You can read about our versioning strategy and releases on our website.

Commits
  • e44a1a2 chore(release): publish 7.7.0
  • fda5704 feat(eslint-plugin): replace no-new-symbol with `no-new-native-nonconstruct...
  • e1db872 chore(release): publish 7.6.0
  • a6ab2cb feat: bump npm dependency ranges (#8860)
  • 4bac40c docs: fix incorrect tab item values in prefer-optional-chain (#8867)
  • a7bdd1c test(eslint-plugin): render snapshots of ESLint output for each code example ...
  • 41d893f docs(eslint-plugin): [consistent-return] add warning section use noImplicitRe...
  • d063275 docs: feature-freeze member-ordering, naming-convention, sort-type-constituen...
  • a14ba9d chore(release): publish 7.5.0
  • ecb6b55 docs: add homepage (#8742)
  • Additional commits viewable in compare view

Updates `@typescript-eslint/parser` from 7.4.0 to 7.7.0
Release notes

Sourced from @​typescript-eslint/parser's releases.

v7.7.0

7.7.0 (2024-04-15)

🚀 Features

  • eslint-plugin: replace no-new-symbol with no-new-native-nonconstructor (#8895)
  • typescript-estree: add defaultProject for project service (#8815)

❤️ Thank You

You can read about our versioning strategy and releases on our website.

v7.6.0

7.6.0 (2024-04-08)

🚀 Features

  • add name field to shared configs and flat config types (#8863)
  • bump npm dependency ranges (#8860)
  • utils: add types for both flat and legacy eslint classes (#8861)

🩹 Fixes

  • typescript-eslint: fix type errors when using exactOptionalPropertyTypes (#8786)

❤️ Thank You

You can read about our versioning strategy and releases on our website.

v7.5.0

7.5.0 (2024-04-01)

🩹 Fixes

  • eslint-plugin: [no-floating-promises] handle TaggedTemplateExpression (#8758)
  • eslint-plugin: [no-unnecessary-type-assertion] handle exactOptionalPropertyTypes compiler option (#8770)
  • parser: disallow errorOnTypeScriptSyntacticAndSemanticIssues (#8784)
  • typescript-eslint: improve support for legacy configs (#8812)

❤️ Thank You

... (truncated)

Changelog

Sourced from @​typescript-eslint/parser's changelog.

7.7.0 (2024-04-15)

This was a version bump only for parser to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

7.6.0 (2024-04-08)

🚀 Features

  • bump npm dependency ranges

❤️ Thank You

  • Abraham Guo
  • auvred
  • Brad Zacher

You can read about our versioning strategy and releases on our website.

7.5.0 (2024-04-01)

🩹 Fixes

  • parser: disallow errorOnTypeScriptSyntacticAndSemanticIssues

❤️ Thank You

  • Brad Zacher
  • Kim Sang Du
  • Mark de Dios
  • Naru
  • YeonJuan

You can read about our versioning strategy and releases on our website.

Commits

Updates `eslint-plugin-jest` from 27.9.0 to 28.2.0
Release notes

Sourced from eslint-plugin-jest's releases.

v28.2.0

28.2.0 (2024-04-06)

Features

  • support providing aliases for @jest/globals package (#1543) (744d4f6)

v28.1.1

28.1.1 (2024-04-06)

Bug Fixes

  • max-expects: properly reset counter when exiting a test case (#1550) (b4b7cbc)

v28.1.0

28.1.0 (2024-04-06)

Features

v28.0.0

28.0.0 (2024-04-06)

Bug Fixes

  • allow ESLint 9 as peer dependency (#1547) (3c5e167)
  • drop support for Node 19 (#1548) (c87e388)
  • no-large-snapshots: avoid instanceof RegExp check for ESLint v9 compatibility (#1542) (af4a9c9)

Features

BREAKING CHANGES

  • Node v19 is no longer supported
  • removed unneeded snapshot processor and flat/snapshot config
  • dropped support for @typescript-eslint/eslint-plugin v5
  • dropped support for Node v14

... (truncated)

Changelog

Sourced from eslint-plugin-jest's changelog.

28.2.0 (2024-04-06)

Features

  • support providing aliases for @jest/globals package (#1543) (744d4f6)

28.1.1 (2024-04-06)

Bug Fixes

  • max-expects: properly reset counter when exiting a test case (#1550) (b4b7cbc)

28.1.0 (2024-04-06)

Features

28.0.0 (2024-04-06)

Bug Fixes

  • allow ESLint 9 as peer dependency (#1547) (3c5e167)
  • drop support for Node 19 (#1548) (c87e388)
  • no-large-snapshots: avoid instanceof RegExp check for ESLint v9 compatibility (#1542) (af4a9c9)

Features

BREAKING CHANGES

  • Node v19 is no longer supported
  • removed unneeded snapshot processor and flat/snapshot config
  • dropped support for @typescript-eslint/eslint-plugin v5
  • dropped support for Node v14
  • removed no-if in favor of no-conditional-in-test

28.0.0-next.7 (2024-04-06)

... (truncated)

Commits
  • 9f918bc chore(release): 28.2.0 [skip ci]
  • 744d4f6 feat: support providing aliases for @jest/globals package (#1543)
  • 8f59e2b chore(release): 28.1.1 [skip ci]
  • b4b7cbc fix(max-expects): properly reset counter when exiting a test case (#1550)
  • 6aaabc4 chore(release): 28.1.0 [skip ci]
  • 37478d8 feat: add prefer-importing-jest-globals rule (#1490)
  • 9aa7aee chore: remove patch (#1549)
  • 5bc0b88 chore(release): 28.0.0 [skip ci]
  • 7ecbae2 Merge pull request #1531 from jest-community/next
  • 9854767 chore(deps): update wagoid/commitlint-github-action action to v6 (#1539)
  • Additional commits viewable in compare view

Updates `eslint-plugin-simple-import-sort` from 12.0.0 to 12.1.0
Changelog

Sourced from eslint-plugin-simple-import-sort's changelog.

Version 12.1.0 (2024-04-13)

This release adds TypeScript type definitions for the plugin itself. This is useful when you use TypeScript to check your ESLint configuration. It assumes that you install @types/eslint yourself. Thanks to @​Logicer16!

Commits

Updates `typescript` from 5.4.3 to 5.4.5
Release notes

Sourced from typescript's releases.

TypeScript 5.4.5

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

TypeScript 5.4.4

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

Commits
  • 27bcd4c Update LKG
  • 9f33bf1 🤖 Pick PR #58098 (Fix constraints of nested homomorph...) into release-5.4 (#...
  • 71b2f84 Bump version to 5.4.5 and LKG
  • 892936f 🤖 Pick PR #58083 (Don't propagate partial union/inter...) into release-5.4 (#...
  • 38a7c05 release-5.4: Always set node-version for setup-node (#58117)
  • b754fc3 🤖 Pick PR #57778 (fix type import check for default-i...) into release-5.4 (#...
  • 8eb3367 Bump version to 5.4.4 and LKG
  • de9096b 🤖 Pick PR #57871 (Divide-and-conquer strategy for int...) into release-5.4 (#...
  • 06aae98 🤖 Pick PR #57973 (Compare package.json paths with cor...) into release-5.4 (#...
  • 6d8134e 🤖 Pick PR #57637 (Fixed a regression related to deter...) into release-5.4 (#...
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 846 ++++++++++++++++++++++------------------------ package.json | 14 +- 2 files changed, 414 insertions(+), 446 deletions(-) diff --git a/package-lock.json b/package-lock.json index b7f1f6bd7..b3b3ca265 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,25 +11,25 @@ "@jest/console": "^29.4.1", "@jest/reporters": "^29.4.1", "@jest/test-result": "^29.4.1", - "@trunkio/launcher": "^1.3.0", + "@trunkio/launcher": "^1.3.1", "@types/caller": "^1.0.2", "@types/debug": "^4.1.12", "@types/jest": "^29.5.12", "@types/jest-specific-snapshot": "^0.5.9", - "@types/node": "^20.12.2", - "@typescript-eslint/eslint-plugin": "^7.4.0", - "@typescript-eslint/parser": "^7.4.0", + "@types/node": "^20.12.7", + "@typescript-eslint/eslint-plugin": "^7.7.0", + "@typescript-eslint/parser": "^7.7.0", "caller": "^1.1.0", "debug": "^4.3.4", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-typescript": "^3.5.2", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jest": "^28.2.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-arrow-functions": "^3.3.2", "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-simple-import-sort": "^12.0.0", + "eslint-plugin-simple-import-sort": "^12.1.0", "fast-sort": "^3.2.0", "jest": "^29.3.1", "jest-specific-snapshot": "^8.0.0", @@ -38,7 +38,7 @@ "ts-jest": "^29.1.2", "ts-node": "^10.9.2", "tsconfig-paths": "^4.1.2", - "typescript": "^5.4.3", + "typescript": "^5.4.5", "yaml": "^2.4.1" }, "engines": { @@ -695,9 +695,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", - "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -1304,9 +1304,9 @@ } }, "node_modules/@trunkio/launcher": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@trunkio/launcher/-/launcher-1.3.0.tgz", - "integrity": "sha512-CIehTfjiB905y9SuSMIRKkMv7qV+2jOALau7f1w0kjD14aHZIerT+eSeIzfrp2CTgRTTPAz2MZh+euNmh2Goxg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@trunkio/launcher/-/launcher-1.3.1.tgz", + "integrity": "sha512-30gcw/pc+hmzXR8qHM0ND1kYgwnAjze3Xsnw3AUvxO9G4JzKF8u6FDy/6qbYKZxJ6Wr4SE0E0L7ZrAEA8Nia5Q==", "dev": true, "dependencies": { "semver": "^7.5.4", @@ -1472,18 +1472,18 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.12.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.2.tgz", - "integrity": "sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==", + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@types/semver": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", - "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true }, "node_modules/@types/stack-utils": { @@ -1508,22 +1508,22 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.4.0.tgz", - "integrity": "sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.0.tgz", + "integrity": "sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "7.4.0", - "@typescript-eslint/type-utils": "7.4.0", - "@typescript-eslint/utils": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0", + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/type-utils": "7.7.0", + "@typescript-eslint/utils": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4", "graphemer": "^1.4.0", - "ignore": "^5.2.4", + "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1543,13 +1543,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.4.0.tgz", - "integrity": "sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz", + "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0" + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1560,9 +1560,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.4.0.tgz", - "integrity": "sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz", + "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1573,19 +1573,19 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.4.0.tgz", - "integrity": "sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz", + "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1601,18 +1601,18 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.4.0.tgz", - "integrity": "sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz", + "integrity": "sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.4.0", - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/typescript-estree": "7.4.0", - "semver": "^7.5.4" + "@types/json-schema": "^7.0.15", + "@types/semver": "^7.5.8", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "semver": "^7.6.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1626,13 +1626,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.4.0.tgz", - "integrity": "sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz", + "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.4.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "7.7.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1652,9 +1652,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -1667,15 +1667,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.4.0.tgz", - "integrity": "sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.0.tgz", + "integrity": "sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.4.0", - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/typescript-estree": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4" }, "engines": { @@ -1695,13 +1695,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.4.0.tgz", - "integrity": "sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz", + "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0" + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1712,9 +1712,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.4.0.tgz", - "integrity": "sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz", + "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1725,19 +1725,19 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.4.0.tgz", - "integrity": "sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz", + "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1753,13 +1753,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.4.0.tgz", - "integrity": "sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz", + "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.4.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "7.7.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1779,9 +1779,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -1794,16 +1794,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -1811,15 +1811,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.4.0.tgz", - "integrity": "sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.0.tgz", + "integrity": "sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.4.0", - "@typescript-eslint/utils": "7.4.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/utils": "7.7.0", "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^1.3.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1838,13 +1838,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.4.0.tgz", - "integrity": "sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz", + "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0" + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1855,9 +1855,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.4.0.tgz", - "integrity": "sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz", + "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1868,19 +1868,19 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.4.0.tgz", - "integrity": "sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz", + "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1896,18 +1896,18 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.4.0.tgz", - "integrity": "sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz", + "integrity": "sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.4.0", - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/typescript-estree": "7.4.0", - "semver": "^7.5.4" + "@types/json-schema": "^7.0.15", + "@types/semver": "^7.5.8", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "semver": "^7.6.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1921,13 +1921,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.4.0.tgz", - "integrity": "sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz", + "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.4.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "7.7.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1947,9 +1947,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -1962,12 +1962,12 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -1975,21 +1975,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -2001,43 +2002,66 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", "dev": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3183,19 +3207,19 @@ } }, "node_modules/eslint-plugin-jest": { - "version": "27.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", - "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", + "version": "28.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.2.0.tgz", + "integrity": "sha512-yRDti/a+f+SMSmNTiT9/M/MzXGkitl8CfzUxnpoQcTyfq8gUrXMriVcWU36W1X6BZSUoyUCJrDAWWUA2N4hE5g==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "^5.10.0" + "@typescript-eslint/utils": "^6.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^16.10.0 || ^18.12.0 || >=20.0.0" }, "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", - "eslint": "^7.0.0 || ^8.0.0", + "@typescript-eslint/eslint-plugin": "^6.0.0 || ^7.0.0", + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0", "jest": "*" }, "peerDependenciesMeta": { @@ -3319,27 +3343,14 @@ } }, "node_modules/eslint-plugin-simple-import-sort": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.0.0.tgz", - "integrity": "sha512-8o0dVEdAkYap0Cn5kNeklaKcT1nUsa3LITWEuFk3nJifOoD+5JQGoyDUW2W/iPWwBsNBJpyJS9y4je/BgxLcyQ==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.0.tgz", + "integrity": "sha512-Y2fqAfC11TcG/WP3TrI1Gi3p3nc8XJyEOJYHyEPEGI/UAgNx6akxxlX74p7SbAQdLcgASKhj8M0GKvH3vq/+ig==", "dev": true, "peerDependencies": { "eslint": ">=5.0.0" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", @@ -3449,15 +3460,6 @@ "node": ">=4.0" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -4039,9 +4041,9 @@ } }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" @@ -6398,12 +6400,12 @@ } }, "node_modules/ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, "engines": { - "node": ">=16.13.0" + "node": ">=16" }, "peerDependencies": { "typescript": ">=4.2.0" @@ -6524,27 +6526,6 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "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" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -6644,9 +6625,9 @@ } }, "node_modules/typescript": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz", - "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -7406,9 +7387,9 @@ } }, "@eslint-community/regexpp": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", - "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true }, "@eslint/eslintrc": { @@ -7885,9 +7866,9 @@ } }, "@trunkio/launcher": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@trunkio/launcher/-/launcher-1.3.0.tgz", - "integrity": "sha512-CIehTfjiB905y9SuSMIRKkMv7qV+2jOALau7f1w0kjD14aHZIerT+eSeIzfrp2CTgRTTPAz2MZh+euNmh2Goxg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@trunkio/launcher/-/launcher-1.3.1.tgz", + "integrity": "sha512-30gcw/pc+hmzXR8qHM0ND1kYgwnAjze3Xsnw3AUvxO9G4JzKF8u6FDy/6qbYKZxJ6Wr4SE0E0L7ZrAEA8Nia5Q==", "dev": true, "requires": { "semver": "^7.5.4", @@ -8046,18 +8027,18 @@ "dev": true }, "@types/node": { - "version": "20.12.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.2.tgz", - "integrity": "sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==", + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", "dev": true, "requires": { "undici-types": "~5.26.4" } }, "@types/semver": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", - "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true }, "@types/stack-utils": { @@ -8082,79 +8063,79 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.4.0.tgz", - "integrity": "sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.0.tgz", + "integrity": "sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ==", "dev": true, "requires": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "7.4.0", - "@typescript-eslint/type-utils": "7.4.0", - "@typescript-eslint/utils": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0", + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/type-utils": "7.7.0", + "@typescript-eslint/utils": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4", "graphemer": "^1.4.0", - "ignore": "^5.2.4", + "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.4.0.tgz", - "integrity": "sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz", + "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==", "dev": true, "requires": { - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0" + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0" } }, "@typescript-eslint/types": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.4.0.tgz", - "integrity": "sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz", + "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.4.0.tgz", - "integrity": "sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz", + "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==", "dev": true, "requires": { - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" } }, "@typescript-eslint/utils": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.4.0.tgz", - "integrity": "sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz", + "integrity": "sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.4.0", - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/typescript-estree": "7.4.0", - "semver": "^7.5.4" + "@types/json-schema": "^7.0.15", + "@types/semver": "^7.5.8", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "semver": "^7.6.0" } }, "@typescript-eslint/visitor-keys": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.4.0.tgz", - "integrity": "sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz", + "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==", "dev": true, "requires": { - "@typescript-eslint/types": "7.4.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "7.7.0", + "eslint-visitor-keys": "^3.4.3" } }, "brace-expansion": { @@ -8167,9 +8148,9 @@ } }, "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -8178,58 +8159,58 @@ } }, "@typescript-eslint/parser": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.4.0.tgz", - "integrity": "sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.0.tgz", + "integrity": "sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "7.4.0", - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/typescript-estree": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.4.0.tgz", - "integrity": "sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz", + "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==", "dev": true, "requires": { - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0" + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0" } }, "@typescript-eslint/types": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.4.0.tgz", - "integrity": "sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz", + "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.4.0.tgz", - "integrity": "sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz", + "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==", "dev": true, "requires": { - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" } }, "@typescript-eslint/visitor-keys": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.4.0.tgz", - "integrity": "sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz", + "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==", "dev": true, "requires": { - "@typescript-eslint/types": "7.4.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "7.7.0", + "eslint-visitor-keys": "^3.4.3" } }, "brace-expansion": { @@ -8242,9 +8223,9 @@ } }, "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -8253,82 +8234,82 @@ } }, "@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" } }, "@typescript-eslint/type-utils": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.4.0.tgz", - "integrity": "sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.0.tgz", + "integrity": "sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "7.4.0", - "@typescript-eslint/utils": "7.4.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/utils": "7.7.0", "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^1.3.0" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.4.0.tgz", - "integrity": "sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz", + "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==", "dev": true, "requires": { - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0" + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0" } }, "@typescript-eslint/types": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.4.0.tgz", - "integrity": "sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz", + "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.4.0.tgz", - "integrity": "sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz", + "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==", "dev": true, "requires": { - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" } }, "@typescript-eslint/utils": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.4.0.tgz", - "integrity": "sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz", + "integrity": "sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.4.0", - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/typescript-estree": "7.4.0", - "semver": "^7.5.4" + "@types/json-schema": "^7.0.15", + "@types/semver": "^7.5.8", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "semver": "^7.6.0" } }, "@typescript-eslint/visitor-keys": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.4.0.tgz", - "integrity": "sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz", + "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==", "dev": true, "requires": { - "@typescript-eslint/types": "7.4.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "7.7.0", + "eslint-visitor-keys": "^3.4.3" } }, "brace-expansion": { @@ -8341,9 +8322,9 @@ } }, "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -8352,50 +8333,70 @@ } }, "@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, "@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", "dev": true, "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" } }, "@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, "requires": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" } }, "@ungap/structured-clone": { @@ -9264,12 +9265,12 @@ } }, "eslint-plugin-jest": { - "version": "27.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", - "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", + "version": "28.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.2.0.tgz", + "integrity": "sha512-yRDti/a+f+SMSmNTiT9/M/MzXGkitl8CfzUxnpoQcTyfq8gUrXMriVcWU36W1X6BZSUoyUCJrDAWWUA2N4hE5g==", "dev": true, "requires": { - "@typescript-eslint/utils": "^5.10.0" + "@typescript-eslint/utils": "^6.0.0" } }, "eslint-plugin-node": { @@ -9337,22 +9338,12 @@ } }, "eslint-plugin-simple-import-sort": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.0.0.tgz", - "integrity": "sha512-8o0dVEdAkYap0Cn5kNeklaKcT1nUsa3LITWEuFk3nJifOoD+5JQGoyDUW2W/iPWwBsNBJpyJS9y4je/BgxLcyQ==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.0.tgz", + "integrity": "sha512-Y2fqAfC11TcG/WP3TrI1Gi3p3nc8XJyEOJYHyEPEGI/UAgNx6akxxlX74p7SbAQdLcgASKhj8M0GKvH3vq/+ig==", "dev": true, "requires": {} }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, "eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", @@ -9410,12 +9401,6 @@ } } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -9847,9 +9832,9 @@ "dev": true }, "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true }, "import-fresh": { @@ -11565,9 +11550,9 @@ } }, "ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, "requires": {} }, @@ -11633,23 +11618,6 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -11719,9 +11687,9 @@ } }, "typescript": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz", - "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true }, "unbox-primitive": { diff --git a/package.json b/package.json index 244a0e40e..a8729787a 100644 --- a/package.json +++ b/package.json @@ -9,25 +9,25 @@ "@jest/console": "^29.4.1", "@jest/reporters": "^29.4.1", "@jest/test-result": "^29.4.1", - "@trunkio/launcher": "^1.3.0", + "@trunkio/launcher": "^1.3.1", "@types/caller": "^1.0.2", "@types/debug": "^4.1.12", "@types/jest": "^29.5.12", "@types/jest-specific-snapshot": "^0.5.9", - "@types/node": "^20.12.2", - "@typescript-eslint/eslint-plugin": "^7.4.0", - "@typescript-eslint/parser": "^7.4.0", + "@types/node": "^20.12.7", + "@typescript-eslint/eslint-plugin": "^7.7.0", + "@typescript-eslint/parser": "^7.7.0", "caller": "^1.1.0", "debug": "^4.3.4", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-typescript": "^3.5.2", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jest": "^28.2.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-arrow-functions": "^3.3.2", "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-simple-import-sort": "^12.0.0", + "eslint-plugin-simple-import-sort": "^12.1.0", "fast-sort": "^3.2.0", "jest": "^29.3.1", "jest-specific-snapshot": "^8.0.0", @@ -36,7 +36,7 @@ "ts-jest": "^29.1.2", "ts-node": "^10.9.2", "tsconfig-paths": "^4.1.2", - "typescript": "^5.4.3", + "typescript": "^5.4.5", "yaml": "^2.4.1" }, "bundleDependencies": [ From a274e14920ea3189eac4196ea7e81a4e95dbd839 Mon Sep 17 00:00:00 2001 From: Chris Clearwater Date: Tue, 16 Apr 2024 10:53:43 -0700 Subject: [PATCH 29/38] Upgrade ruby-build (#734) Tested locally after deleting ruby and ruby-build from my cache. Co-authored-by: Tyler Jang --- runtimes/ruby/plugin.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtimes/ruby/plugin.yaml b/runtimes/ruby/plugin.yaml index 64b850c23..c2fb9526a 100644 --- a/runtimes/ruby/plugin.yaml +++ b/runtimes/ruby/plugin.yaml @@ -1,12 +1,12 @@ version: 0.1 downloads: - name: ruby-build - version: 20230330 + version: 20240319 downloads: - os: linux: linux macos: macos - url: https://github.com/rbenv/ruby-build/archive/refs/tags/v20230330.tar.gz + url: https://github.com/rbenv/ruby-build/archive/refs/tags/v20240319.tar.gz strip_components: 1 - name: ruby-install version: 3.1.4 From ccddbf72c9133569f98e977dc5f1b75761cafd9f Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Wed, 17 Apr 2024 15:00:28 -0700 Subject: [PATCH 30/38] Add pyright snapshot (#749) And mark as release-ready. `pyright@1.1.359` --- .../pyright_v1.1.359_basic.check.shot | 226 ++++++++++++++++++ 1 file changed, 226 insertions(+) create mode 100644 linters/pyright/test_data/pyright_v1.1.359_basic.check.shot diff --git a/linters/pyright/test_data/pyright_v1.1.359_basic.check.shot b/linters/pyright/test_data/pyright_v1.1.359_basic.check.shot new file mode 100644 index 000000000..ca818b2ac --- /dev/null +++ b/linters/pyright/test_data/pyright_v1.1.359_basic.check.shot @@ -0,0 +1,226 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP +// trunk-upgrade-validation:RELEASE + +exports[`Testing linter pyright test basic 1`] = ` +{ + "issues": [ + { + "code": "reportAttributeAccessIssue", + "column": "57", + "file": "test_data/basic.in.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://github.com/microsoft/pyright/blob/main/docs/configuration.md#reportAttributeAccessIssue", + "level": "LEVEL_HIGH", + "line": "1", + "linter": "pyright", + "message": ""Enum" is unknown import symbol", + "ranges": [ + { + "filePath": "test_data/basic.in.py", + "length": "4", + "offset": "56", + }, + ], + "targetType": "python", + }, + { + "column": "13", + "file": "test_data/basic.in.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://github.com/microsoft/pyright/blob/main/docs/configuration.md#", + "level": "LEVEL_LOW", + "line": "15", + "linter": "pyright", + "message": "Type of "a.x" is "int | str"", + "ranges": [ + { + "filePath": "test_data/basic.in.py", + "length": "3", + "offset": "384", + }, + ], + "targetType": "python", + }, + { + "code": "reportAttributeAccessIssue", + "column": "3", + "file": "test_data/basic.in.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://github.com/microsoft/pyright/blob/main/docs/configuration.md#reportAttributeAccessIssue", + "level": "LEVEL_HIGH", + "line": "18", + "linter": "pyright", + "message": "Cannot assign to attribute "x" for class "A" +  Expression of type "float" cannot be assigned to attribute "x" of class "A" +    Type "float" is incompatible with type "int | str" +      "float" is incompatible with "int" +      "float" is incompatible with "str"", + "ranges": [ + { + "filePath": "test_data/basic.in.py", + "length": "1", + "offset": "462", + }, + ], + "targetType": "python", + }, + { + "code": "reportUndefinedVariable", + "column": "8", + "file": "test_data/basic.in.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://github.com/microsoft/pyright/blob/main/docs/configuration.md#reportUndefinedVariable", + "level": "LEVEL_HIGH", + "line": "24", + "linter": "pyright", + "message": ""ClassVar" is not defined", + "ranges": [ + { + "filePath": "test_data/basic.in.py", + "length": "8", + "offset": "602", + }, + ], + "targetType": "python", + }, + { + "code": "reportAttributeAccessIssue", + "column": "9", + "file": "test_data/basic.in.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://github.com/microsoft/pyright/blob/main/docs/configuration.md#reportAttributeAccessIssue", + "level": "LEVEL_HIGH", + "line": "31", + "linter": "pyright", + "message": "Cannot access attribute "z" for class "type[A]" +  Attribute "z" is unknown", + "ranges": [ + { + "filePath": "test_data/basic.in.py", + "length": "1", + "offset": "742", + }, + ], + "targetType": "python", + }, + { + "code": "reportReturnType", + "column": "29", + "file": "test_data/basic.in.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://github.com/microsoft/pyright/blob/main/docs/configuration.md#reportReturnType", + "level": "LEVEL_HIGH", + "line": "39", + "linter": "pyright", + "message": "Function with declared return type "bool" must return value on all code paths +  "None" is incompatible with "bool"", + "ranges": [ + { + "filePath": "test_data/basic.in.py", + "length": "4", + "offset": "864", + }, + ], + "targetType": "python", + }, + { + "code": "reportReturnType", + "column": "12", + "file": "test_data/basic.in.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://github.com/microsoft/pyright/blob/main/docs/configuration.md#reportReturnType", + "level": "LEVEL_HIGH", + "line": "5", + "linter": "pyright", + "message": "Expression of type "int" is incompatible with return type "str" +  "int" is incompatible with "str"", + "ranges": [ + { + "filePath": "test_data/basic.in.py", + "length": "1", + "offset": "105", + }, + ], + "targetType": "python", + }, + { + "column": "25", + "file": "test_data/basic.in.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://github.com/microsoft/pyright/blob/main/docs/configuration.md#", + "level": "LEVEL_LOW", + "line": "51", + "linter": "pyright", + "message": "Type of "val" is "int"", + "ranges": [ + { + "filePath": "test_data/basic.in.py", + "length": "3", + "offset": "1128", + }, + ], + "targetType": "python", + }, + { + "column": "39", + "file": "test_data/basic.in.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://github.com/microsoft/pyright/blob/main/docs/configuration.md#", + "level": "LEVEL_LOW", + "line": "54", + "linter": "pyright", + "message": "Type of "val" is "int"", + "ranges": [ + { + "filePath": "test_data/basic.in.py", + "length": "3", + "offset": "1244", + }, + ], + "targetType": "python", + }, + { + "code": "reportRedeclaration", + "column": "7", + "file": "test_data/basic.in.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://github.com/microsoft/pyright/blob/main/docs/configuration.md#reportRedeclaration", + "level": "LEVEL_HIGH", + "line": "7", + "linter": "pyright", + "message": "Class declaration "A" is obscured by a declaration of the same name", + "ranges": [ + { + "filePath": "test_data/basic.in.py", + "length": "1", + "offset": "183", + }, + ], + "targetType": "python", + }, + ], + "lintActions": [ + { + "command": "lint", + "fileGroupName": "python", + "linter": "pyright", + "paths": [ + "test_data/basic.in.py", + ], + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "lint", + "fileGroupName": "python", + "linter": "pyright", + "paths": [ + "test_data/basic.in.py", + ], + "upstream": true, + "verb": "TRUNK_VERB_CHECK", + }, + ], + "taskFailures": [], + "unformattedFiles": [], +} +`; From a283a66d194f2c98d21129b34159980ff764dcb9 Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Fri, 19 Apr 2024 11:43:03 -0700 Subject: [PATCH 31/38] Support React comments in JSX/TSX (#750) Makes [JSX](https://en.wikipedia.org/wiki/JSX_(JavaScript))/TSX their own file formats to correctly handle `trunk-ignores` like: ```typescript const x = (
{/* trunk-ignore(eslint/@typescript-eslint/no-explicit-any) */}
); ``` Notes: - We won't be able to correctly autogen comment formats in all cases since we don't detect if we're in an XML block or not. But we will parse them correctly - We don't support `{ /* */ }` (i.e. additional or mismatched whitespace), but I think this is fine for now. I did include a singular space since it is [somewhat common](https://github.com/search?type=code&q=%22%7B+%2F*%22+path%3A*.tsx) (even though prettier handles this) - This wasn't working originally since we expect previous line comments to be preceded by only whitespace --- linters/plugin.yaml | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/linters/plugin.yaml b/linters/plugin.yaml index e2c6862bf..f5249f4a8 100644 --- a/linters/plugin.yaml +++ b/linters/plugin.yaml @@ -5,6 +5,14 @@ lint: leading_delimiter: "{-" trailing_delimiter: "-}" + - name: brace-slashes-block + leading_delimiter: "{/*" + trailing_delimiter: "*/}" + + - name: brace-slashes-block-spaced + leading_delimiter: "{ /*" + trailing_delimiter: "*/ }" + - name: dashes-block leading_delimiter: --[[ trailing_delimiter: --]] @@ -282,11 +290,21 @@ lint: extensions: - cjs - js - - jsx - mjs + inherit: + - javascript-xml + comments: + - slashes-block + - slashes-inline + + - name: javascript-xml + extensions: + - jsx comments: - slashes-block - slashes-inline + - brace-slashes-block + - brace-slashes-block-spaced - name: json extensions: @@ -572,10 +590,20 @@ lint: extensions: - mts - ts + inherit: + - typescript-xml + comments: + - slashes-block + - slashes-inline + + - name: typescript-xml + extensions: - tsx comments: - slashes-block - slashes-inline + - brace-slashes-block + - brace-slashes-block-spaced - name: xib extensions: From 0cd81d3b528c5124b4bffa4858950c90c09fa3dc Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Mon, 22 Apr 2024 18:32:38 -0700 Subject: [PATCH 32/38] Handle eslint pre-9.0.0 (#752) Offers some temporary fixes to make `main` green and provide a migration guide until we have a long-term story for #735. Also includes a node fix with [executing `.bat` files](https://github.com/trunk-io/plugins/actions/runs/8702103641/job/23865448625) related to https://github.com/prebuild/prebuildify/issues/83 --- linters/eslint/README.md | 22 ++++++++++++++++++++++ linters/eslint/eslint.test.ts | 13 +++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 linters/eslint/README.md diff --git a/linters/eslint/README.md b/linters/eslint/README.md new file mode 100644 index 000000000..721c74fc0 --- /dev/null +++ b/linters/eslint/README.md @@ -0,0 +1,22 @@ +# eslint + +## Migration Guide + +Trunk does not yet support `eslint@9.x`, which includes substantial config format changes (see their +[migration guide](https://eslint.org/docs/latest/use/migrate-to-9.0.0#flat-config)). If you'd like +to opt-in to `eslint@9.x` with Trunk before we release official support, you can add the following +override to your `.trunk/trunk.yaml`: + +```yaml +version: 0.1 +--- +lint: + enabled: + - eslint@9.0.0 + definitions: + - name: eslint + direct_configs: + - eslint.config.js + - eslint.config.mjs + - eslint.config.cjs +``` diff --git a/linters/eslint/eslint.test.ts b/linters/eslint/eslint.test.ts index afd88f330..694f2ad4c 100644 --- a/linters/eslint/eslint.test.ts +++ b/linters/eslint/eslint.test.ts @@ -1,6 +1,7 @@ import { spawnSync } from "child_process"; import fs from "fs"; import path from "path"; +import semver from "semver"; import { customLinterCheckTest } from "tests"; import { TrunkLintDriver } from "tests/driver"; import { osTimeoutMultiplier, TEST_DATA } from "tests/utils"; @@ -54,6 +55,7 @@ const preCheck = (driver: TrunkLintDriver) => { cwd: driver.getSandbox(), timeout: INSTALL_TIMEOUT, windowsHide: true, + shell: true, }, ); driver.debug(install); @@ -68,12 +70,22 @@ const preCheck = (driver: TrunkLintDriver) => { } }; +const manualVersionReplacer = (version: string) => { + // NOTE(Tyler): Continue to test eslint pre-9.0.0 and gate until we have a long-term fix. + const parsedVersion = semver.parse(version); + if (parsedVersion && parsedVersion.major >= 9) { + return "8.57.0"; + } + return version; +}; + // This set of testing is incomplete with regard to failure modes and unicode autofixes with eslint, but it serves as a sampling // Use upstream=false in order to supply autofixes for committed files. customLinterCheckTest({ linterName: "eslint", args: `${TEST_DATA} -y --upstream=false`, preCheck, + manualVersionReplacer, pathsToSnapshot: [ path.join(TEST_DATA, "non_ascii.ts"), path.join(TEST_DATA, "eof_autofix.ts"), @@ -86,4 +98,5 @@ customLinterCheckTest({ testName: "bad_install", args: `${TEST_DATA} -y`, preCheck: moveConfig, + manualVersionReplacer, }); From 355be99e025eca965bc286781ce58a859e637a4f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 18:34:19 -0700 Subject: [PATCH 33/38] Bump the dependencies group with 5 updates (#753) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps the dependencies group with 5 updates: | Package | From | To | | --- | --- | --- | | [trunk-io/trunk-action](https://github.com/trunk-io/trunk-action) | `1.1.12` | `1.1.13` | | [github/codeql-action](https://github.com/github/codeql-action) | `3.25.0` | `3.25.1` | | [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.3.1` | `4.3.2` | | [actions/download-artifact](https://github.com/actions/download-artifact) | `4.1.4` | `4.1.5` | | [slackapi/slack-github-action](https://github.com/slackapi/slack-github-action) | `1.25.0` | `1.26.0` | Updates `trunk-io/trunk-action` from 1.1.12 to 1.1.13
Release notes

Sourced from trunk-io/trunk-action's releases.

v1.1.13

What's Changed

  • Continues on failure to install node packages, if user doesn't have a trunk.yaml (#236)

Full Changelog: https://github.com/trunk-io/trunk-action/compare/v1.1.12...v1.1.13

Commits

Updates `github/codeql-action` from 3.25.0 to 3.25.1
Changelog

Sourced from github/codeql-action's changelog.

CodeQL Action Changelog

See the releases page for the relevant changes to the CodeQL CLI and language packs.

Note that the only difference between v2 and v3 of the CodeQL Action is the node version they support, with v3 running on node 20 while we continue to release v2 to support running on node 16. For example 3.22.11 was the first v3 release and is functionally identical to 2.22.11. This approach ensures an easy way to track exactly which features are included in different versions, indicated by the minor and patch version numbers.

[UNRELEASED]

No user facing changes.

3.25.1 - 17 Apr 2024

  • We are rolling out a feature in April/May 2024 that improves the reliability and performance of analyzing code when analyzing a compiled language with the autobuild build mode. #2235
  • Fix a bug where the init Action would fail if --overwrite was specified in CODEQL_ACTION_EXTRA_OPTIONS. #2245

3.25.0 - 15 Apr 2024

  • The deprecated feature for extracting dependencies for a Python analysis has been removed. #2224

    As a result, the following inputs and environment variables are now ignored:

    • The setup-python-dependencies input to the init Action
    • The CODEQL_ACTION_DISABLE_PYTHON_DEPENDENCY_INSTALLATION environment variable

    We recommend removing any references to these from your workflows. For more information, see the release notes for CodeQL Action v3.23.0 and v2.23.0.

  • Automatically overwrite an existing database if found on the filesystem. #2229

  • Bump the minimum CodeQL bundle version to 2.12.6. #2232

  • A more relevant log message and a diagnostic are now emitted when the file program is not installed on a Linux runner, but is required for Go tracing to succeed. #2234

3.24.10 - 05 Apr 2024

  • Update default CodeQL bundle version to 2.17.0. #2219
  • Add a deprecation warning for customers using CodeQL version 2.12.5 and earlier. These versions of CodeQL were discontinued on 26 March 2024 alongside GitHub Enterprise Server 3.8, and will be unsupported by CodeQL Action versions 3.25.0 and later and versions 2.25.0 and later. #2220
    • If you are using one of these versions, please update to CodeQL CLI version 2.12.6 or later. For instance, if you have specified a custom version of the CLI using the 'tools' input to the 'init' Action, you can remove this input to use the default version.
    • Alternatively, if you want to continue using a version of the CodeQL CLI between 2.11.6 and 2.12.5, you can replace github/codeql-action/*@v3 by github/codeql-action/*@v3.24.10 and github/codeql-action/*@v2 by github/codeql-action/*@v2.24.10 in your code scanning workflow to ensure you continue using this version of the CodeQL Action.

3.24.9 - 22 Mar 2024

  • Update default CodeQL bundle version to 2.16.5. #2203

3.24.8 - 18 Mar 2024

  • Improve the ease of debugging extraction issues by increasing the verbosity of the extractor logs when running in debug mode. #2195

3.24.7 - 12 Mar 2024

  • Update default CodeQL bundle version to 2.16.4. #2185

3.24.6 - 29 Feb 2024

... (truncated)

Commits
  • c7f9125 Merge pull request #2248 from github/update-v3.25.1-c4fb45143
  • 1c7e8b2 Update changelog for v3.25.1
  • c4fb451 Merge pull request #2245 from github/henrymercer/ignore-already-specified-flags
  • 556b3bc Add changelog note
  • ef66aea Merge branch 'main' into henrymercer/ignore-already-specified-flags
  • 9b87e0a Merge pull request #2241 from github/nickfyson/speculative-script-fix
  • 18111b6 Merge pull request #2235 from github/henrymercer/autobuild-with-direct-tracing
  • ade98b9 Ensure --overwrite flag is only passed once
  • 8566d50 Add regression test for double --overwrite
  • 453a956 Merge pull request #2243 from github/dependabot/npm_and_yarn/npm-9b31496ffc
  • Additional commits viewable in compare view

Updates `actions/upload-artifact` from 4.3.1 to 4.3.2
Release notes

Sourced from actions/upload-artifact's releases.

v4.3.2

What's Changed

New Contributors

Full Changelog: https://github.com/actions/upload-artifact/compare/v4.3.1...v4.3.2

Commits
  • 1746f4a Revert "updating to release 4.3.2"
  • 31685d0 updating to release 4.3.2
  • 18bf333 Merge pull request #562 from actions/eggyhead/update-artifact-v215
  • dac413b update package lock version
  • bb3b4a3 updating package version
  • 3e3da83 updating artifact and core dependencies
  • e35774f Merge pull request #561 from actions/robherley/deprecation-notice
  • e63ea67 Update readme with v3/v2/v1 deprecation notice
  • ef09cda Merge pull request #523 from andrewakim/andrewakim/migration-readme-fix
  • 00e36f9 Minor fix to the migration readme
  • Additional commits viewable in compare view

Updates `actions/download-artifact` from 4.1.4 to 4.1.5
Release notes

Sourced from actions/download-artifact's releases.

v4.1.5

What's Changed

Full Changelog: https://github.com/actions/download-artifact/compare/v4.1.4...v4.1.5

Commits
  • 8caf195 package lock update
  • d7a2ec4 updating package version
  • e56a1d4 updating core dependency
  • 1fcda58 updating core license
  • 325a10d updating actions dependency to v2.1.5
  • f8aaee4 Merge pull request #322 from actions/robherley/deprecation-notice
  • d98334b Update readme with v3/v2/v1 deprecation notice
  • See full diff in compare view

Updates `slackapi/slack-github-action` from 1.25.0 to 1.26.0
Release notes

Sourced from slackapi/slack-github-action's releases.

Slack Send V1.26.0

What's Changed

This release provides an escape hatch for sending the JSON content of a payload file exactly as is, without replacing any templated variables!

Previously a payload file was parsed and templated variables were replaced with values from github.context and github.env. Any undefined variables were replaced with ??? in this process, which might have caused questions.

That remains the default behavior, but now the JSON contents of a payload file can be sent exactly as written by setting the payload-file-path-parsed input to false:

- name: Send custom JSON data to Slack workflow
  id: slack
  uses: slackapi/slack-github-action@v1.26.0
  with:
    payload-file-path: "./payload-slack-content.json"
    payload-file-path-parsed: false
  env:
    SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}

With this change, the contents of the example payload-slack-content.json will be sent to a webhook URL exactly as is!

Recent commits

Enhancements

Documentation

Maintenance

Dependencies

New Contributors

... (truncated)

Commits
  • 70cd7be Automatic compilation
  • 53b162f chore(release): tag release v1.26.0
  • 47d8e42 feat: introduce an option to send payload file json without replacing variabl...
  • d447374 Bump eslint-plugin-jsdoc from 48.2.1 to 48.2.2 (#302)
  • b638b31 Bump axios from 1.6.7 to 1.6.8 (#301)
  • c76311a Bump mocha from 10.3.0 to 10.4.0 (#300)
  • d4358d2 docs(readme): adjust whitespace in env assignment (#296)
  • cb3763e ci(test): share environment secrets with pull requests from forked prs (#297)
  • 86bebf8 Bump @​slack/web-api from 6.12.0 to 7.0.2 (#287)
  • efa31bf Bump https-proxy-agent from 7.0.2 to 7.0.4 (#290)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/annotate_pr.yaml | 2 +- .github/workflows/codeql.yml | 6 +++--- .github/workflows/nightly.yaml | 4 ++-- .github/workflows/pr.yaml | 2 +- .github/workflows/scorecard.yml | 4 ++-- .github/workflows/upgrade_trunk.yaml | 2 +- .github/workflows/upload_results.reusable.yaml | 14 +++++++------- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/annotate_pr.yaml b/.github/workflows/annotate_pr.yaml index 2a3c1ccb3..ccd507cf4 100644 --- a/.github/workflows/annotate_pr.yaml +++ b/.github/workflows/annotate_pr.yaml @@ -18,7 +18,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Trunk Check - uses: trunk-io/trunk-action@540e7fe497a45ae76370d26d95cc249059c4ac3a # v1.1.12 + uses: trunk-io/trunk-action@da67635060feab46c164bc130690e61864a5d13b # v1.1.13 with: post-annotations: true # This job may fail when the PR was not run on a fork, and that's okay diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index af3b11dcf..ed448edfb 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -34,7 +34,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@df5a14dc28094dc936e103b37d749c6628682b60 # v3.25.0 + uses: github/codeql-action/init@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1 # Override language selection by uncommenting this and choosing your languages with: languages: javascript @@ -42,7 +42,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). # If this step fails, then you should remove it and run the build manually (see below). - name: Autobuild - uses: github/codeql-action/autobuild@df5a14dc28094dc936e103b37d749c6628682b60 # v3.25.0 + uses: github/codeql-action/autobuild@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1 # ℹ️ Command-line programs to run using the OS shell. # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun @@ -56,4 +56,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@df5a14dc28094dc936e103b37d749c6628682b60 # v3.25.0 + uses: github/codeql-action/analyze@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1 diff --git a/.github/workflows/nightly.yaml b/.github/workflows/nightly.yaml index ba6cc893f..f41a3dc78 100644 --- a/.github/workflows/nightly.yaml +++ b/.github/workflows/nightly.yaml @@ -179,7 +179,7 @@ jobs: - name: Upload Test Outputs for Upload Job # Only upload results from latest. Always run, except when cancelled. if: (failure() || success()) && matrix.linter-version == 'Latest' - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 + uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 with: name: ${{ matrix.results-file }}-test-results path: ${{ matrix.results-file }}-res.json @@ -238,7 +238,7 @@ jobs: - name: Upload Test Outputs for Notification Job # Always run, except when cancelled. if: (failure() || success()) - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 + uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 with: name: tools-${{ matrix.results-file }}-test-results path: ${{ matrix.results-file }}-res.json diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 539771169..d1a661a45 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -228,7 +228,7 @@ jobs: lfs: true - name: Trunk Check - uses: trunk-io/trunk-action@540e7fe497a45ae76370d26d95cc249059c4ac3a + uses: trunk-io/trunk-action@da67635060feab46c164bc130690e61864a5d13b env: TRUNK_GITHUB_CHECK_RUN_TITLE: Trunk Check diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 1ca8497b8..9000fe624 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -57,7 +57,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: Upload artifact - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 + uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 with: name: SARIF file path: results.sarif @@ -65,6 +65,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: Upload to code-scanning - uses: github/codeql-action/upload-sarif@df5a14dc28094dc936e103b37d749c6628682b60 # v3.25.0 + uses: github/codeql-action/upload-sarif@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1 with: sarif_file: results.sarif diff --git a/.github/workflows/upgrade_trunk.yaml b/.github/workflows/upgrade_trunk.yaml index c5d1bdebc..07cb87ff4 100644 --- a/.github/workflows/upgrade_trunk.yaml +++ b/.github/workflows/upgrade_trunk.yaml @@ -26,7 +26,7 @@ jobs: private_key: ${{ secrets.TRUNK_OPEN_PR_APP_PRIVATE_KEY }} - name: Trunk Upgrade - uses: trunk-io/trunk-action/upgrade@540e7fe497a45ae76370d26d95cc249059c4ac3a + uses: trunk-io/trunk-action/upgrade@da67635060feab46c164bc130690e61864a5d13b with: arguments: -n --bleeding-edge github-token: ${{ steps.generate-token.outputs.token }} diff --git a/.github/workflows/upload_results.reusable.yaml b/.github/workflows/upload_results.reusable.yaml index 40c99007e..bd50432f3 100644 --- a/.github/workflows/upload_results.reusable.yaml +++ b/.github/workflows/upload_results.reusable.yaml @@ -60,21 +60,21 @@ jobs: - name: Retrieve Test Outputs ubuntu id: download-ubuntu - uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4 + uses: actions/download-artifact@8caf195ad4b1dee92908e23f56eeb0696f1dd42d # v4.1.5 continue-on-error: true with: name: ${{ inputs.results-prefix }}ubuntu-latest-test-results - name: Retrieve Test Outputs macOS id: download-macos - uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4 + uses: actions/download-artifact@8caf195ad4b1dee92908e23f56eeb0696f1dd42d # v4.1.5 continue-on-error: true with: name: ${{ inputs.results-prefix }}macos-latest-test-results - name: Retrieve Test Outputs Windows id: download-windows - uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4 + uses: actions/download-artifact@8caf195ad4b1dee92908e23f56eeb0696f1dd42d # v4.1.5 continue-on-error: true with: name: ${{ inputs.results-prefix }}windows-latest-test-results @@ -96,7 +96,7 @@ jobs: echo "::endgroup::" - name: Slack Notification For Missing Artifacts - uses: slackapi/slack-github-action@6c661ce58804a1a20f6dc5fbee7f0381b469e001 # v1.25.0 + uses: slackapi/slack-github-action@70cd7be8e40a46e8b0eced40b0de447bdb42f68e # v1.26.0 if: steps.download-ubuntu.outcome == 'failure' || steps.download-macos.outcome == 'failure' || steps.download-windows.outcome == 'failure' @@ -179,7 +179,7 @@ jobs: # Slack notifications - name: Slack Notification For Failures - uses: slackapi/slack-github-action@6c661ce58804a1a20f6dc5fbee7f0381b469e001 # v1.25.0 + uses: slackapi/slack-github-action@70cd7be8e40a46e8b0eced40b0de447bdb42f68e # v1.26.0 if: always() && steps.parse.outputs.failures == 'true' with: channel-id: ${{ env.SLACK_CHANNEL_ID }} @@ -188,7 +188,7 @@ jobs: SLACK_BOT_TOKEN: ${{ secrets.TRUNKBOT_SLACK_BOT_TOKEN }} - name: Slack Notification For Staging Upload Failure - uses: slackapi/slack-github-action@6c661ce58804a1a20f6dc5fbee7f0381b469e001 # v1.25.0 + uses: slackapi/slack-github-action@70cd7be8e40a46e8b0eced40b0de447bdb42f68e # v1.26.0 if: inputs.upload-validated-versions == true && steps.upload-staging.outcome == 'failure' with: channel-id: ${{ env.SLACK_CHANNEL_ID }} @@ -209,7 +209,7 @@ jobs: SLACK_BOT_TOKEN: ${{ secrets.TRUNKBOT_SLACK_BOT_TOKEN }} - name: Slack Notification For Prod Upload Failure - uses: slackapi/slack-github-action@6c661ce58804a1a20f6dc5fbee7f0381b469e001 # v1.25.0 + uses: slackapi/slack-github-action@70cd7be8e40a46e8b0eced40b0de447bdb42f68e # v1.26.0 if: inputs.upload-validated-versions == true && steps.upload-prod.outcome == 'failure' with: channel-id: ${{ env.SLACK_CHANNEL_ID }} From 6dc58bc66df7c060b04a88c9b0ac150cbbf84401 Mon Sep 17 00:00:00 2001 From: "trunk-open-pr-bot[bot]" <131314627+trunk-open-pr-bot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 19:14:44 -0700 Subject: [PATCH 34/38] Upgrade trunk to 1.21.1-beta.43 (#748) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Trunk](https://static.trunk.io/assets/trunk_action_upgrade_banner.png)](https://trunk.io) cli upgraded: 1.21.1-beta.20 → 1.21.1-beta.43 2 tools were upgraded: - clangd 17.0.3 → 18.1.3 - clangd-indexing-tools 17.0.3 → 18.1.3 This PR was generated by the [Trunk Action]. For more info, see our [docs] or reach out on [Slack]. [Trunk Action]: https://github.com/trunk-io/trunk-action [docs]: https://docs.trunk.io [Slack]: https://slack.trunk.io/ Co-authored-by: TylerJang27 <42743566+TylerJang27@users.noreply.github.com> --- .trunk/trunk.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index 4638cf0ef..2560edf1d 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -2,7 +2,7 @@ version: 0.1 # version used for local trunk runs and testing cli: - version: 1.21.1-beta.20 + version: 1.21.1-beta.43 shell_hooks: enforce: true @@ -79,8 +79,8 @@ actions: - tool-test-helper tools: enabled: - - clangd-indexing-tools@17.0.3 - - clangd@17.0.3 + - clangd-indexing-tools@18.1.3 + - clangd@18.1.3 runtimes: # expose shims in .trunk/tools - node From 3fe6dc6d24532d8935fed3a8c7d3aad3eddfd6b7 Mon Sep 17 00:00:00 2001 From: Yu Ishikawa Date: Wed, 24 Apr 2024 06:23:02 +0900 Subject: [PATCH 35/38] Not suggest terrascan (#744) terrascan is no longer actively maintained. So, it would be good not to suggest even if related files exist. --------- Co-authored-by: Tyler Jang --- linters/terrascan/plugin.yaml | 3 ++- tests/repo_tests/config_check.test.ts | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/linters/terrascan/plugin.yaml b/linters/terrascan/plugin.yaml index b11b9db38..e166ee074 100644 --- a/linters/terrascan/plugin.yaml +++ b/linters/terrascan/plugin.yaml @@ -22,7 +22,8 @@ lint: - name: terrascan tools: [terrascan] known_good_version: 1.18.1 - suggest_if: files_present + # terrascan does not support some modern terraform syntax. Don't auto-recommend. + suggest_if: never commands: - name: lint output: sarif diff --git a/tests/repo_tests/config_check.test.ts b/tests/repo_tests/config_check.test.ts index 725f97f95..d2b964c96 100644 --- a/tests/repo_tests/config_check.test.ts +++ b/tests/repo_tests/config_check.test.ts @@ -165,7 +165,6 @@ describe("Global config health check", () => { "shfmt", "svgo", "taplo", - "terrascan", "tflint", "trivy", "trufflehog", From 40b2af773dfd3d08b3b9aeb51ba07099492048e7 Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Tue, 23 Apr 2024 15:53:23 -0700 Subject: [PATCH 36/38] Add regal snapshot (#754) Handle column fixes from [release](https://github.com/StyraInc/regal/releases/tag/v0.21.0) --- .../test_data/regal_v0.21.0_basic.check.shot | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 linters/regal/test_data/regal_v0.21.0_basic.check.shot diff --git a/linters/regal/test_data/regal_v0.21.0_basic.check.shot b/linters/regal/test_data/regal_v0.21.0_basic.check.shot new file mode 100644 index 000000000..1eeb83fbf --- /dev/null +++ b/linters/regal/test_data/regal_v0.21.0_basic.check.shot @@ -0,0 +1,75 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Testing linter regal test basic 1`] = ` +{ + "issues": [ + { + "code": "opa-fmt", + "column": "1", + "file": "test_data/basic.in.rego", + "issueClass": "ISSUE_CLASS_EXISTING", + "level": "LEVEL_HIGH", + "line": "1", + "linter": "regal", + "message": "File should be formatted with \`opa fmt\`", + "targetType": "rego", + }, + { + "code": "prefer-snake-case", + "column": "1", + "file": "test_data/basic.in.rego", + "issueClass": "ISSUE_CLASS_EXISTING", + "level": "LEVEL_HIGH", + "line": "12", + "linter": "regal", + "message": "Prefer snake_case for names", + "targetType": "rego", + }, + { + "code": "non-raw-regex-pattern", + "column": "27", + "file": "test_data/basic.in.rego", + "issueClass": "ISSUE_CLASS_EXISTING", + "level": "LEVEL_HIGH", + "line": "12", + "linter": "regal", + "message": "Use raw strings for regex patterns", + "targetType": "rego", + }, + { + "code": "use-assignment-operator", + "column": "15", + "file": "test_data/basic.in.rego", + "issueClass": "ISSUE_CLASS_EXISTING", + "level": "LEVEL_HIGH", + "line": "5", + "linter": "regal", + "message": "Prefer := over = for assignment", + "targetType": "rego", + }, + ], + "lintActions": [ + { + "command": "lint", + "fileGroupName": "rego", + "linter": "regal", + "paths": [ + "test_data/basic.in.rego", + ], + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "lint", + "fileGroupName": "rego", + "linter": "regal", + "paths": [ + "test_data/basic.in.rego", + ], + "upstream": true, + "verb": "TRUNK_VERB_CHECK", + }, + ], + "taskFailures": [], + "unformattedFiles": [], +} +`; From a45674be51564acb63466fd079a5a5f8d54d0d11 Mon Sep 17 00:00:00 2001 From: Lauri Takacsi Date: Wed, 24 Apr 2024 09:58:33 -0700 Subject: [PATCH 37/38] Write descriptions for each linter (#751) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A very tedious task; aided by grabbing slogans off of linter websites + GitHub copilot. The variation in style is intentional. Let me know what your thoughts are. Screenshot 2024-04-19 at 12 36 38 PM --- linters/actionlint/plugin.yaml | 1 + linters/ansible-lint/plugin.yaml | 1 + linters/autopep8/plugin.yaml | 1 + linters/bandit/plugin.yaml | 1 + linters/biome/plugin.yaml | 1 + linters/black/plugin.yaml | 1 + linters/brakeman/plugin.yaml | 1 + linters/buf/plugin.yaml | 3 +++ linters/buildifier/plugin.yaml | 1 + linters/cfnlint/plugin.yaml | 1 + linters/checkov/plugin.yaml | 1 + linters/circleci/plugin.yaml | 1 + linters/clang-format/plugin.yaml | 1 + linters/clang-tidy/plugin.yaml | 1 + linters/clippy/plugin.yaml | 1 + linters/cmake-format/plugin.yaml | 1 + linters/codespell/plugin.yaml | 1 + linters/cspell/plugin.yaml | 1 + linters/cue-fmt/plugin.yaml | 1 + linters/dart/plugin.yaml | 1 + linters/deno/plugin.yaml | 1 + linters/detekt/plugin.yaml | 3 +++ linters/djlint/plugin.yaml | 1 + linters/dotenv-linter/plugin.yaml | 1 + linters/dotnet-format/plugin.yaml | 1 + linters/dustilock/plugin.yaml | 1 + linters/eslint/plugin.yaml | 1 + linters/flake8/plugin.yaml | 1 + linters/git-diff-check/plugin.yaml | 1 + linters/gitleaks/plugin.yaml | 1 + linters/gofmt/plugin.yaml | 1 + linters/gofumpt/plugin.yaml | 1 + linters/goimports/plugin.yaml | 1 + linters/gokart/plugin.yaml | 1 + linters/golangci-lint/plugin.yaml | 1 + linters/golines/plugin.yaml | 1 + linters/google-java-format/plugin.yaml | 1 + linters/graphql-schema-linter/plugin.yaml | 1 + linters/hadolint/plugin.yaml | 1 + linters/haml-lint/plugin.yaml | 1 + linters/isort/plugin.yaml | 1 + linters/iwyu/plugin.yaml | 1 + linters/ktlint/plugin.yaml | 1 + linters/kube-linter/plugin.yaml | 1 + linters/markdown-link-check/plugin.yaml | 1 + linters/markdown-table-prettify/plugin.yaml | 1 + linters/markdownlint/plugin.yaml | 1 + linters/mypy/plugin.yaml | 1 + linters/nancy/plugin.yaml | 1 + linters/nixpkgs-fmt/plugin.yaml | 1 + linters/opa/plugin.yaml | 1 + linters/osv-scanner/plugin.yaml | 1 + linters/oxipng/plugin.yaml | 1 + linters/perlcritic/plugin.yaml | 1 + linters/perltidy/plugin.yaml | 1 + linters/phpstan/plugin.yaml | 1 + linters/pmd/plugin.yaml | 1 + linters/pragma-once/plugin.yaml | 1 + linters/pre-commit-hooks/plugin.yaml | 1 + linters/prettier/plugin.yaml | 1 + linters/prisma/plugin.yaml | 1 + linters/psscriptanalyzer/plugin.yaml | 1 + linters/pylint/plugin.yaml | 1 + linters/pyright/plugin.yaml | 1 + linters/regal/plugin.yaml | 1 + linters/remark-lint/plugin.yaml | 1 + linters/renovate/plugin.yaml | 1 + linters/rome/plugin.yaml | 1 + linters/rubocop/plugin.yaml | 1 + linters/ruff/plugin.yaml | 1 + linters/rufo/plugin.yaml | 1 + linters/rustfmt/plugin.yaml | 1 + linters/scalafmt/plugin.yaml | 1 + linters/semgrep/plugin.yaml | 1 + linters/shellcheck/plugin.yaml | 1 + linters/shfmt/plugin.yaml | 1 + linters/sourcery/plugin.yaml | 1 + linters/sql-formatter/plugin.yaml | 1 + linters/sqlfluff/plugin.yaml | 1 + linters/sqlfmt/plugin.yaml | 1 + linters/standardrb/plugin.yaml | 1 + linters/stringslint/plugin.yaml | 1 + linters/stylelint/plugin.yaml | 1 + linters/stylua/plugin.yaml | 1 + linters/svgo/plugin.yaml | 1 + linters/swiftformat/plugin.yaml | 1 + linters/swiftlint/plugin.yaml | 1 + linters/taplo/plugin.yaml | 1 + linters/terraform/plugin.yaml | 1 + linters/terragrunt/plugin.yaml | 1 + linters/terrascan/plugin.yaml | 1 + linters/tflint/plugin.yaml | 1 + linters/tfsec/plugin.yaml | 1 + linters/tofu/plugin.yaml | 1 + linters/trivy/plugin.yaml | 1 + linters/trufflehog/plugin.yaml | 1 + linters/trunk-toolbox/plugin.yaml | 1 + linters/txtpbfmt/plugin.yaml | 1 + linters/yamllint/plugin.yaml | 1 + linters/yapf/plugin.yaml | 1 + plugin.yaml | 2 +- tests/repo_tests/config_check.test.ts | 2 +- 102 files changed, 106 insertions(+), 2 deletions(-) diff --git a/linters/actionlint/plugin.yaml b/linters/actionlint/plugin.yaml index 4b2c0a170..54eae807a 100644 --- a/linters/actionlint/plugin.yaml +++ b/linters/actionlint/plugin.yaml @@ -29,6 +29,7 @@ lint: files: [github-workflow] # Custom parser/trigger type defined in the trunk cli. tools: [actionlint] + description: Verify your Github workflows commands: - name: lint output: actionlint diff --git a/linters/ansible-lint/plugin.yaml b/linters/ansible-lint/plugin.yaml index bcb557669..ca71524ac 100644 --- a/linters/ansible-lint/plugin.yaml +++ b/linters/ansible-lint/plugin.yaml @@ -14,6 +14,7 @@ lint: supported_platforms: [linux, macos] # No files as this linter must be triggered manually. files: [] + description: Improve ansible playbooks commands: - name: lint version: ">=6.1.0" diff --git a/linters/autopep8/plugin.yaml b/linters/autopep8/plugin.yaml index 97bcffcbd..2ea2c6e61 100644 --- a/linters/autopep8/plugin.yaml +++ b/linters/autopep8/plugin.yaml @@ -11,6 +11,7 @@ lint: definitions: - name: autopep8 files: [python] + description: A python formatter commands: - name: format output: rewrite diff --git a/linters/bandit/plugin.yaml b/linters/bandit/plugin.yaml index 16ec14d7b..81a660d66 100644 --- a/linters/bandit/plugin.yaml +++ b/linters/bandit/plugin.yaml @@ -13,6 +13,7 @@ lint: tools: [bandit] suggest_if: files_present direct_configs: [.bandit] + description: A security linter for Python commands: - name: lint # Custom parser type defined in the trunk cli to handle bandit's JSON output. diff --git a/linters/biome/plugin.yaml b/linters/biome/plugin.yaml index 776da91cf..5a7410168 100644 --- a/linters/biome/plugin.yaml +++ b/linters/biome/plugin.yaml @@ -15,6 +15,7 @@ lint: - typescript - javascript - json + description: A static analyzer for web projects commands: - name: lint output: regex diff --git a/linters/black/plugin.yaml b/linters/black/plugin.yaml index 698e4b163..329fb2db1 100644 --- a/linters/black/plugin.yaml +++ b/linters/black/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: - name: black files: [python, jupyter, python-interface] + description: Uncompromising python formatter commands: - name: format output: rewrite diff --git a/linters/brakeman/plugin.yaml b/linters/brakeman/plugin.yaml index 452fb1eb4..ec97780f8 100644 --- a/linters/brakeman/plugin.yaml +++ b/linters/brakeman/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: - name: brakeman files: [ruby] + description: A vulnerability scanner for Ruby commands: - name: lint # 5.0.0 introduced the sarif output format. diff --git a/linters/buf/plugin.yaml b/linters/buf/plugin.yaml index 492c2320d..813a3d97b 100644 --- a/linters/buf/plugin.yaml +++ b/linters/buf/plugin.yaml @@ -32,6 +32,7 @@ lint: files: [proto] download: buf suggest_if: never + description: Formatter for Protobuf commands: - name: format output: rewrite @@ -62,6 +63,7 @@ lint: - name: buf-lint files: [proto] download: buf + description: Accelerate Protobuf development with Buf commands: - name: lint output: buf @@ -90,6 +92,7 @@ lint: files: [proto] download: buf suggest_if: never + description: Check for breaking Protobuf API changes commands: - name: lint output: buf diff --git a/linters/buildifier/plugin.yaml b/linters/buildifier/plugin.yaml index 897faa943..ddfb2f793 100644 --- a/linters/buildifier/plugin.yaml +++ b/linters/buildifier/plugin.yaml @@ -43,6 +43,7 @@ lint: - name: buildifier files: [starlark, bazel-build, bazel-workspace] tools: [buildifier] + description: Formatter for Bazel files commands: - name: fix run: buildifier --lint=fix --warnings=all "${target}" diff --git a/linters/cfnlint/plugin.yaml b/linters/cfnlint/plugin.yaml index 5def28df7..0d2a2d4f5 100644 --- a/linters/cfnlint/plugin.yaml +++ b/linters/cfnlint/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: - name: cfnlint files: [cloudformation] + description: Checks Cloudformation files commands: - name: lint # Custom parser type defined in the trunk cli to handle cfnlint's JSON output and triggers. diff --git a/linters/checkov/plugin.yaml b/linters/checkov/plugin.yaml index eadb751de..62c18cd7f 100644 --- a/linters/checkov/plugin.yaml +++ b/linters/checkov/plugin.yaml @@ -11,6 +11,7 @@ lint: - name: checkov files: [terraform, cloudformation, docker, yaml, json] tools: [checkov] + description: Finds security issues in IaC files commands: - name: lint # on Windows, we need to make sure 'checkov' resolves to 'checkov.cmd' diff --git a/linters/circleci/plugin.yaml b/linters/circleci/plugin.yaml index 3b568aa73..4743e450c 100644 --- a/linters/circleci/plugin.yaml +++ b/linters/circleci/plugin.yaml @@ -11,6 +11,7 @@ lint: tools: [circleci] known_good_version: 0.1.28811 suggest_if: never + description: Validates CircleCI configuration files commands: - name: validate platforms: [windows] diff --git a/linters/clang-format/plugin.yaml b/linters/clang-format/plugin.yaml index a874492fc..518a4fa3d 100644 --- a/linters/clang-format/plugin.yaml +++ b/linters/clang-format/plugin.yaml @@ -33,6 +33,7 @@ lint: definitions: - name: clang-format supported_platforms: [linux, macos] + description: Formatter for C/C++ and Protobuf files: [c/c++, cuda, proto] commands: - name: format diff --git a/linters/clang-tidy/plugin.yaml b/linters/clang-tidy/plugin.yaml index 65535d29f..80ac4e5e1 100644 --- a/linters/clang-tidy/plugin.yaml +++ b/linters/clang-tidy/plugin.yaml @@ -34,6 +34,7 @@ lint: - name: clang-tidy supported_platforms: [linux, macos] files: [c/c++-source] + description: Static Analyzer for C/C++ commands: - name: lint output: llvm diff --git a/linters/clippy/plugin.yaml b/linters/clippy/plugin.yaml index e1ee7469a..705fe9179 100644 --- a/linters/clippy/plugin.yaml +++ b/linters/clippy/plugin.yaml @@ -9,6 +9,7 @@ lint: - name: clippy files: [rust] download: rust + description: Catch common mistakes and improve your Rust code. commands: - name: lint # Custom parser type defined in the trunk cli to handle clippy's JSON output. diff --git a/linters/cmake-format/plugin.yaml b/linters/cmake-format/plugin.yaml index b7775bab8..0f420e744 100644 --- a/linters/cmake-format/plugin.yaml +++ b/linters/cmake-format/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: - name: cmake-format files: [cmake] + description: A formatter for cmake files commands: - name: fix formatter: true diff --git a/linters/codespell/plugin.yaml b/linters/codespell/plugin.yaml index 178e9e27c..6aca0b572 100644 --- a/linters/codespell/plugin.yaml +++ b/linters/codespell/plugin.yaml @@ -12,6 +12,7 @@ lint: files: [ALL] direct_configs: [.codespellrc] suggest_if: config_present + description: Check for common misspellings in your code affects_cache: - pyproject.toml - setup.cfg diff --git a/linters/cspell/plugin.yaml b/linters/cspell/plugin.yaml index e4e9737e0..7c39aef41 100644 --- a/linters/cspell/plugin.yaml +++ b/linters/cspell/plugin.yaml @@ -11,6 +11,7 @@ lint: - name: cspell files: [ALL] tools: [cspell] + description: Check for spelling mistakes in your code commands: - name: lint output: regex diff --git a/linters/cue-fmt/plugin.yaml b/linters/cue-fmt/plugin.yaml index 0d37ba982..bcb8b4933 100644 --- a/linters/cue-fmt/plugin.yaml +++ b/linters/cue-fmt/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: - name: cue-fmt files: [cue] + description: A formatter for cue files commands: - name: format output: rewrite diff --git a/linters/dart/plugin.yaml b/linters/dart/plugin.yaml index 638db74f0..425990988 100644 --- a/linters/dart/plugin.yaml +++ b/linters/dart/plugin.yaml @@ -30,6 +30,7 @@ lint: files: [dart] known_good_version: 3.2.6 suggest_if: never + description: Lints and formats dart code affects_cache: - analysis_options.yaml - pubspec.yaml diff --git a/linters/deno/plugin.yaml b/linters/deno/plugin.yaml index 045a242c1..e94447cba 100644 --- a/linters/deno/plugin.yaml +++ b/linters/deno/plugin.yaml @@ -3,6 +3,7 @@ lint: definitions: - name: deno files: [javascript, typescript, markdown, json] + description: A formatter for web framework code commands: - name: format output: rewrite diff --git a/linters/detekt/plugin.yaml b/linters/detekt/plugin.yaml index 1e135aa5c..a4d4dc911 100644 --- a/linters/detekt/plugin.yaml +++ b/linters/detekt/plugin.yaml @@ -11,6 +11,7 @@ lint: - name: detekt files: [kotlin] download: detekt + description: Static code analysis for Kotlin commands: - name: lint platforms: [windows] @@ -45,6 +46,7 @@ lint: - name: detekt-explicit files: [kotlin] download: detekt + description: Static code analysis for Kotlin commands: - name: lint platforms: [windows] @@ -75,6 +77,7 @@ lint: - name: detekt-gradle supported_platforms: [linux, macos] files: [kotlin] + description: Static code analysis for Kotlin commands: - name: lint # Custom parser/trigger type defined in the trunk cli. diff --git a/linters/djlint/plugin.yaml b/linters/djlint/plugin.yaml index 5d9552c6c..3de172114 100644 --- a/linters/djlint/plugin.yaml +++ b/linters/djlint/plugin.yaml @@ -11,6 +11,7 @@ lint: - name: djlint files: [html] tools: [djlint] + description: HTML template linter and formatter commands: - name: lint output: regex diff --git a/linters/dotenv-linter/plugin.yaml b/linters/dotenv-linter/plugin.yaml index 0fe0b9116..cf8d04dec 100644 --- a/linters/dotenv-linter/plugin.yaml +++ b/linters/dotenv-linter/plugin.yaml @@ -33,6 +33,7 @@ lint: - name: dotenv-linter files: [dotenv] tools: [dotenv-linter] + description: Lightning-fast linter for .env files commands: - name: format output: rewrite diff --git a/linters/dotnet-format/plugin.yaml b/linters/dotnet-format/plugin.yaml index 9d9adb72a..789e8a39e 100644 --- a/linters/dotnet-format/plugin.yaml +++ b/linters/dotnet-format/plugin.yaml @@ -9,6 +9,7 @@ lint: # https://download.visualstudio.microsoft.com/download/pr/0f17575a-a6b0-4365-9b79-64db70022d23/56e0da10678e4b2cad0cba0a83a561af/dotnet-sdk-7.0.400-win-x86.zip, # but we don't support that yet. known_good_version: 7.0.400 + description: A formatter for dotnet files commands: - name: format run: dotnet format --no-restore --include ${target} diff --git a/linters/dustilock/plugin.yaml b/linters/dustilock/plugin.yaml index 8531043b4..6592c0a6d 100644 --- a/linters/dustilock/plugin.yaml +++ b/linters/dustilock/plugin.yaml @@ -11,6 +11,7 @@ lint: - name: dustilock files: [dustilock] tools: [dustilock] + description: Finds security issues in dustilock files commands: - name: scan output: regex diff --git a/linters/eslint/plugin.yaml b/linters/eslint/plugin.yaml index 29e21bc3f..1562bcb3a 100644 --- a/linters/eslint/plugin.yaml +++ b/linters/eslint/plugin.yaml @@ -11,6 +11,7 @@ lint: - name: eslint files: [typescript, javascript] tools: [eslint] + description: Find and fix problems in your TS/JS code commands: - name: lint output: eslint diff --git a/linters/flake8/plugin.yaml b/linters/flake8/plugin.yaml index bfcaffd4b..0a21e615f 100644 --- a/linters/flake8/plugin.yaml +++ b/linters/flake8/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: - name: flake8 files: [python] + description: Python style guide enforcement commands: - name: lint run: flake8 ${target} --output-file "${tmpfile}" --exit-zero diff --git a/linters/git-diff-check/plugin.yaml b/linters/git-diff-check/plugin.yaml index 64e325d9d..25d98a1be 100644 --- a/linters/git-diff-check/plugin.yaml +++ b/linters/git-diff-check/plugin.yaml @@ -3,6 +3,7 @@ lint: definitions: - name: git-diff-check files: [ALL] + description: Checks for git conflicts commands: - output: regex name: lint diff --git a/linters/gitleaks/plugin.yaml b/linters/gitleaks/plugin.yaml index 61bef5fa2..d8b2b0753 100644 --- a/linters/gitleaks/plugin.yaml +++ b/linters/gitleaks/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: - name: gitleaks files: [ALL] + description: Protect and discover secrets commands: - name: lint run: gitleaks detect --no-git --source=${target} --exit-code=101 -f sarif -r "${tmpfile}" diff --git a/linters/gofmt/plugin.yaml b/linters/gofmt/plugin.yaml index 59c1b15c6..573be13a1 100644 --- a/linters/gofmt/plugin.yaml +++ b/linters/gofmt/plugin.yaml @@ -3,6 +3,7 @@ lint: definitions: - name: gofmt files: [go] + description: A formatter for Go code commands: - name: format output: rewrite diff --git a/linters/gofumpt/plugin.yaml b/linters/gofumpt/plugin.yaml index b5be10e46..f013fa267 100644 --- a/linters/gofumpt/plugin.yaml +++ b/linters/gofumpt/plugin.yaml @@ -11,6 +11,7 @@ lint: - name: gofumpt tools: [gofumpt] files: [go] + description: An opinionated formatter for Go code commands: - name: format output: rewrite diff --git a/linters/goimports/plugin.yaml b/linters/goimports/plugin.yaml index 6fee30c74..8a39c5e02 100644 --- a/linters/goimports/plugin.yaml +++ b/linters/goimports/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: - name: goimports files: [go] + description: Removes unused imports from Go code commands: - name: format output: rewrite diff --git a/linters/gokart/plugin.yaml b/linters/gokart/plugin.yaml index 07ea8bc6b..59468e821 100644 --- a/linters/gokart/plugin.yaml +++ b/linters/gokart/plugin.yaml @@ -12,6 +12,7 @@ lint: files: [go] tools: [gokart] suggest_if: config_present + description: Checks for security issues in Go code. environment: - name: PATH list: ["${linter}"] diff --git a/linters/golangci-lint/plugin.yaml b/linters/golangci-lint/plugin.yaml index 8fd02ba83..a67f80d6c 100644 --- a/linters/golangci-lint/plugin.yaml +++ b/linters/golangci-lint/plugin.yaml @@ -13,6 +13,7 @@ lint: - name: golangci-lint files: [go] tools: [golangci-lint] + description: A powerful Go linter runner environment: - name: GOLANGCI_LINT_CACHE value: ${cachedir} diff --git a/linters/golines/plugin.yaml b/linters/golines/plugin.yaml index 5070024da..1c087ce2d 100644 --- a/linters/golines/plugin.yaml +++ b/linters/golines/plugin.yaml @@ -11,6 +11,7 @@ lint: - name: golines files: [go] tools: [golines] + description: Enforces line limits in Go commands: - name: format output: rewrite diff --git a/linters/google-java-format/plugin.yaml b/linters/google-java-format/plugin.yaml index b9902fad4..ca27a5e26 100644 --- a/linters/google-java-format/plugin.yaml +++ b/linters/google-java-format/plugin.yaml @@ -9,6 +9,7 @@ lint: - name: google-java-format files: [java] download: google-java-format.jar + description: A formatter for Java files commands: - name: format platforms: [windows] diff --git a/linters/graphql-schema-linter/plugin.yaml b/linters/graphql-schema-linter/plugin.yaml index 624dc3f56..32fee08b8 100644 --- a/linters/graphql-schema-linter/plugin.yaml +++ b/linters/graphql-schema-linter/plugin.yaml @@ -14,6 +14,7 @@ lint: tools: [graphql-schema-linter] known_good_version: 3.0.1 files: [graphql-schema] + description: Validate GraphQL Schema definitions commands: - name: lint # on Windows, we need to make sure the binary resolves to the cmd form diff --git a/linters/hadolint/plugin.yaml b/linters/hadolint/plugin.yaml index b13fe7340..e462ac52e 100644 --- a/linters/hadolint/plugin.yaml +++ b/linters/hadolint/plugin.yaml @@ -31,6 +31,7 @@ lint: - name: hadolint files: [docker] tools: [hadolint] + description: Helps you build best practice Docker images commands: - name: lint # Custom parser type defined in the trunk cli to handle hadolint's JSON output. diff --git a/linters/haml-lint/plugin.yaml b/linters/haml-lint/plugin.yaml index 213f94d2d..175ee9b7f 100644 --- a/linters/haml-lint/plugin.yaml +++ b/linters/haml-lint/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: - name: haml-lint files: [haml] + description: Keeps HAML files clean and readable commands: - name: lint # Custom parser type defined in the trunk cli to handle haml_lint's JSON output. diff --git a/linters/isort/plugin.yaml b/linters/isort/plugin.yaml index 26d8a9e1e..a630862ba 100644 --- a/linters/isort/plugin.yaml +++ b/linters/isort/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: - name: isort files: [python] + description: Sorts your Python imports commands: - name: format output: rewrite diff --git a/linters/iwyu/plugin.yaml b/linters/iwyu/plugin.yaml index ffa837a27..383de6554 100644 --- a/linters/iwyu/plugin.yaml +++ b/linters/iwyu/plugin.yaml @@ -30,6 +30,7 @@ lint: - name: include-what-you-use files: [c/c++-source] tools: [include-what-you-use] + description: Removes unused includes from C/C++ code. commands: - name: lint run_from: ${compile_command} diff --git a/linters/ktlint/plugin.yaml b/linters/ktlint/plugin.yaml index 0d4711dcd..371398932 100644 --- a/linters/ktlint/plugin.yaml +++ b/linters/ktlint/plugin.yaml @@ -12,6 +12,7 @@ lint: files: [kotlin] download: ktlint runtime: java + description: An anti-bikeshedding Kotlin linter and formatter commands: - name: format platforms: [windows] diff --git a/linters/kube-linter/plugin.yaml b/linters/kube-linter/plugin.yaml index 1a6b3c81b..d040b35fc 100644 --- a/linters/kube-linter/plugin.yaml +++ b/linters/kube-linter/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: - name: kube-linter tools: [kube-linter] + description: A static analyzer for Kubernetes files: - yaml commands: diff --git a/linters/markdown-link-check/plugin.yaml b/linters/markdown-link-check/plugin.yaml index 57507bd01..06263a2df 100644 --- a/linters/markdown-link-check/plugin.yaml +++ b/linters/markdown-link-check/plugin.yaml @@ -11,6 +11,7 @@ lint: - name: markdown-link-check files: [markdown] tools: [markdown-link-check] + description: Checks markdown files for broken links commands: - name: lint # Custom parser type defined in the trunk cli to handle markdownlint's JSON output. diff --git a/linters/markdown-table-prettify/plugin.yaml b/linters/markdown-table-prettify/plugin.yaml index 415ac73f8..a380b0a6b 100644 --- a/linters/markdown-table-prettify/plugin.yaml +++ b/linters/markdown-table-prettify/plugin.yaml @@ -9,6 +9,7 @@ tools: lint: definitions: - name: markdown-table-prettify + description: Prettify markdown tables files: [markdown] main_tool: markdown-table-prettify known_good_version: 3.6.0 diff --git a/linters/markdownlint/plugin.yaml b/linters/markdownlint/plugin.yaml index 4de8b135c..978bbdd0c 100644 --- a/linters/markdownlint/plugin.yaml +++ b/linters/markdownlint/plugin.yaml @@ -11,6 +11,7 @@ lint: - name: markdownlint files: [markdown] tools: [markdownlint] + description: A style checker and lint tool for markdown files commands: - name: lint # Custom parser type defined in the trunk cli to handle markdownlint's JSON output. diff --git a/linters/mypy/plugin.yaml b/linters/mypy/plugin.yaml index db319f832..e301908b2 100644 --- a/linters/mypy/plugin.yaml +++ b/linters/mypy/plugin.yaml @@ -9,6 +9,7 @@ tools: lint: definitions: - name: mypy + description: Static type checker for Python files: [python, python-interface] commands: - name: lint diff --git a/linters/nancy/plugin.yaml b/linters/nancy/plugin.yaml index f212c2e74..0b16031a4 100644 --- a/linters/nancy/plugin.yaml +++ b/linters/nancy/plugin.yaml @@ -21,6 +21,7 @@ lint: files: [go-lockfile] download: nancy runtime: go + description: Checks for vulnerabilities in your Go dependencies commands: - output: sarif run: sh ${plugin}/linters/nancy/run.sh diff --git a/linters/nixpkgs-fmt/plugin.yaml b/linters/nixpkgs-fmt/plugin.yaml index 6749db7ae..b5536eadf 100644 --- a/linters/nixpkgs-fmt/plugin.yaml +++ b/linters/nixpkgs-fmt/plugin.yaml @@ -6,6 +6,7 @@ lint: package: nixpkgs-fmt runtime: rust files: [nix] + description: Formatter for Nix commands: - output: rewrite run: nixpkgs-fmt ${target} diff --git a/linters/opa/plugin.yaml b/linters/opa/plugin.yaml index 56677076d..50380473e 100644 --- a/linters/opa/plugin.yaml +++ b/linters/opa/plugin.yaml @@ -27,6 +27,7 @@ lint: files: [rego] main_tool: opa known_good_version: 0.62.1 + description: Formatter for OPA files suggest_if: never commands: # TODO(Tyler): Add support for opa check command. diff --git a/linters/osv-scanner/plugin.yaml b/linters/osv-scanner/plugin.yaml index 1a414a095..66847e8f6 100644 --- a/linters/osv-scanner/plugin.yaml +++ b/linters/osv-scanner/plugin.yaml @@ -42,6 +42,7 @@ lint: files: [lockfile] tools: [osv-scanner] known_good_version: 1.3.6 + description: Checks for known vulnerabilities in your dependencies commands: - name: scan output: sarif diff --git a/linters/oxipng/plugin.yaml b/linters/oxipng/plugin.yaml index 37fd0ac50..06d173bcd 100644 --- a/linters/oxipng/plugin.yaml +++ b/linters/oxipng/plugin.yaml @@ -23,6 +23,7 @@ lint: - name: oxipng files: [png] download: oxipng + description: Optimize PNG images commands: - name: fmt output: rewrite diff --git a/linters/perlcritic/plugin.yaml b/linters/perlcritic/plugin.yaml index 2599f92cf..ec478155e 100644 --- a/linters/perlcritic/plugin.yaml +++ b/linters/perlcritic/plugin.yaml @@ -3,6 +3,7 @@ lint: definitions: - name: perlcritic supported_platforms: [linux, macos] + description: Static analysis tool for Perl commands: - output: regex success_codes: diff --git a/linters/perltidy/plugin.yaml b/linters/perltidy/plugin.yaml index d5ddf7053..bdbd6f331 100644 --- a/linters/perltidy/plugin.yaml +++ b/linters/perltidy/plugin.yaml @@ -3,6 +3,7 @@ lint: definitions: - name: perltidy supported_platforms: [linux, macos] + description: Formatter for Perl commands: - output: rewrite success_codes: diff --git a/linters/phpstan/plugin.yaml b/linters/phpstan/plugin.yaml index 289e2b61e..e2f117e2a 100644 --- a/linters/phpstan/plugin.yaml +++ b/linters/phpstan/plugin.yaml @@ -14,6 +14,7 @@ lint: - name: phpstan main_tool: phpstan known_good_version: 1.10.58 + description: PHP Static Analysis Tool commands: - run: phpstan analyze "${target}" --error-format=json --level=9 output: sarif diff --git a/linters/pmd/plugin.yaml b/linters/pmd/plugin.yaml index e85573203..64ca2214b 100644 --- a/linters/pmd/plugin.yaml +++ b/linters/pmd/plugin.yaml @@ -13,6 +13,7 @@ lint: definitions: - name: pmd download: pmd + description: Static code analysis for Java and Apex commands: - name: lint-apex version: ">=7.0.0" diff --git a/linters/pragma-once/plugin.yaml b/linters/pragma-once/plugin.yaml index 249af1a37..b4e65c0c5 100644 --- a/linters/pragma-once/plugin.yaml +++ b/linters/pragma-once/plugin.yaml @@ -4,6 +4,7 @@ lint: # Inserts "#pragma once" if it wasn't there - name: pragma-once files: [c-header, c++-header] + description: Enforces "#pragma once" in header files commands: - name: format platforms: [windows] diff --git a/linters/pre-commit-hooks/plugin.yaml b/linters/pre-commit-hooks/plugin.yaml index 1dcc86fd7..49b60027c 100644 --- a/linters/pre-commit-hooks/plugin.yaml +++ b/linters/pre-commit-hooks/plugin.yaml @@ -5,6 +5,7 @@ lint: known_good_version: 4.4.0 runtime: python package: pre-commit-hooks + description: A collection of pre-commit tools for Python suggest_if: never environment: - name: PATH diff --git a/linters/prettier/plugin.yaml b/linters/prettier/plugin.yaml index 452e13f57..f01f16da8 100644 --- a/linters/prettier/plugin.yaml +++ b/linters/prettier/plugin.yaml @@ -21,6 +21,7 @@ lint: - javascript - graphql - prettier_supported_configs + description: A universal formatter commands: - name: format output: sarif diff --git a/linters/prisma/plugin.yaml b/linters/prisma/plugin.yaml index 1aceb385f..1b1ee5a48 100644 --- a/linters/prisma/plugin.yaml +++ b/linters/prisma/plugin.yaml @@ -6,6 +6,7 @@ lint: files: [prisma] known_good_version: 4.16.1 suggest_if: never + description: A Prisma formatter commands: - name: format platforms: [windows] diff --git a/linters/psscriptanalyzer/plugin.yaml b/linters/psscriptanalyzer/plugin.yaml index 3b47d1091..712730a33 100644 --- a/linters/psscriptanalyzer/plugin.yaml +++ b/linters/psscriptanalyzer/plugin.yaml @@ -30,6 +30,7 @@ lint: files: [powershell] main_tool: psscriptanalyzer tools: [converttosarif, pwsh] + description: Linter for PowerShell scripts commands: - name: Invoke-ScriptAnalyzer run: pwsh -f ${cwd}/lint.ps1 -FilePath ${target} -OutputPath ${tmpfile} diff --git a/linters/pylint/plugin.yaml b/linters/pylint/plugin.yaml index fa6163105..def3cfe4b 100644 --- a/linters/pylint/plugin.yaml +++ b/linters/pylint/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: - name: pylint files: [python] + description: Static code analysis for Python commands: - name: lint # Custom parser type defined in the trunk cli to handle pylint's JSON output. diff --git a/linters/pyright/plugin.yaml b/linters/pyright/plugin.yaml index c317b4fba..9939a4d07 100644 --- a/linters/pyright/plugin.yaml +++ b/linters/pyright/plugin.yaml @@ -11,6 +11,7 @@ lint: - name: pyright files: [python] suggest_if: config_present + description: Static type checker for Python commands: - name: lint output: sarif diff --git a/linters/regal/plugin.yaml b/linters/regal/plugin.yaml index 767f9c10d..ff0dfc4f1 100644 --- a/linters/regal/plugin.yaml +++ b/linters/regal/plugin.yaml @@ -27,6 +27,7 @@ lint: main_tool: regal known_good_version: 0.18.0 suggest_if: config_present + description: Linter for Rego files direct_configs: - .regal/config.yaml commands: diff --git a/linters/remark-lint/plugin.yaml b/linters/remark-lint/plugin.yaml index 250cbd66e..3f91593e4 100644 --- a/linters/remark-lint/plugin.yaml +++ b/linters/remark-lint/plugin.yaml @@ -4,6 +4,7 @@ lint: - name: remark-lint supported_platforms: [linux, macos] files: [markdown] + description: A markdown linter and formatter package: remark-cli extra_packages: - remark-preset-lint-consistent diff --git a/linters/renovate/plugin.yaml b/linters/renovate/plugin.yaml index d61bbcefb..f3b7d5b62 100644 --- a/linters/renovate/plugin.yaml +++ b/linters/renovate/plugin.yaml @@ -11,6 +11,7 @@ lint: - name: renovate files: [renovate-config] tools: [renovate] + description: Validates Renovate configuration files commands: - name: validate platforms: [windows] diff --git a/linters/rome/plugin.yaml b/linters/rome/plugin.yaml index 6b7b6baa3..46ece471b 100644 --- a/linters/rome/plugin.yaml +++ b/linters/rome/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: # No longer maintained. Succeeded by the biome linter+formatter - name: rome + description: A static analyzer for web projects files: - typescript - javascript diff --git a/linters/rubocop/plugin.yaml b/linters/rubocop/plugin.yaml index 430a444af..5c449bbd1 100644 --- a/linters/rubocop/plugin.yaml +++ b/linters/rubocop/plugin.yaml @@ -2,6 +2,7 @@ version: 0.1 lint: definitions: - name: rubocop + description: A Ruby static code analyzer and formatter files: [ruby, gemspec] direct_configs: [.rubocop.yml] suggest_if: config_present diff --git a/linters/ruff/plugin.yaml b/linters/ruff/plugin.yaml index 51fcf5f71..ad2d5b9ad 100644 --- a/linters/ruff/plugin.yaml +++ b/linters/ruff/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: - name: ruff files: [python, python-interface] + description: A Python linter and formatter commands: - name: lint # As of ruff v0.1.0, --format is replaced with --output-format diff --git a/linters/rufo/plugin.yaml b/linters/rufo/plugin.yaml index 9fb8a3875..053810ab4 100644 --- a/linters/rufo/plugin.yaml +++ b/linters/rufo/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: - name: rufo files: [ruby] + description: A Ruby formatter commands: - name: format output: rewrite diff --git a/linters/rustfmt/plugin.yaml b/linters/rustfmt/plugin.yaml index b3408ebde..dca9105b1 100644 --- a/linters/rustfmt/plugin.yaml +++ b/linters/rustfmt/plugin.yaml @@ -4,6 +4,7 @@ lint: - name: rustfmt files: [rust] download: rust + description: A Rust formatter commands: - name: format output: rewrite diff --git a/linters/scalafmt/plugin.yaml b/linters/scalafmt/plugin.yaml index 2f4c47a0e..a1ce10dcb 100644 --- a/linters/scalafmt/plugin.yaml +++ b/linters/scalafmt/plugin.yaml @@ -28,6 +28,7 @@ lint: tools: [scalafmt] direct_configs: [.scalafmt.conf] suggest_if: config_present + description: A Scala formatter commands: - name: format output: rewrite diff --git a/linters/semgrep/plugin.yaml b/linters/semgrep/plugin.yaml index cd752a03d..9a0af399a 100644 --- a/linters/semgrep/plugin.yaml +++ b/linters/semgrep/plugin.yaml @@ -9,6 +9,7 @@ tools: lint: definitions: - name: semgrep + description: Find bugs and enforce code standards supported_platforms: [linux, macos] files: [ALL] tools: [semgrep] diff --git a/linters/shellcheck/plugin.yaml b/linters/shellcheck/plugin.yaml index fea586b63..712e96ccf 100644 --- a/linters/shellcheck/plugin.yaml +++ b/linters/shellcheck/plugin.yaml @@ -31,6 +31,7 @@ lint: - name: shellcheck files: [shell] tools: [shellcheck] + description: Finds bugs in your shell scripts commands: - name: lint # Custom parser type defined in the trunk cli to handle rubocop's JSON output. diff --git a/linters/shfmt/plugin.yaml b/linters/shfmt/plugin.yaml index f0004aba8..efbb30e64 100644 --- a/linters/shfmt/plugin.yaml +++ b/linters/shfmt/plugin.yaml @@ -11,6 +11,7 @@ lint: definitions: - name: shfmt files: [shell] + description: A shell formatter commands: - name: format output: shfmt diff --git a/linters/sourcery/plugin.yaml b/linters/sourcery/plugin.yaml index cd0646c2e..9f83d313f 100644 --- a/linters/sourcery/plugin.yaml +++ b/linters/sourcery/plugin.yaml @@ -3,6 +3,7 @@ lint: definitions: - name: sourcery files: [python] + description: Static analyzer for Python commands: - name: lint platforms: [linux, macos] diff --git a/linters/sql-formatter/plugin.yaml b/linters/sql-formatter/plugin.yaml index ec5de1e85..0c7424b09 100644 --- a/linters/sql-formatter/plugin.yaml +++ b/linters/sql-formatter/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: - name: sql-formatter files: [sql] + description: A SQL formatter commands: - output: rewrite # sql-formatter does not autodetect dialect, so this may not be sufficient for all setups diff --git a/linters/sqlfluff/plugin.yaml b/linters/sqlfluff/plugin.yaml index f4a7a12d3..139725a2c 100644 --- a/linters/sqlfluff/plugin.yaml +++ b/linters/sqlfluff/plugin.yaml @@ -11,6 +11,7 @@ lint: - name: sqlfluff files: [sql, sql-j2, dml, ddl] tools: [sqlfluff] + description: A dialect-flexible and configurable SQL linter known_good_version: 1.4.5 direct_configs: - .sqlfluff diff --git a/linters/sqlfmt/plugin.yaml b/linters/sqlfmt/plugin.yaml index a3cffcaac..8a62627e0 100644 --- a/linters/sqlfmt/plugin.yaml +++ b/linters/sqlfmt/plugin.yaml @@ -11,6 +11,7 @@ lint: - name: sqlfmt files: [sql, sql-j2] tools: [sqlfmt] + description: A SQL formatter known_good_version: 0.16.0 # trunk-ignore(yamllint/quoted-strings): see https://github.com/adrienverge/yamllint/issues/516 extra_packages: ["shandy-sqlfmt[jinjafmt]"] diff --git a/linters/standardrb/plugin.yaml b/linters/standardrb/plugin.yaml index e6ba71d25..d1efd3723 100644 --- a/linters/standardrb/plugin.yaml +++ b/linters/standardrb/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: - name: standardrb files: [ruby, gemspec] + description: Ruby's bikeshed-proof linter and formatter commands: - name: lint # Custom parser type defined in the trunk cli to handle rubocop's JSON output. diff --git a/linters/stringslint/plugin.yaml b/linters/stringslint/plugin.yaml index 2bcdb5fd2..b4f5d7123 100644 --- a/linters/stringslint/plugin.yaml +++ b/linters/stringslint/plugin.yaml @@ -23,6 +23,7 @@ lint: - xib - storyboard tools: [stringslint] + description: Ensures localized strings are complete and never unused commands: - name: lint output: regex diff --git a/linters/stylelint/plugin.yaml b/linters/stylelint/plugin.yaml index a1c18ab6e..d33e7640d 100644 --- a/linters/stylelint/plugin.yaml +++ b/linters/stylelint/plugin.yaml @@ -11,6 +11,7 @@ lint: - name: stylelint files: [css, sass] tools: [stylelint] + description: Over 100 built-in rules for modern CSS commands: - name: lint version: ">=16.0.0" diff --git a/linters/stylua/plugin.yaml b/linters/stylua/plugin.yaml index 5089789eb..9e84c4cae 100644 --- a/linters/stylua/plugin.yaml +++ b/linters/stylua/plugin.yaml @@ -22,6 +22,7 @@ lint: - name: stylua files: [lua] tools: [stylua] + description: An opinionated Lua formatter commands: - name: format output: rewrite diff --git a/linters/svgo/plugin.yaml b/linters/svgo/plugin.yaml index 7f9f2aa8f..e735fd124 100644 --- a/linters/svgo/plugin.yaml +++ b/linters/svgo/plugin.yaml @@ -11,6 +11,7 @@ lint: # while svgo could be a formatter, it is optimizing, not formatting, so it's more intuitive to run on `trunk check` - name: svgo files: [svg] + description: Optimize SVG files commands: - name: fmt output: rewrite diff --git a/linters/swiftformat/plugin.yaml b/linters/swiftformat/plugin.yaml index 0277ae183..0b42f6429 100644 --- a/linters/swiftformat/plugin.yaml +++ b/linters/swiftformat/plugin.yaml @@ -17,6 +17,7 @@ lint: - name: swiftformat files: [swift] tools: [swiftformat] + description: Formatter for Swift commands: - name: format output: rewrite diff --git a/linters/swiftlint/plugin.yaml b/linters/swiftlint/plugin.yaml index a5b462798..4191c696f 100644 --- a/linters/swiftlint/plugin.yaml +++ b/linters/swiftlint/plugin.yaml @@ -15,6 +15,7 @@ tools: lint: definitions: - name: swiftlint + description: Enforces Swift style and conventions files: - swift tools: [swiftlint] diff --git a/linters/taplo/plugin.yaml b/linters/taplo/plugin.yaml index 389fa5b86..06742af7a 100644 --- a/linters/taplo/plugin.yaml +++ b/linters/taplo/plugin.yaml @@ -79,6 +79,7 @@ lint: - name: taplo files: [toml] tools: [taplo] + description: Validate and format TOML files commands: - name: lint # Custom parser type defined in the trunk cli to handle taplo's output. diff --git a/linters/terraform/plugin.yaml b/linters/terraform/plugin.yaml index 20bbf4add..adf728c2d 100644 --- a/linters/terraform/plugin.yaml +++ b/linters/terraform/plugin.yaml @@ -4,6 +4,7 @@ lint: - name: terraform files: [terraform] tools: [terraform] + description: Validate and format terraform files commands: - name: validate # Custom parser type defined in the trunk cli to handle terraform's JSON output. diff --git a/linters/terragrunt/plugin.yaml b/linters/terragrunt/plugin.yaml index ff7c032c0..6aab17a1f 100644 --- a/linters/terragrunt/plugin.yaml +++ b/linters/terragrunt/plugin.yaml @@ -24,6 +24,7 @@ lint: definitions: - name: terragrunt tools: [terragrunt] + description: Maintain HCL files in a canonical format known_good_version: 0.45.8 files: [hcl] suggest_if: never diff --git a/linters/terrascan/plugin.yaml b/linters/terrascan/plugin.yaml index e166ee074..30c4c8b98 100644 --- a/linters/terrascan/plugin.yaml +++ b/linters/terrascan/plugin.yaml @@ -22,6 +22,7 @@ lint: - name: terrascan tools: [terrascan] known_good_version: 1.18.1 + description: A static code analyzer for IaC # terrascan does not support some modern terraform syntax. Don't auto-recommend. suggest_if: never commands: diff --git a/linters/tflint/plugin.yaml b/linters/tflint/plugin.yaml index e6a163d20..b2c91731e 100644 --- a/linters/tflint/plugin.yaml +++ b/linters/tflint/plugin.yaml @@ -25,6 +25,7 @@ lint: definitions: - name: tflint files: [terraform] + description: A pluggable Terraform linter commands: - name: lint output: sarif diff --git a/linters/tfsec/plugin.yaml b/linters/tfsec/plugin.yaml index 4c764ed9e..cd4287bd9 100644 --- a/linters/tfsec/plugin.yaml +++ b/linters/tfsec/plugin.yaml @@ -29,6 +29,7 @@ lint: tools: [tfsec] known_good_version: 1.28.1 suggest_if: never + description: Security scanner for your Terraform code commands: - name: lint output: sarif diff --git a/linters/tofu/plugin.yaml b/linters/tofu/plugin.yaml index 68e1bf66b..ef2cc66c2 100644 --- a/linters/tofu/plugin.yaml +++ b/linters/tofu/plugin.yaml @@ -4,6 +4,7 @@ lint: - name: tofu files: [terraform] tools: [tofu] + description: A Terraform validator and formatter commands: - name: validate # Custom parser type defined in the trunk cli to handle tofu's JSON output. diff --git a/linters/trivy/plugin.yaml b/linters/trivy/plugin.yaml index 9af9f4278..05cb25422 100644 --- a/linters/trivy/plugin.yaml +++ b/linters/trivy/plugin.yaml @@ -28,6 +28,7 @@ lint: - name: trivy tools: [trivy] suggest_if: files_present + description: A comprehensive and versatile security scanner known_good_version: 0.44.1 commands: - name: fs-vuln diff --git a/linters/trufflehog/plugin.yaml b/linters/trufflehog/plugin.yaml index 7958ad38e..b3952118e 100644 --- a/linters/trufflehog/plugin.yaml +++ b/linters/trufflehog/plugin.yaml @@ -21,6 +21,7 @@ lint: - name: trufflehog files: [ALL] tools: [trufflehog] + description: Validated and versatile secrets scanner known_good_version: 3.59.0 known_bad_versions: [3.41.0, 3.45.0, 3.60.1, 3.60.2] commands: diff --git a/linters/trunk-toolbox/plugin.yaml b/linters/trunk-toolbox/plugin.yaml index b5ca64718..5be873d4a 100644 --- a/linters/trunk-toolbox/plugin.yaml +++ b/linters/trunk-toolbox/plugin.yaml @@ -23,6 +23,7 @@ lint: - name: trunk-toolbox main_tool: trunk-toolbox files: [ALL] + description: Collection of universal linting tools commands: - name: lint run: trunk-toolbox --upstream=${upstream-ref} --results=${tmpfile} ${target} diff --git a/linters/txtpbfmt/plugin.yaml b/linters/txtpbfmt/plugin.yaml index 2e065a221..a6eb25cbb 100644 --- a/linters/txtpbfmt/plugin.yaml +++ b/linters/txtpbfmt/plugin.yaml @@ -11,6 +11,7 @@ lint: - name: txtpbfmt files: [textproto] tools: [txtpbfmt] + description: A formatter for textproto files commands: - name: format output: rewrite diff --git a/linters/yamllint/plugin.yaml b/linters/yamllint/plugin.yaml index 98a4a5a7e..449d067ff 100644 --- a/linters/yamllint/plugin.yaml +++ b/linters/yamllint/plugin.yaml @@ -10,6 +10,7 @@ lint: definitions: - name: yamllint files: [yaml] + description: Validate, Verify and Reformat your YAML documents commands: - output: regex parse_regex: diff --git a/linters/yapf/plugin.yaml b/linters/yapf/plugin.yaml index e51d016a2..d89891fd5 100644 --- a/linters/yapf/plugin.yaml +++ b/linters/yapf/plugin.yaml @@ -11,6 +11,7 @@ lint: definitions: - name: yapf files: [python] + description: A formatter for Python files commands: - name: format output: rewrite diff --git a/plugin.yaml b/plugin.yaml index e2fe55ca7..4b1358141 100644 --- a/plugin.yaml +++ b/plugin.yaml @@ -1,6 +1,6 @@ version: 0.1 # IfChange -required_trunk_version: ">=1.21.1-beta.16" +required_trunk_version: ">=1.21.1-beta.20" # ThenChange tests/repo_tests/config_check.test.ts environments: diff --git a/tests/repo_tests/config_check.test.ts b/tests/repo_tests/config_check.test.ts index d2b964c96..bd364d848 100644 --- a/tests/repo_tests/config_check.test.ts +++ b/tests/repo_tests/config_check.test.ts @@ -25,7 +25,7 @@ describe("Global config health check", () => { setupTrunk: true, // NOTE: This version should be kept compatible in lockstep with the `required_trunk_version` in plugin.yaml // IfChange - trunkVersion: "1.21.1-beta.16", + trunkVersion: "1.21.1-beta.20", // ThenChange plugin.yaml }); From f5a032cbb3790a12d06601630bd219103599b03a Mon Sep 17 00:00:00 2001 From: Tyler Jang Date: Wed, 24 Apr 2024 13:35:40 -0700 Subject: [PATCH 38/38] Add mypy@1.10.0 snapshot (#755) Output and codes changed. Last fix before release --- .../test_data/mypy_v1.10.0_CUSTOM.check.shot | 177 ++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 linters/mypy/test_data/mypy_v1.10.0_CUSTOM.check.shot diff --git a/linters/mypy/test_data/mypy_v1.10.0_CUSTOM.check.shot b/linters/mypy/test_data/mypy_v1.10.0_CUSTOM.check.shot new file mode 100644 index 000000000..8e50c461f --- /dev/null +++ b/linters/mypy/test_data/mypy_v1.10.0_CUSTOM.check.shot @@ -0,0 +1,177 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Testing linter mypy test CUSTOM 1`] = ` +{ + "issues": [ + { + "code": "import-untyped", + "column": "1", + "file": "test_data/basic.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://mypy.readthedocs.io/en/stable/error_code_list.html", + "level": "LEVEL_HIGH", + "line": "1", + "linter": "mypy", + "message": "Library stubs not installed for "google.protobuf"", + "targetType": "python", + }, + { + "code": "import-untyped", + "column": "1", + "file": "test_data/basic.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://mypy.readthedocs.io/en/stable/error_code_list.html", + "level": "LEVEL_HIGH", + "line": "1", + "linter": "mypy", + "message": "Library stubs not installed for "google.protobuf.descriptor_pb2"", + "targetType": "python", + }, + { + "code": "note", + "column": "1", + "file": "test_data/basic.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://mypy.readthedocs.io/en/stable/error_code_list.html", + "level": "LEVEL_HIGH", + "line": "1", + "linter": "mypy", + "message": "Hint: "python3 -m pip install types-protobuf". (or run "mypy --install-types" to install all missing stub packages). See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports", + "targetType": "python", + }, + { + "code": "arg-type", + "column": "10", + "file": "test_data/basic.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://mypy.readthedocs.io/en/stable/error_code_list.html", + "level": "LEVEL_HIGH", + "line": "13", + "linter": "mypy", + "message": "Argument 1 to "greeting" has incompatible type "int"; expected "str"", + "targetType": "python", + }, + { + "code": "arg-type", + "column": "10", + "file": "test_data/basic.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://mypy.readthedocs.io/en/stable/error_code_list.html", + "level": "LEVEL_HIGH", + "line": "14", + "linter": "mypy", + "message": "Argument 1 to "greeting" has incompatible type "bytes"; expected "str"", + "targetType": "python", + }, + { + "code": "func-returns-value", + "column": "5", + "file": "test_data/basic.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://mypy.readthedocs.io/en/stable/error_code_list.html", + "level": "LEVEL_HIGH", + "line": "15", + "linter": "mypy", + "message": ""printer" does not return a value (it only ever returns None)", + "targetType": "python", + }, + { + "code": "assignment", + "column": "10", + "file": "test_data/basic.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://mypy.readthedocs.io/en/stable/error_code_list.html", + "level": "LEVEL_HIGH", + "line": "16", + "linter": "mypy", + "message": "Incompatible types in assignment (expression has type "int", variable has type "str")", + "targetType": "python", + }, + { + "code": "attr-defined", + "column": "1", + "file": "test_data/basic.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://mypy.readthedocs.io/en/stable/error_code_list.html", + "level": "LEVEL_HIGH", + "line": "3", + "linter": "mypy", + "message": "Module "test_data" has no attribute "mypy_import2"", + "targetType": "python", + }, + { + "code": "return", + "column": "1", + "file": "test_data/source.py", + "issueClass": "ISSUE_CLASS_EXISTING", + "issueUrl": "https://mypy.readthedocs.io/en/stable/error_code_list.html", + "level": "LEVEL_HIGH", + "line": "8", + "linter": "mypy", + "message": "Missing return statement", + "targetType": "python", + }, + ], + "lintActions": [ + { + "command": "lint", + "fileGroupName": "python", + "linter": "mypy", + "paths": [ + "test_data/__init__.py", + ], + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "lint", + "fileGroupName": "python", + "linter": "mypy", + "paths": [ + "test_data/basic.py", + ], + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "lint", + "fileGroupName": "python", + "linter": "mypy", + "paths": [ + "test_data/source.py", + ], + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "lint", + "fileGroupName": "python", + "linter": "mypy", + "paths": [ + "test_data/__init__.py", + ], + "upstream": true, + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "lint", + "fileGroupName": "python", + "linter": "mypy", + "paths": [ + "test_data/basic.py", + ], + "upstream": true, + "verb": "TRUNK_VERB_CHECK", + }, + { + "command": "lint", + "fileGroupName": "python", + "linter": "mypy", + "paths": [ + "test_data/source.py", + ], + "upstream": true, + "verb": "TRUNK_VERB_CHECK", + }, + ], + "taskFailures": [], + "unformattedFiles": [], +} +`;