mirror of https://github.com/mongodb/mongo
SERVER-100116 Set up rules_lint with eslint (#32036)
GitOrigin-RevId: b358136eaef9eec27470065d6254112867b56245
This commit is contained in:
parent
4863cb9653
commit
c47bf8d1ef
|
|
@ -14,7 +14,6 @@ OWNERS.yml @10gen/server-root-ownership @svc-auto-approve-bot
|
|||
.clang-format @10gen/server-programmability @svc-auto-approve-bot
|
||||
.clang-tidy.in @10gen/server-programmability @svc-auto-approve-bot
|
||||
.eslintignore @10gen/devprod-correctness @svc-auto-approve-bot
|
||||
.eslintrc.yml @10gen/devprod-correctness @svc-auto-approve-bot
|
||||
.gitignore @10gen/devprod-build @svc-auto-approve-bot
|
||||
.mypy.ini @10gen/devprod-build @10gen/devprod-correctness @svc-auto-approve-bot
|
||||
.prettierignore @10gen/devprod-correctness @svc-auto-approve-bot
|
||||
|
|
@ -22,6 +21,7 @@ OWNERS.yml @10gen/server-root-ownership @svc-auto-approve-bot
|
|||
/BUILD.bazel @10gen/devprod-build @svc-auto-approve-bot
|
||||
copy.bara.sky @IamXander @smcclure15 @svc-auto-approve-bot
|
||||
copy.bara.staging.sky @10gen/devprod-correctness @svc-auto-approve-bot
|
||||
eslint.config.mjs @10gen/devprod-correctness @svc-auto-approve-bot
|
||||
jsconfig.json @10gen/devprod-correctness @svc-auto-approve-bot
|
||||
package.json @10gen/devprod-correctness @svc-auto-approve-bot
|
||||
pnpm-lock.yaml @10gen/devprod-correctness @svc-auto-approve-bot
|
||||
|
|
|
|||
|
|
@ -269,7 +269,7 @@ node_modules/
|
|||
package-lock.json
|
||||
|
||||
# jstestfuzz generated test directory
|
||||
jstestfuzz/
|
||||
/jstestfuzz/
|
||||
|
||||
# Bazel-related work
|
||||
# (Note that each string does NOT terminate with a '/' so that gitignore works properly)
|
||||
|
|
|
|||
24
BUILD.bazel
24
BUILD.bazel
|
|
@ -2,6 +2,8 @@ load("@npm//:defs.bzl", "npm_link_all_packages")
|
|||
load("//bazel/install_rules:install_rules.bzl", "mongo_install")
|
||||
load("//bazel/toolchains:mongo_toolchain.bzl", "setup_mongo_toolchain_aliases")
|
||||
load("//bazel/config:render_template.bzl", "render_template")
|
||||
load("@npm//:eslint/package_json.bzl", eslint_bin = "bin")
|
||||
load("@aspect_rules_js//js:defs.bzl", "js_library")
|
||||
|
||||
package(
|
||||
default_visibility = ["//visibility:public"],
|
||||
|
|
@ -16,11 +18,33 @@ exports_files([
|
|||
|
||||
npm_link_all_packages(name = "node_modules")
|
||||
|
||||
js_library(
|
||||
name = "eslintrc",
|
||||
srcs = ["eslint.config.mjs"],
|
||||
deps = [
|
||||
":node_modules/@eslint/js",
|
||||
":node_modules/globals",
|
||||
"//:node_modules/@eslint/eslintrc",
|
||||
],
|
||||
)
|
||||
|
||||
eslint_bin.eslint_binary(
|
||||
name = "eslint",
|
||||
data = [
|
||||
"//:eslintrc",
|
||||
],
|
||||
)
|
||||
|
||||
alias(
|
||||
name = "format",
|
||||
actual = "//bazel/format",
|
||||
)
|
||||
|
||||
alias(
|
||||
name = "lint",
|
||||
actual = "//bazel:lint",
|
||||
)
|
||||
|
||||
alias(
|
||||
name = "codeowners",
|
||||
actual = "//buildscripts:codeowners",
|
||||
|
|
|
|||
|
|
@ -24,9 +24,6 @@ filters:
|
|||
- ".eslintignore":
|
||||
approvers:
|
||||
- 10gen/devprod-correctness
|
||||
- ".eslintrc.yml":
|
||||
approvers:
|
||||
- 10gen/devprod-correctness
|
||||
- ".gitignore":
|
||||
approvers:
|
||||
- 10gen/devprod-build
|
||||
|
|
@ -50,6 +47,9 @@ filters:
|
|||
- "copy.bara.staging.sky":
|
||||
approvers:
|
||||
- 10gen/devprod-correctness
|
||||
- "eslint.config.mjs":
|
||||
approvers:
|
||||
- 10gen/devprod-correctness
|
||||
- "jsconfig.json":
|
||||
approvers:
|
||||
- 10gen/devprod-correctness
|
||||
|
|
|
|||
|
|
@ -34,6 +34,78 @@ http_archive(
|
|||
],
|
||||
)
|
||||
|
||||
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||
|
||||
http_archive(
|
||||
name = "aspect_rules_lint",
|
||||
sha256 = "f60e4a737a5e09402f5fa3bd182efa80dac5523ca4b9bc5c6fa8c06fbfb46630",
|
||||
strip_prefix = "rules_lint-1.1.0",
|
||||
url = "https://github.com/aspect-build/rules_lint/releases/download/v1.1.0/rules_lint-v1.1.0.tar.gz",
|
||||
)
|
||||
|
||||
# aspect_rules_lint depends on aspect_bazel_lib.
|
||||
http_archive(
|
||||
name = "aspect_bazel_lib",
|
||||
sha256 = "6d758a8f646ecee7a3e294fbe4386daafbe0e5966723009c290d493f227c390b",
|
||||
strip_prefix = "bazel-lib-2.7.7",
|
||||
url = "https://github.com/aspect-build/bazel-lib/releases/download/v2.7.7/bazel-lib-v2.7.7.tar.gz",
|
||||
)
|
||||
|
||||
load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies")
|
||||
|
||||
# aspect_bazel_lib depends on bazel_skylib
|
||||
aspect_bazel_lib_dependencies()
|
||||
|
||||
load(
|
||||
"@aspect_rules_lint//format:repositories.bzl",
|
||||
# Fetch additional formatter binaries you need:
|
||||
"fetch_java_format",
|
||||
"fetch_ktfmt",
|
||||
"fetch_swiftformat",
|
||||
"rules_lint_dependencies",
|
||||
)
|
||||
|
||||
rules_lint_dependencies()
|
||||
|
||||
fetch_java_format()
|
||||
|
||||
fetch_ktfmt()
|
||||
|
||||
fetch_swiftformat()
|
||||
|
||||
load("@aspect_rules_lint//lint:checkstyle.bzl", "fetch_checkstyle")
|
||||
|
||||
fetch_checkstyle()
|
||||
|
||||
load("@aspect_rules_lint//lint:pmd.bzl", "fetch_pmd")
|
||||
|
||||
fetch_pmd()
|
||||
|
||||
load("@aspect_rules_lint//lint:vale.bzl", "fetch_vale")
|
||||
|
||||
fetch_vale()
|
||||
|
||||
load("@aspect_rules_lint//lint:ktlint.bzl", "fetch_ktlint")
|
||||
|
||||
fetch_ktlint()
|
||||
|
||||
load("@aspect_rules_lint//lint:spotbugs.bzl", "fetch_spotbugs")
|
||||
|
||||
fetch_spotbugs()
|
||||
|
||||
########################
|
||||
# Optional: multitool provides defaults for some tools such as yamlfmt
|
||||
# If you do not set up multitool, you must provide these tools yourself
|
||||
load("@rules_multitool//multitool:multitool.bzl", "multitool")
|
||||
|
||||
multitool(
|
||||
name = "multitool",
|
||||
lockfiles = [
|
||||
"@aspect_rules_lint//format:multitool.lock.json",
|
||||
"@aspect_rules_lint//lint:multitool.lock.json",
|
||||
],
|
||||
)
|
||||
|
||||
load("//bazel/platforms:local_config_platform.bzl", "setup_local_config_platform")
|
||||
load("//bazel/toolchains:mongo_toolchain.bzl", "toolchain_download")
|
||||
|
||||
|
|
@ -165,16 +237,16 @@ poetry(
|
|||
|
||||
http_archive(
|
||||
name = "aspect_rules_js",
|
||||
sha256 = "630a71aba66c4023a5b16ab3efafaeed8b1a2865ccd168a34611eb73876b3fc4",
|
||||
strip_prefix = "rules_js-1.37.1",
|
||||
sha256 = "875b8d01af629dbf626eddc5cf239c9f0da20330f4d99ad956afc961096448dd",
|
||||
strip_prefix = "rules_js-2.1.3",
|
||||
urls = [
|
||||
# Implements retry by relisting each url multiple times to be used as a failover.
|
||||
# TODO(SERVER-86719): Re-implement http_archive to allow sleeping between retries
|
||||
"https://github.com/aspect-build/rules_js/releases/download/v1.37.1/rules_js-v1.37.1.tar.gz",
|
||||
"https://github.com/aspect-build/rules_js/releases/download/v1.37.1/rules_js-v1.37.1.tar.gz",
|
||||
"https://github.com/aspect-build/rules_js/releases/download/v1.37.1/rules_js-v1.37.1.tar.gz",
|
||||
"https://github.com/aspect-build/rules_js/releases/download/v1.37.1/rules_js-v1.37.1.tar.gz",
|
||||
"https://github.com/aspect-build/rules_js/releases/download/v1.37.1/rules_js-v1.37.1.tar.gz",
|
||||
"https://github.com/aspect-build/rules_js/releases/download/v2.1.3/rules_js-v2.1.3.tar.gz",
|
||||
"https://github.com/aspect-build/rules_js/releases/download/v2.1.3/rules_js-v2.1.3.tar.gz",
|
||||
"https://github.com/aspect-build/rules_js/releases/download/v2.1.3/rules_js-v2.1.3.tar.gz",
|
||||
"https://github.com/aspect-build/rules_js/releases/download/v2.1.3/rules_js-v2.1.3.tar.gz",
|
||||
"https://github.com/aspect-build/rules_js/releases/download/v2.1.3/rules_js-v2.1.3.tar.gz",
|
||||
],
|
||||
)
|
||||
|
||||
|
|
@ -182,17 +254,15 @@ load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies")
|
|||
|
||||
rules_js_dependencies()
|
||||
|
||||
load("@rules_nodejs//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", "nodejs_register_toolchains")
|
||||
load("@aspect_rules_js//js:toolchains.bzl", "DEFAULT_NODE_VERSION", "rules_js_register_toolchains")
|
||||
|
||||
nodejs_register_toolchains(
|
||||
name = "nodejs",
|
||||
node_version = DEFAULT_NODE_VERSION,
|
||||
)
|
||||
rules_js_register_toolchains(node_version = DEFAULT_NODE_VERSION)
|
||||
|
||||
load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock")
|
||||
|
||||
npm_translate_lock(
|
||||
name = "npm",
|
||||
npmrc = "//:.npmrc",
|
||||
pnpm_lock = "//:pnpm-lock.yaml",
|
||||
verify_node_modules_ignored = "//:.bazelignore",
|
||||
)
|
||||
|
|
|
|||
|
|
@ -5,3 +5,10 @@ exports_files([
|
|||
"scons_link_list.py",
|
||||
"install_rules.py",
|
||||
])
|
||||
|
||||
sh_binary(
|
||||
name = "lint",
|
||||
srcs = ["lint.sh"],
|
||||
args = ["//..."],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
# placeholder for bazel/wrapper_hook/lint.py
|
||||
echo "No linter errors found!"
|
||||
|
|
@ -0,0 +1,171 @@
|
|||
import os
|
||||
import pathlib
|
||||
import platform
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
|
||||
REPO_ROOT = pathlib.Path(__file__).parent.parent.parent
|
||||
sys.path.append(str(REPO_ROOT))
|
||||
|
||||
|
||||
def list_files_without_targets(bazel_bin: str):
|
||||
# rules_lint only checks files that are in targets, verify that all files in the source tree
|
||||
# are contained within targets.
|
||||
|
||||
js_files_in_targets = [
|
||||
line.strip()
|
||||
for line in subprocess.check_output(
|
||||
[bazel_bin, "cquery", 'kind("source file", deps(//...))', "--output", "files"],
|
||||
stderr=subprocess.STDOUT,
|
||||
)
|
||||
.decode("utf-8")
|
||||
.splitlines()
|
||||
if line.strip().endswith("js")
|
||||
]
|
||||
|
||||
print("Checking that all javascript files have BUILD.bazel targets...")
|
||||
|
||||
# Find all .js files in src/mongo and jstests
|
||||
js_files = (
|
||||
subprocess.check_output(
|
||||
["find", "src/mongo", "jstests", "-name", "*.js"],
|
||||
stderr=subprocess.STDOUT,
|
||||
)
|
||||
.decode("utf-8")
|
||||
.splitlines()
|
||||
)
|
||||
|
||||
# Convert js_files_in_targets to a set for easy comparison
|
||||
js_files_in_targets_set = set()
|
||||
for file in js_files_in_targets:
|
||||
# Remove the leading "//" and replace ":" with "/"
|
||||
clean_file = file.lstrip("//").replace(":", "/")
|
||||
js_files_in_targets_set.add(clean_file)
|
||||
|
||||
# Create a new list of files that are in js_files but not in js_files_in_targets
|
||||
new_list = []
|
||||
for file in js_files:
|
||||
if file not in js_files_in_targets_set:
|
||||
new_list.append(file)
|
||||
|
||||
if len(new_list) != 0:
|
||||
print("Found javascript files without BUILD.bazel definitions:")
|
||||
for file in new_list:
|
||||
print(f"\t{file}")
|
||||
print("")
|
||||
print("Please add these to a js_library target in a BUILD.bazel file in their directory")
|
||||
return False
|
||||
|
||||
print("All javascript files have BUILD.bazel targets!")
|
||||
return True
|
||||
|
||||
|
||||
def run_rules_lint(bazel_bin, args):
|
||||
if platform.system() == "Windows":
|
||||
print("eslint not supported on windows")
|
||||
sys.exit(1)
|
||||
|
||||
if not list_files_without_targets(bazel_bin):
|
||||
sys.exit(1)
|
||||
|
||||
# Default to linting everything if no path was passed in
|
||||
if len(args) == 0:
|
||||
args = ["//..."]
|
||||
|
||||
fix = ""
|
||||
with tempfile.NamedTemporaryFile(delete=False) as buildevents:
|
||||
buildevents_path = buildevents.name
|
||||
|
||||
args.append("--aspects=//tools/lint:linters.bzl%eslint")
|
||||
|
||||
args.extend(
|
||||
[
|
||||
# Allow lints of code that fails some validation action
|
||||
# See https://github.com/aspect-build/rules_ts/pull/574#issuecomment-2073632879
|
||||
"--norun_validations",
|
||||
f"--build_event_json_file={buildevents_path}",
|
||||
"--output_groups=rules_lint_human",
|
||||
"--remote_download_regex='.*AspectRulesLint.*'",
|
||||
]
|
||||
)
|
||||
|
||||
# This is a rudimentary flag parser.
|
||||
if args[1] == "--fail-on-violation":
|
||||
args.extend(["--@aspect_rules_lint//lint:fail_on_violation", "--keep_going"])
|
||||
args.pop(1)
|
||||
|
||||
# Allow a `--fix` option on the command-line.
|
||||
# This happens to make output of the linter such as ruff's
|
||||
# [*] 1 fixable with the `--fix` option.
|
||||
# so that the naive thing of pasting that flag to lint.sh will do what the user expects.
|
||||
if args[1] == "--fix":
|
||||
fix = "patch"
|
||||
args.extend(["--@aspect_rules_lint//lint:fix", "--output_groups=rules_lint_patch"])
|
||||
args.pop(1)
|
||||
|
||||
# the --dry-run flag must immediately follow the --fix flag
|
||||
if args[1] == "--dry-run":
|
||||
fix = "print"
|
||||
args.pop(1)
|
||||
|
||||
# Actually run the lint itself
|
||||
subprocess.run([bazel_bin, "build"] + args, check=True)
|
||||
|
||||
# Parse out the reports from the build events
|
||||
filter_expr = '.namedSetOfFiles | values | .files[] | select(.name | endswith($ext)) | ((.pathPrefix | join("/")) + "/" + .name)'
|
||||
|
||||
# Maybe this could be hermetic with bazel run @aspect_bazel_lib//tools:jq or sth
|
||||
# jq on windows outputs CRLF which breaks this script. https://github.com/jqlang/jq/issues/92
|
||||
valid_reports = (
|
||||
subprocess.run(
|
||||
["jq", "--arg", "ext", ".out", "--raw-output", filter_expr, buildevents_path],
|
||||
capture_output=True,
|
||||
text=True,
|
||||
check=True,
|
||||
)
|
||||
.stdout.strip()
|
||||
.split("\n")
|
||||
)
|
||||
|
||||
for report in valid_reports:
|
||||
# Exclude coverage reports, and check if the output is empty.
|
||||
if "coverage.dat" in report or not os.path.exists(report) or not os.path.getsize(report):
|
||||
# Report is empty. No linting errors.
|
||||
continue
|
||||
print(f"From {report}:")
|
||||
with open(report, "r", encoding="utf-8") as f:
|
||||
print(f.read())
|
||||
print()
|
||||
|
||||
# Apply fixes if requested
|
||||
if fix:
|
||||
valid_patches = (
|
||||
subprocess.run(
|
||||
["jq", "--arg", "ext", ".patch", "--raw-output", filter_expr, buildevents_path],
|
||||
capture_output=True,
|
||||
text=True,
|
||||
check=True,
|
||||
)
|
||||
.stdout.strip()
|
||||
.split("\n")
|
||||
)
|
||||
|
||||
for patch in valid_patches:
|
||||
# Exclude coverage, and check if the patch is empty.
|
||||
if "coverage.dat" in patch or not os.path.exists(patch) or not os.path.getsize(patch):
|
||||
# Patch is empty. No linting errors.
|
||||
continue
|
||||
|
||||
if fix == "print":
|
||||
print(f"From {patch}:")
|
||||
with open(patch, "r", encoding="utf-8") as f:
|
||||
print(f.read())
|
||||
print()
|
||||
elif fix == "patch":
|
||||
subprocess.run(
|
||||
["patch", "-p1"], check=True, stdin=open(patch, "r", encoding="utf-8")
|
||||
)
|
||||
else:
|
||||
print(f"ERROR: unknown fix type {fix}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
|
@ -10,6 +10,7 @@ REPO_ROOT = pathlib.Path(__file__).parent.parent.parent
|
|||
sys.path.append(str(REPO_ROOT))
|
||||
|
||||
from bazel.wrapper_hook.compiledb import generate_compiledb
|
||||
from bazel.wrapper_hook.lint import run_rules_lint
|
||||
from bazel.wrapper_hook.wrapper_debug import wrapper_debug
|
||||
|
||||
|
||||
|
|
@ -57,8 +58,10 @@ def test_runner_interface(args, autocomplete_query, get_buildozer_output=get_bui
|
|||
plus_starts = ("+", ":+", "//:+")
|
||||
skip_plus_interface = True
|
||||
compiledb_target = False
|
||||
lint_target = False
|
||||
persistent_compdb = True
|
||||
compiledb_targets = ["//:compiledb", ":compiledb", "compiledb"]
|
||||
lint_targets = ["//:lint", ":lint", "lint"]
|
||||
sources_to_bin = {}
|
||||
select_sources = {}
|
||||
current_select = None
|
||||
|
|
@ -80,6 +83,8 @@ def test_runner_interface(args, autocomplete_query, get_buildozer_output=get_bui
|
|||
for arg in args:
|
||||
if arg in compiledb_targets:
|
||||
compiledb_target = True
|
||||
if arg in lint_targets:
|
||||
lint_target = True
|
||||
if arg == "--intree_compdb":
|
||||
replacements[arg] = []
|
||||
persistent_compdb = False
|
||||
|
|
@ -90,6 +95,9 @@ def test_runner_interface(args, autocomplete_query, get_buildozer_output=get_bui
|
|||
if compiledb_target:
|
||||
generate_compiledb(args[0], persistent_compdb)
|
||||
|
||||
if lint_target:
|
||||
run_rules_lint(args[0], args[3:])
|
||||
|
||||
if skip_plus_interface and not autocomplete_query:
|
||||
return args[1:]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
load("@poetry//:dependencies.bzl", "dependency")
|
||||
load("@npm//:eslint/package_json.bzl", "bin")
|
||||
|
||||
exports_files([
|
||||
"cheetah_source_generator.py",
|
||||
|
|
@ -226,3 +227,10 @@ py_library(
|
|||
"simple_report",
|
||||
],
|
||||
)
|
||||
|
||||
bin.eslint_binary(
|
||||
name = "eslint_binary",
|
||||
# Allow the binary to be run outside bazel
|
||||
# See more details about this by commenting this out and running `bazel run //:format`
|
||||
env = {"BAZEL_BINDIR": "."},
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,184 +0,0 @@
|
|||
# Upgrade ESLint version
|
||||
|
||||
### Bundling ESLint executable
|
||||
|
||||
1. Install the latest [Node.js](https://nodejs.org/en/download/) if you don't have it.
|
||||
2. Install [pkg](https://www.npmjs.com/package/pkg) with npm.
|
||||
```
|
||||
npm install -g pkg
|
||||
```
|
||||
3. Get [ESLint](https://github.com/eslint/eslint) source code.
|
||||
```
|
||||
git clone git@github.com:eslint/eslint.git
|
||||
```
|
||||
4. Checkout the latest version using git tag.
|
||||
```
|
||||
cd eslint
|
||||
git checkout v${version}
|
||||
```
|
||||
5. Add pkg options to `package.json` file.
|
||||
```
|
||||
"pkg": {
|
||||
"scripts": [ "conf/**/*", "lib/**/*", "messages/**/*" ],
|
||||
"targets": [ "linux-x64", "macos-x64" ]
|
||||
# "targets": [ "linux-arm" ]
|
||||
},
|
||||
```
|
||||
6. Run pkg command to make ESLint executables.
|
||||
```
|
||||
npm install
|
||||
pkg .
|
||||
```
|
||||
7. Check that executables are working.
|
||||
Copy files to somewhere in your PATH and try to run it.
|
||||
|
||||
Depending on your system
|
||||
|
||||
```
|
||||
eslint-linux --help
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```
|
||||
eslint-macos --help
|
||||
```
|
||||
|
||||
or (if you are on arm)
|
||||
|
||||
```
|
||||
eslint --help
|
||||
```
|
||||
|
||||
(\*) If executable fails to find some .js files there are [extra steps](#extra-steps)
|
||||
required to be done before step 6.
|
||||
|
||||
### Prepare archives
|
||||
|
||||
Rename produced files.
|
||||
|
||||
```
|
||||
mv eslint-linux eslint-Linux-x86_64
|
||||
mv eslint-macos eslint-Darwin-x86_64
|
||||
# arm
|
||||
# mv eslint eslint-Linux-arm64
|
||||
```
|
||||
|
||||
Archive files. (No leading v in version e.g. 8.28.0 NOT v8.28.0)
|
||||
|
||||
```
|
||||
tar -czvf eslint-${version}-linux-x86_64.tar.gz eslint-Linux-x86_64
|
||||
tar -czvf eslint-${version}-darwin.tar.gz eslint-Darwin-x86_64
|
||||
# arm
|
||||
# tar -czvf eslint-${version}-linux-arm64.tar.gz eslint-Linux-arm64
|
||||
```
|
||||
|
||||
### Upload archives to `boxes.10gen.com`
|
||||
|
||||
Archives should be available by the following links:
|
||||
|
||||
```
|
||||
https://s3.amazonaws.com/boxes.10gen.com/build/eslint-${version}-linux-x86_64.tar.gz
|
||||
https://s3.amazonaws.com/boxes.10gen.com/build/eslint-${version}-darwin.tar.gz
|
||||
# arm
|
||||
# https://s3.amazonaws.com/boxes.10gen.com/build/eslint-${version}-linux-arm64.tar.gz
|
||||
```
|
||||
|
||||
Build team has an access to do that.
|
||||
You can create a build ticket in Jira for them to do it
|
||||
(e.g. https://jira.mongodb.org/browse/BUILD-12984)
|
||||
|
||||
### Update ESLint version in `buildscripts/eslint.py`
|
||||
|
||||
```
|
||||
# Expected version of ESLint.
|
||||
ESLINT_VERSION = "${version}"
|
||||
```
|
||||
|
||||
### Extra steps
|
||||
|
||||
Unfortunately pkg doesn't work well with `require(variable)` statements
|
||||
and force include files using `assets` or `scripts` options might not help.
|
||||
|
||||
For the ESLint version 7.22.0 and 8.28.0 the following change was applied to the
|
||||
source code to make everything work:
|
||||
|
||||
```
|
||||
diff --git a/lib/cli-engine/cli-engine.js b/lib/cli-engine/cli-engine.js
|
||||
index b1befaa04..e02230f83 100644
|
||||
--- a/lib/cli-engine/cli-engine.js
|
||||
+++ b/lib/cli-engine/cli-engine.js
|
||||
@@ -987,43 +987,35 @@ class CLIEngine {
|
||||
*/
|
||||
getFormatter(format) {
|
||||
|
||||
- // default is stylish
|
||||
- const resolvedFormatName = format || "stylish";
|
||||
-
|
||||
- // only strings are valid formatters
|
||||
- if (typeof resolvedFormatName === "string") {
|
||||
-
|
||||
- // replace \ with / for Windows compatibility
|
||||
- const normalizedFormatName = resolvedFormatName.replace(/\\/gu, "/");
|
||||
-
|
||||
- const slots = internalSlotsMap.get(this);
|
||||
- const cwd = slots ? slots.options.cwd : process.cwd();
|
||||
- const namespace = naming.getNamespaceFromTerm(normalizedFormatName);
|
||||
-
|
||||
- let formatterPath;
|
||||
-
|
||||
- // if there's a slash, then it's a file (TODO: this check seems dubious for scoped npm packages)
|
||||
- if (!namespace && normalizedFormatName.indexOf("/") > -1) {
|
||||
- formatterPath = path.resolve(cwd, normalizedFormatName);
|
||||
- } else {
|
||||
- try {
|
||||
- const npmFormat = naming.normalizePackageName(normalizedFormatName, "eslint-formatter");
|
||||
-
|
||||
- formatterPath = ModuleResolver.resolve(npmFormat, path.join(cwd, "__placeholder__.js"));
|
||||
- } catch {
|
||||
- formatterPath = path.resolve(__dirname, "formatters", normalizedFormatName);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- try {
|
||||
- return require(formatterPath);
|
||||
- } catch (ex) {
|
||||
- ex.message = `There was a problem loading formatter: ${formatterPath}\nError: ${ex.message}`;
|
||||
- throw ex;
|
||||
- }
|
||||
-
|
||||
- } else {
|
||||
- return null;
|
||||
+ switch (format) {
|
||||
+ case "checkstyle":
|
||||
+ return require("./formatters/checkstyle.js");
|
||||
+ case "codeframe":
|
||||
+ return require("./formatters/codeframe.js");
|
||||
+ case "compact":
|
||||
+ return require("./formatters/compact.js");
|
||||
+ case "html":
|
||||
+ return require("./formatters/html.js");
|
||||
+ case "jslint-xml":
|
||||
+ return require("./formatters/jslint-xml.js");
|
||||
+ case "json-with-metadata":
|
||||
+ return require("./formatters/json-with-metadata.js");
|
||||
+ case "json":
|
||||
+ return require("./formatters/json.js");
|
||||
+ case "junit":
|
||||
+ return require("./formatters/junit.js");
|
||||
+ case "stylish":
|
||||
+ return require("./formatters/stylish.js");
|
||||
+ case "table":
|
||||
+ return require("./formatters/table.js");
|
||||
+ case "tap":
|
||||
+ return require("./formatters/tap.js");
|
||||
+ case "unix":
|
||||
+ return require("./formatters/unix.js");
|
||||
+ case "visualstudio":
|
||||
+ return require("./formatters/visualstudio.js");
|
||||
+ default:
|
||||
+ return require("./formatters/stylish.js");
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
|
@ -10,7 +10,7 @@ class PyrightLinter(base.LinterBase):
|
|||
|
||||
def __init__(self):
|
||||
"""Create a Pyright linter."""
|
||||
super(PyrightLinter, self).__init__("pyright", "1.1.380")
|
||||
super(PyrightLinter, self).__init__("pyright", "1.1.393")
|
||||
|
||||
def get_lint_version_cmd_args(self) -> List[str]:
|
||||
"""Get the command to run a version check."""
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
import argparse
|
||||
import logging
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
from typing import List
|
||||
|
||||
|
|
@ -90,6 +91,12 @@ def main():
|
|||
logging.basicConfig(level=logging.DEBUG)
|
||||
structlog.configure(logger_factory=structlog.stdlib.LoggerFactory())
|
||||
|
||||
# Use the nodejs binary from the bazel's npm repository
|
||||
subprocess.run(["bazel", "build", "//:eslint", "--config=local"], env=os.environ, check=True)
|
||||
os.environ["PATH"] = (
|
||||
"bazel-bin/eslint_/eslint.runfiles/nodejs_linux_arm64/bin/nodejs/bin/" + os.pathsep
|
||||
) + os.environ["PATH"]
|
||||
|
||||
args.func(args.paths if hasattr(args, "paths") else [])
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -42,14 +42,11 @@ Ex: `buildscripts/quickmongolint.py lint`
|
|||
|
||||
## Javascript Linters
|
||||
|
||||
The `buildscripts/eslint.py` wrapper script runs the `eslint` javascript linter. You can see the
|
||||
usage message for the wrapper by running `buildscripts/eslint.py --help`.
|
||||
|
||||
Ex: `buildscripts/eslint.py lint`
|
||||
The `bazel run lint` command runs the `eslint` javascript linter.
|
||||
|
||||
| Linter | Configuration File(s) | Help Command | Documentation |
|
||||
| -------- | ------------------------------- | --------------- | ------------------------------------------ |
|
||||
| `eslint` | `.eslintrc.yml` `.eslintignore` | `eslint --help` | [https://eslint.org/](https://eslint.org/) |
|
||||
| -------- | --------------------- | ------------ | ------------------------------------------ |
|
||||
| `eslint` | `.eslint.config.mjs` | | [https://eslint.org/](https://eslint.org/) |
|
||||
|
||||
## Yaml Linters
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,265 @@
|
|||
import globals from "globals";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
import eslint from "@eslint/js";
|
||||
import js from "@eslint/js";
|
||||
import { FlatCompat } from "@eslint/eslintrc";
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
const compat = new FlatCompat({
|
||||
baseDirectory: __dirname,
|
||||
recommendedConfig: js.configs.recommended,
|
||||
allConfig: js.configs.all
|
||||
});
|
||||
|
||||
export default [{
|
||||
ignores: ["src/mongo/gotools/*", "**/*.tpl.js", "jstests/third_party/**/*.js"],
|
||||
}, ...compat.extends("eslint:recommended"), {
|
||||
languageOptions: {
|
||||
globals: {
|
||||
...globals.mongo,
|
||||
TestData: true,
|
||||
WriteError: true,
|
||||
WriteCommandError: true,
|
||||
BulkWriteError: true,
|
||||
DB: true,
|
||||
DBCollection: true,
|
||||
DBQuery: true,
|
||||
DBExplainQuery: true,
|
||||
DBCommandCursor: true,
|
||||
MongoBridge: true,
|
||||
MongoURI: true,
|
||||
WriteConcern: true,
|
||||
SessionOptions: true,
|
||||
CollInfos: true,
|
||||
CountDownLatch: true,
|
||||
BSONAwareMap: true,
|
||||
latestFCV: true,
|
||||
lastLTSFCV: true,
|
||||
lastContinuousFCV: true,
|
||||
checkFCV: true,
|
||||
isFCVEqual: true,
|
||||
binVersionToFCV: true,
|
||||
numVersionsSinceLastLTS: true,
|
||||
getFCVConstants: true,
|
||||
removeFCVDocument: true,
|
||||
targetFCV: true,
|
||||
AssertionError: true,
|
||||
assert: true,
|
||||
doassert: true,
|
||||
authutil: true,
|
||||
tojson: true,
|
||||
tojsononeline: true,
|
||||
tostrictjson: true,
|
||||
tojsonObject: true,
|
||||
toEJSON: true,
|
||||
print: true,
|
||||
printjson: true,
|
||||
printjsononeline: true,
|
||||
jsTest: true,
|
||||
jsTestLog: true,
|
||||
jsonTestLog: true,
|
||||
ErrorCodes: true,
|
||||
ErrorCodeStrings: true,
|
||||
checkProgram: true,
|
||||
Random: true,
|
||||
checkLog: true,
|
||||
sleep: true,
|
||||
resetDbpath: true,
|
||||
copyDbpath: true,
|
||||
jsTestName: true,
|
||||
startParallelShell: true,
|
||||
buildInfo: true,
|
||||
getBuildInfo: true,
|
||||
jsTestOptions: true,
|
||||
printShardingStatus: true,
|
||||
_getErrorWithCode: true,
|
||||
isNetworkError: true,
|
||||
__magicNoPrint: true,
|
||||
computeSHA256Block: true,
|
||||
emit: true,
|
||||
_awaitRSHostViaRSMonitor: true,
|
||||
convertShardKeyToHashed: true,
|
||||
benchRun: true,
|
||||
benchRunSync: true,
|
||||
gc: true,
|
||||
DataConsistencyChecker: true,
|
||||
isNumber: true,
|
||||
isObject: true,
|
||||
isString: true,
|
||||
_createSecurityToken: true,
|
||||
_createTenantToken: true,
|
||||
_isAddressSanitizerActive: true,
|
||||
_isLeakSanitizerActive: true,
|
||||
_isThreadSanitizerActive: true,
|
||||
_isUndefinedBehaviorSanitizerActive: true,
|
||||
_isSpiderMonkeyDebugEnabled: true,
|
||||
_optimizationsEnabled: true,
|
||||
allocatePort: true,
|
||||
allocatePorts: true,
|
||||
resetAllocatedPorts: true,
|
||||
bsonObjToArray: true,
|
||||
_writeTestPipeObjects: true,
|
||||
_writeTestPipe: true,
|
||||
_writeTestPipeBsonFile: true,
|
||||
_readTestPipes: true,
|
||||
runFeatureFlagMultiversionTest: true,
|
||||
isRetryableError: true,
|
||||
numberDecimalsAlmostEqual: true,
|
||||
numberDecimalsEqual: true,
|
||||
debug: true,
|
||||
bsonsize: true,
|
||||
_DelegatingDriverSession: true,
|
||||
_DummyDriverSession: true,
|
||||
_ServerSession: true,
|
||||
sortDoc: true,
|
||||
executeNoThrowNetworkError: true,
|
||||
_readDumpFile: true,
|
||||
_openGoldenData: true,
|
||||
_writeGoldenData: true,
|
||||
_threadInject: true,
|
||||
port: true,
|
||||
_buildBsonObj: true,
|
||||
convertTrafficRecordingToBSON: true,
|
||||
_setShellFailPoint: true,
|
||||
shellHelper: true,
|
||||
_srand: true,
|
||||
_shouldUseImplicitSessions: true,
|
||||
testingReplication: true,
|
||||
myPort: true,
|
||||
retryOnNetworkError: true,
|
||||
getJSHeapLimitMB: true,
|
||||
_getEnv: true,
|
||||
indentStr: true,
|
||||
_forgetReplSet: true,
|
||||
_fnvHashToHexString: true,
|
||||
_resultSetsEqualUnordered: true,
|
||||
getStringWidth: true,
|
||||
_compareStringsWithCollation: true,
|
||||
eventResumeTokenType: true,
|
||||
highWaterMarkResumeTokenType: true,
|
||||
|
||||
// likely could be replaced with `path`
|
||||
_copyFileRange: true,
|
||||
appendFile: true,
|
||||
copyFile: true,
|
||||
writeFile: true,
|
||||
fileExists: true,
|
||||
pathExists: true,
|
||||
umask: true,
|
||||
getFileMode: true,
|
||||
copyDir: true,
|
||||
|
||||
// likely could be replaced with `child_process`
|
||||
MongoRunner: true,
|
||||
run: true,
|
||||
runProgram: true,
|
||||
runMongoProgram: true,
|
||||
runNonMongoProgram: true,
|
||||
runNonMongoProgramQuietly: true,
|
||||
_runMongoProgram: true,
|
||||
_startMongoProgram: true,
|
||||
startMongoProgram: true,
|
||||
_stopMongoProgram: true,
|
||||
stopMongoProgramByPid: true,
|
||||
clearRawMongoProgramOutput: true,
|
||||
rawMongoProgramOutput: true,
|
||||
waitProgram: true,
|
||||
waitMongoProgram: true,
|
||||
_runningMongoChildProcessIds: true,
|
||||
startMongoProgramNoConnect: true,
|
||||
|
||||
// shell-specific
|
||||
shellPrintHelper: true,
|
||||
shellAutocomplete: true,
|
||||
__autocomplete__: true,
|
||||
defaultPrompt: true,
|
||||
___it___: true,
|
||||
__promptWrapper__: true,
|
||||
passwordPrompt: true,
|
||||
isInteractive: true,
|
||||
|
||||
// built-in BSON types and helpers
|
||||
Code: true,
|
||||
MaxKey: true,
|
||||
MinKey: true,
|
||||
HexData: true,
|
||||
DBPointer: true,
|
||||
DBRef: true,
|
||||
BinData: true,
|
||||
NumberLong: true,
|
||||
NumberDecimal: true,
|
||||
Timestamp: true,
|
||||
MD5: true,
|
||||
Geo: true,
|
||||
decodeResumeToken: true,
|
||||
bsonWoCompare: true,
|
||||
bsonUnorderedFieldsCompare: true,
|
||||
bsonBinaryEqual: true,
|
||||
friendlyEqual: true,
|
||||
timestampCmp: true,
|
||||
decompressBSONColumn: true,
|
||||
|
||||
hex_md5: true,
|
||||
QueryHelpers: true,
|
||||
chatty: true,
|
||||
DriverSession: true,
|
||||
ToolTest: true,
|
||||
uncheckedParallelShellPidsString: true,
|
||||
_shouldRetryWrites: true,
|
||||
|
||||
// from_cpp:
|
||||
__prompt__: true,
|
||||
_replMonitorStats: true,
|
||||
|
||||
// explainable.js
|
||||
Explainable: true,
|
||||
|
||||
// utils.js
|
||||
_verboseShell: true,
|
||||
__quiet: true,
|
||||
printStackTrace: true,
|
||||
setVerboseShell: true,
|
||||
_barFormat: true,
|
||||
compare: true,
|
||||
compareOn: true,
|
||||
shellPrint: true,
|
||||
_originalPrint: true,
|
||||
disablePrint: true,
|
||||
enablePrint: true,
|
||||
replSetMemberStatePrompt: true,
|
||||
hasErrorCode: true,
|
||||
helloStatePrompt: true,
|
||||
_validateMemberIndex: true,
|
||||
help: true,
|
||||
retryOnRetryableError: true,
|
||||
},
|
||||
|
||||
ecmaVersion: 2022,
|
||||
sourceType: "module",
|
||||
},
|
||||
|
||||
rules: {
|
||||
"no-prototype-builtins": 0,
|
||||
"no-useless-escape": 0,
|
||||
"no-irregular-whitespace": 0,
|
||||
"no-inner-declarations": 0,
|
||||
|
||||
"no-unused-vars": [0, {
|
||||
varsIgnorePattern: "^_",
|
||||
args: "none",
|
||||
}],
|
||||
|
||||
"no-empty": 0,
|
||||
"no-redeclare": 0,
|
||||
"no-constant-condition": 0,
|
||||
"no-loss-of-precision": 0,
|
||||
semi: 2,
|
||||
|
||||
"no-restricted-syntax": ["error", {
|
||||
message: "Invalid load call. Please convert your library to a module and import it instead.",
|
||||
selector: "CallExpression > Identifier[name=\"load\"]",
|
||||
}],
|
||||
},
|
||||
}];
|
||||
|
|
@ -601,7 +601,7 @@ tasks:
|
|||
jepsen_test_name: set
|
||||
|
||||
# TODO(SERVER-97804): rename if display_name appears on the evergreen UI
|
||||
- name: bazel_run_//:format
|
||||
- name: bazel_run_format
|
||||
tags:
|
||||
[
|
||||
"assigned_to_jira_team_devprod_build",
|
||||
|
|
@ -796,6 +796,9 @@ tasks:
|
|||
"development_critical_single_variant",
|
||||
"lint",
|
||||
]
|
||||
depends_on:
|
||||
- name: version_expansions_gen
|
||||
variant: generate-tasks-for-version
|
||||
commands:
|
||||
- command: timeout.update
|
||||
params:
|
||||
|
|
|
|||
|
|
@ -116,10 +116,17 @@ buildvariants:
|
|||
- name: compile_jstestshell_TG
|
||||
distros:
|
||||
- amazon2-arm64-latest-nvme
|
||||
- name: .development_critical_single_variant !.requires_large_host
|
||||
- name: .development_critical_single_variant .requires_large_host
|
||||
# TODO(SERVER-99105): Remove the lint/non-lint branch once this is on AL2023
|
||||
- name: .development_critical_single_variant !.requires_large_host !.lint
|
||||
- name: .development_critical_single_variant .requires_large_host !.lint
|
||||
distros:
|
||||
- amazon2-arm64-latest-xlarge
|
||||
- name: .development_critical_single_variant !.requires_large_host .lint
|
||||
distros:
|
||||
- amazon2023.3-arm64-small
|
||||
- name: .development_critical_single_variant .requires_large_host .lint
|
||||
distros:
|
||||
- amazon2023.3-arm64-large
|
||||
- name: .development_critical .requires_compile_variant !.requires_large_host !.incompatible_development_variant !.stitch !.crypt
|
||||
- name: .development_critical .requires_compile_variant .requires_large_host !.incompatible_development_variant !.stitch !.crypt
|
||||
distros:
|
||||
|
|
@ -211,10 +218,17 @@ buildvariants:
|
|||
- name: compile_test_parallel_dbtest_stream_TG
|
||||
distros:
|
||||
- amazon2-arm64-xlarge-commitqueue
|
||||
- name: .development_critical_single_variant !.requires_large_host !.clang_tidy !libdeps_graph_linting
|
||||
- name: .development_critical_single_variant .requires_large_host !.clang_tidy !libdeps_graph_linting
|
||||
# TODO(SERVER-99105): Remove the lint/non-lint branch once this is on AL2023
|
||||
- name: .development_critical_single_variant !.requires_large_host !.clang_tidy !libdeps_graph_linting !.lint
|
||||
- name: .development_critical_single_variant .requires_large_host !.clang_tidy !libdeps_graph_linting !.lint
|
||||
distros:
|
||||
- amazon2-arm64-latest-large
|
||||
- name: .development_critical_single_variant !.requires_large_host !.clang_tidy !libdeps_graph_linting .lint
|
||||
distros:
|
||||
- amazon2023.3-arm64-small
|
||||
- name: .development_critical_single_variant .requires_large_host !.clang_tidy !libdeps_graph_linting .lint
|
||||
distros:
|
||||
- amazon2023.3-arm64-large
|
||||
- name: .development_critical !.requires_large_host_commit_queue
|
||||
- name: .development_critical .requires_large_host_commit_queue
|
||||
distros:
|
||||
|
|
|
|||
|
|
@ -716,10 +716,17 @@ buildvariants:
|
|||
- name: compile_jstestshell_TG
|
||||
distros:
|
||||
- amazon2-arm64-latest-nvme
|
||||
- name: .development_critical_single_variant !.requires_large_host
|
||||
- name: .development_critical_single_variant .requires_large_host
|
||||
# TODO(SERVER-99105): Remove the lint/non-lint branch once this is on AL2023
|
||||
- name: .development_critical_single_variant !.requires_large_host !.lint
|
||||
- name: .development_critical_single_variant .requires_large_host !.lint
|
||||
distros:
|
||||
- amazon2-arm64-latest-xlarge
|
||||
- name: .development_critical_single_variant !.requires_large_host .lint
|
||||
distros:
|
||||
- amazon2023.3-arm64-small
|
||||
- name: .development_critical_single_variant .requires_large_host .lint
|
||||
distros:
|
||||
- amazon2023.3-arm64-large
|
||||
- name: .development_critical .requires_compile_variant !.requires_large_host !.incompatible_development_variant !.stitch !.crypt
|
||||
- name: .development_critical .requires_compile_variant .requires_large_host !.incompatible_development_variant !.stitch !.crypt
|
||||
distros:
|
||||
|
|
|
|||
11
package.json
11
package.json
|
|
@ -3,7 +3,14 @@
|
|||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"prettier": "3.4.2",
|
||||
"eslint": "8.28.0"
|
||||
"@eslint/js": "^9",
|
||||
"@eslint/eslintrc": "3.2.0",
|
||||
"eslint": "9.19.0",
|
||||
"globals": "14.0.0",
|
||||
"eslint-formatter-unix": "^8.40.0",
|
||||
"prettier": "3.4.2"
|
||||
},
|
||||
"pnpm": {
|
||||
"onlyBuiltDependencies": []
|
||||
}
|
||||
}
|
||||
|
|
|
|||
418
pnpm-lock.yaml
418
pnpm-lock.yaml
|
|
@ -4,30 +4,75 @@ settings:
|
|||
autoInstallPeers: true
|
||||
excludeLinksFromLockfile: false
|
||||
|
||||
onlyBuiltDependencies: []
|
||||
|
||||
importers:
|
||||
|
||||
.:
|
||||
devDependencies:
|
||||
'@eslint/eslintrc':
|
||||
specifier: 3.2.0
|
||||
version: 3.2.0
|
||||
'@eslint/js':
|
||||
specifier: ^9
|
||||
version: 9.19.0
|
||||
eslint:
|
||||
specifier: 8.28.0
|
||||
version: 8.28.0
|
||||
specifier: 9.19.0
|
||||
version: 9.19.0
|
||||
eslint-formatter-unix:
|
||||
specifier: ^8.40.0
|
||||
version: 8.40.0
|
||||
globals:
|
||||
specifier: 14.0.0
|
||||
version: 14.0.0
|
||||
prettier:
|
||||
specifier: 3.2.5
|
||||
version: 3.2.5
|
||||
specifier: 3.4.2
|
||||
version: 3.4.2
|
||||
|
||||
packages:
|
||||
|
||||
/@aashutoshrathi/word-wrap@1.2.6:
|
||||
resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
/@eslint-community/eslint-utils@4.4.1(eslint@9.19.0):
|
||||
resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
|
||||
dependencies:
|
||||
eslint: 9.19.0
|
||||
eslint-visitor-keys: 3.4.3
|
||||
dev: true
|
||||
|
||||
/@eslint/eslintrc@1.4.1:
|
||||
resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
/@eslint-community/regexpp@4.12.1:
|
||||
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
|
||||
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
|
||||
dev: true
|
||||
|
||||
/@eslint/config-array@0.19.1:
|
||||
resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
dependencies:
|
||||
'@eslint/object-schema': 2.1.5
|
||||
debug: 4.4.0
|
||||
minimatch: 3.1.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@eslint/core@0.10.0:
|
||||
resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
dependencies:
|
||||
'@types/json-schema': 7.0.15
|
||||
dev: true
|
||||
|
||||
/@eslint/eslintrc@3.2.0:
|
||||
resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
dependencies:
|
||||
ajv: 6.12.6
|
||||
debug: 4.3.4
|
||||
espree: 9.6.1
|
||||
globals: 13.24.0
|
||||
ignore: 5.3.0
|
||||
debug: 4.4.0
|
||||
espree: 10.3.0
|
||||
globals: 14.0.0
|
||||
ignore: 5.3.2
|
||||
import-fresh: 3.3.0
|
||||
js-yaml: 4.1.0
|
||||
minimatch: 3.1.2
|
||||
|
|
@ -36,15 +81,35 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@humanwhocodes/config-array@0.11.14:
|
||||
resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
|
||||
engines: {node: '>=10.10.0'}
|
||||
/@eslint/js@9.19.0:
|
||||
resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
dev: true
|
||||
|
||||
/@eslint/object-schema@2.1.5:
|
||||
resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
dev: true
|
||||
|
||||
/@eslint/plugin-kit@0.2.5:
|
||||
resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
dependencies:
|
||||
'@humanwhocodes/object-schema': 2.0.2
|
||||
debug: 4.3.4
|
||||
minimatch: 3.1.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
'@eslint/core': 0.10.0
|
||||
levn: 0.4.1
|
||||
dev: true
|
||||
|
||||
/@humanfs/core@0.19.1:
|
||||
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
|
||||
engines: {node: '>=18.18.0'}
|
||||
dev: true
|
||||
|
||||
/@humanfs/node@0.16.6:
|
||||
resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
|
||||
engines: {node: '>=18.18.0'}
|
||||
dependencies:
|
||||
'@humanfs/core': 0.19.1
|
||||
'@humanwhocodes/retry': 0.3.1
|
||||
dev: true
|
||||
|
||||
/@humanwhocodes/module-importer@1.0.1:
|
||||
|
|
@ -52,41 +117,34 @@ packages:
|
|||
engines: {node: '>=12.22'}
|
||||
dev: true
|
||||
|
||||
/@humanwhocodes/object-schema@2.0.2:
|
||||
resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
|
||||
/@humanwhocodes/retry@0.3.1:
|
||||
resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
|
||||
engines: {node: '>=18.18'}
|
||||
dev: true
|
||||
|
||||
/@nodelib/fs.scandir@2.1.5:
|
||||
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
|
||||
engines: {node: '>= 8'}
|
||||
dependencies:
|
||||
'@nodelib/fs.stat': 2.0.5
|
||||
run-parallel: 1.2.0
|
||||
/@humanwhocodes/retry@0.4.1:
|
||||
resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==}
|
||||
engines: {node: '>=18.18'}
|
||||
dev: true
|
||||
|
||||
/@nodelib/fs.stat@2.0.5:
|
||||
resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
|
||||
engines: {node: '>= 8'}
|
||||
/@types/estree@1.0.6:
|
||||
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
|
||||
dev: true
|
||||
|
||||
/@nodelib/fs.walk@1.2.8:
|
||||
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
|
||||
engines: {node: '>= 8'}
|
||||
dependencies:
|
||||
'@nodelib/fs.scandir': 2.1.5
|
||||
fastq: 1.17.0
|
||||
/@types/json-schema@7.0.15:
|
||||
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
|
||||
dev: true
|
||||
|
||||
/acorn-jsx@5.3.2(acorn@8.11.3):
|
||||
/acorn-jsx@5.3.2(acorn@8.14.0):
|
||||
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
|
||||
peerDependencies:
|
||||
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||
dependencies:
|
||||
acorn: 8.11.3
|
||||
acorn: 8.14.0
|
||||
dev: true
|
||||
|
||||
/acorn@8.11.3:
|
||||
resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
|
||||
/acorn@8.14.0:
|
||||
resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
|
||||
engines: {node: '>=0.4.0'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
|
@ -100,11 +158,6 @@ packages:
|
|||
uri-js: 4.4.1
|
||||
dev: true
|
||||
|
||||
/ansi-regex@5.0.1:
|
||||
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/ansi-styles@4.3.0:
|
||||
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
|
||||
engines: {node: '>=8'}
|
||||
|
|
@ -155,8 +208,8 @@ packages:
|
|||
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
|
||||
dev: true
|
||||
|
||||
/cross-spawn@7.0.3:
|
||||
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
|
||||
/cross-spawn@7.0.6:
|
||||
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
|
||||
engines: {node: '>= 8'}
|
||||
dependencies:
|
||||
path-key: 3.1.1
|
||||
|
|
@ -164,8 +217,8 @@ packages:
|
|||
which: 2.0.2
|
||||
dev: true
|
||||
|
||||
/debug@4.3.4:
|
||||
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
|
||||
/debug@4.4.0:
|
||||
resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
|
||||
engines: {node: '>=6.0'}
|
||||
peerDependencies:
|
||||
supports-color: '*'
|
||||
|
|
@ -173,112 +226,100 @@ packages:
|
|||
supports-color:
|
||||
optional: true
|
||||
dependencies:
|
||||
ms: 2.1.2
|
||||
ms: 2.1.3
|
||||
dev: true
|
||||
|
||||
/deep-is@0.1.4:
|
||||
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
|
||||
dev: true
|
||||
|
||||
/doctrine@3.0.0:
|
||||
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
dependencies:
|
||||
esutils: 2.0.3
|
||||
dev: true
|
||||
|
||||
/escape-string-regexp@4.0.0:
|
||||
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
|
||||
engines: {node: '>=10'}
|
||||
dev: true
|
||||
|
||||
/eslint-scope@7.2.2:
|
||||
resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
|
||||
/eslint-formatter-unix@8.40.0:
|
||||
resolution: {integrity: sha512-gfsmFZ/cb1MobrMfYl2IPFLZEz2tWQVO/tnmziNQdhWJMN85GfZD64dcPsEgaEoeVKgAtK6W9LWLlOxhJWZvDw==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
dev: true
|
||||
|
||||
/eslint-scope@8.2.0:
|
||||
resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
dependencies:
|
||||
esrecurse: 4.3.0
|
||||
estraverse: 5.3.0
|
||||
dev: true
|
||||
|
||||
/eslint-utils@3.0.0(eslint@8.28.0):
|
||||
resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
|
||||
engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
|
||||
peerDependencies:
|
||||
eslint: '>=5'
|
||||
dependencies:
|
||||
eslint: 8.28.0
|
||||
eslint-visitor-keys: 2.1.0
|
||||
dev: true
|
||||
|
||||
/eslint-visitor-keys@2.1.0:
|
||||
resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
|
||||
engines: {node: '>=10'}
|
||||
dev: true
|
||||
|
||||
/eslint-visitor-keys@3.4.3:
|
||||
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
dev: true
|
||||
|
||||
/eslint@8.28.0:
|
||||
resolution: {integrity: sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
/eslint-visitor-keys@4.2.0:
|
||||
resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
dev: true
|
||||
|
||||
/eslint@9.19.0:
|
||||
resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
jiti: '*'
|
||||
peerDependenciesMeta:
|
||||
jiti:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@eslint/eslintrc': 1.4.1
|
||||
'@humanwhocodes/config-array': 0.11.14
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0)
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
'@eslint/config-array': 0.19.1
|
||||
'@eslint/core': 0.10.0
|
||||
'@eslint/eslintrc': 3.2.0
|
||||
'@eslint/js': 9.19.0
|
||||
'@eslint/plugin-kit': 0.2.5
|
||||
'@humanfs/node': 0.16.6
|
||||
'@humanwhocodes/module-importer': 1.0.1
|
||||
'@nodelib/fs.walk': 1.2.8
|
||||
'@humanwhocodes/retry': 0.4.1
|
||||
'@types/estree': 1.0.6
|
||||
'@types/json-schema': 7.0.15
|
||||
ajv: 6.12.6
|
||||
chalk: 4.1.2
|
||||
cross-spawn: 7.0.3
|
||||
debug: 4.3.4
|
||||
doctrine: 3.0.0
|
||||
cross-spawn: 7.0.6
|
||||
debug: 4.4.0
|
||||
escape-string-regexp: 4.0.0
|
||||
eslint-scope: 7.2.2
|
||||
eslint-utils: 3.0.0(eslint@8.28.0)
|
||||
eslint-visitor-keys: 3.4.3
|
||||
espree: 9.6.1
|
||||
esquery: 1.5.0
|
||||
eslint-scope: 8.2.0
|
||||
eslint-visitor-keys: 4.2.0
|
||||
espree: 10.3.0
|
||||
esquery: 1.6.0
|
||||
esutils: 2.0.3
|
||||
fast-deep-equal: 3.1.3
|
||||
file-entry-cache: 6.0.1
|
||||
file-entry-cache: 8.0.0
|
||||
find-up: 5.0.0
|
||||
glob-parent: 6.0.2
|
||||
globals: 13.24.0
|
||||
grapheme-splitter: 1.0.4
|
||||
ignore: 5.3.0
|
||||
import-fresh: 3.3.0
|
||||
ignore: 5.3.2
|
||||
imurmurhash: 0.1.4
|
||||
is-glob: 4.0.3
|
||||
is-path-inside: 3.0.3
|
||||
js-sdsl: 4.4.2
|
||||
js-yaml: 4.1.0
|
||||
json-stable-stringify-without-jsonify: 1.0.1
|
||||
levn: 0.4.1
|
||||
lodash.merge: 4.6.2
|
||||
minimatch: 3.1.2
|
||||
natural-compare: 1.4.0
|
||||
optionator: 0.9.3
|
||||
regexpp: 3.2.0
|
||||
strip-ansi: 6.0.1
|
||||
strip-json-comments: 3.1.1
|
||||
text-table: 0.2.0
|
||||
optionator: 0.9.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/espree@9.6.1:
|
||||
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
/espree@10.3.0:
|
||||
resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
dependencies:
|
||||
acorn: 8.11.3
|
||||
acorn-jsx: 5.3.2(acorn@8.11.3)
|
||||
eslint-visitor-keys: 3.4.3
|
||||
acorn: 8.14.0
|
||||
acorn-jsx: 5.3.2(acorn@8.14.0)
|
||||
eslint-visitor-keys: 4.2.0
|
||||
dev: true
|
||||
|
||||
/esquery@1.5.0:
|
||||
resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
|
||||
/esquery@1.6.0:
|
||||
resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
|
||||
engines: {node: '>=0.10'}
|
||||
dependencies:
|
||||
estraverse: 5.3.0
|
||||
|
|
@ -313,17 +354,11 @@ packages:
|
|||
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
|
||||
dev: true
|
||||
|
||||
/fastq@1.17.0:
|
||||
resolution: {integrity: sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==}
|
||||
/file-entry-cache@8.0.0:
|
||||
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
|
||||
engines: {node: '>=16.0.0'}
|
||||
dependencies:
|
||||
reusify: 1.0.4
|
||||
dev: true
|
||||
|
||||
/file-entry-cache@6.0.1:
|
||||
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
|
||||
engines: {node: ^10.12.0 || >=12.0.0}
|
||||
dependencies:
|
||||
flat-cache: 3.2.0
|
||||
flat-cache: 4.0.1
|
||||
dev: true
|
||||
|
||||
/find-up@5.0.0:
|
||||
|
|
@ -334,21 +369,16 @@ packages:
|
|||
path-exists: 4.0.0
|
||||
dev: true
|
||||
|
||||
/flat-cache@3.2.0:
|
||||
resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
|
||||
engines: {node: ^10.12.0 || >=12.0.0}
|
||||
/flat-cache@4.0.1:
|
||||
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
|
||||
engines: {node: '>=16'}
|
||||
dependencies:
|
||||
flatted: 3.2.9
|
||||
flatted: 3.3.2
|
||||
keyv: 4.5.4
|
||||
rimraf: 3.0.2
|
||||
dev: true
|
||||
|
||||
/flatted@3.2.9:
|
||||
resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
|
||||
dev: true
|
||||
|
||||
/fs.realpath@1.0.0:
|
||||
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
|
||||
/flatted@3.3.2:
|
||||
resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==}
|
||||
dev: true
|
||||
|
||||
/glob-parent@6.0.2:
|
||||
|
|
@ -358,26 +388,9 @@ packages:
|
|||
is-glob: 4.0.3
|
||||
dev: true
|
||||
|
||||
/glob@7.2.3:
|
||||
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
|
||||
dependencies:
|
||||
fs.realpath: 1.0.0
|
||||
inflight: 1.0.6
|
||||
inherits: 2.0.4
|
||||
minimatch: 3.1.2
|
||||
once: 1.4.0
|
||||
path-is-absolute: 1.0.1
|
||||
dev: true
|
||||
|
||||
/globals@13.24.0:
|
||||
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
type-fest: 0.20.2
|
||||
dev: true
|
||||
|
||||
/grapheme-splitter@1.0.4:
|
||||
resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
|
||||
/globals@14.0.0:
|
||||
resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
|
||||
engines: {node: '>=18'}
|
||||
dev: true
|
||||
|
||||
/has-flag@4.0.0:
|
||||
|
|
@ -385,8 +398,8 @@ packages:
|
|||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/ignore@5.3.0:
|
||||
resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==}
|
||||
/ignore@5.3.2:
|
||||
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
|
||||
engines: {node: '>= 4'}
|
||||
dev: true
|
||||
|
||||
|
|
@ -403,17 +416,6 @@ packages:
|
|||
engines: {node: '>=0.8.19'}
|
||||
dev: true
|
||||
|
||||
/inflight@1.0.6:
|
||||
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: true
|
||||
|
||||
/inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
dev: true
|
||||
|
||||
/is-extglob@2.1.1:
|
||||
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
|
@ -426,19 +428,10 @@ packages:
|
|||
is-extglob: 2.1.1
|
||||
dev: true
|
||||
|
||||
/is-path-inside@3.0.3:
|
||||
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/isexe@2.0.0:
|
||||
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
|
||||
dev: true
|
||||
|
||||
/js-sdsl@4.4.2:
|
||||
resolution: {integrity: sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==}
|
||||
dev: true
|
||||
|
||||
/js-yaml@4.1.0:
|
||||
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
|
||||
hasBin: true
|
||||
|
|
@ -489,30 +482,24 @@ packages:
|
|||
brace-expansion: 1.1.11
|
||||
dev: true
|
||||
|
||||
/ms@2.1.2:
|
||||
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
|
||||
/ms@2.1.3:
|
||||
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
||||
dev: true
|
||||
|
||||
/natural-compare@1.4.0:
|
||||
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
|
||||
dev: true
|
||||
|
||||
/once@1.4.0:
|
||||
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: true
|
||||
|
||||
/optionator@0.9.3:
|
||||
resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
|
||||
/optionator@0.9.4:
|
||||
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
dependencies:
|
||||
'@aashutoshrathi/word-wrap': 1.2.6
|
||||
deep-is: 0.1.4
|
||||
fast-levenshtein: 2.0.6
|
||||
levn: 0.4.1
|
||||
prelude-ls: 1.2.1
|
||||
type-check: 0.4.0
|
||||
word-wrap: 1.2.5
|
||||
dev: true
|
||||
|
||||
/p-limit@3.1.0:
|
||||
|
|
@ -541,11 +528,6 @@ packages:
|
|||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/path-is-absolute@1.0.1:
|
||||
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/path-key@3.1.1:
|
||||
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
|
||||
engines: {node: '>=8'}
|
||||
|
|
@ -556,8 +538,8 @@ packages:
|
|||
engines: {node: '>= 0.8.0'}
|
||||
dev: true
|
||||
|
||||
/prettier@3.2.5:
|
||||
resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
|
||||
/prettier@3.4.2:
|
||||
resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==}
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
|
@ -567,38 +549,11 @@ packages:
|
|||
engines: {node: '>=6'}
|
||||
dev: true
|
||||
|
||||
/queue-microtask@1.2.3:
|
||||
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
|
||||
dev: true
|
||||
|
||||
/regexpp@3.2.0:
|
||||
resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/resolve-from@4.0.0:
|
||||
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
|
||||
engines: {node: '>=4'}
|
||||
dev: true
|
||||
|
||||
/reusify@1.0.4:
|
||||
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
|
||||
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/rimraf@3.0.2:
|
||||
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
glob: 7.2.3
|
||||
dev: true
|
||||
|
||||
/run-parallel@1.2.0:
|
||||
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
|
||||
dependencies:
|
||||
queue-microtask: 1.2.3
|
||||
dev: true
|
||||
|
||||
/shebang-command@2.0.0:
|
||||
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
|
||||
engines: {node: '>=8'}
|
||||
|
|
@ -611,13 +566,6 @@ packages:
|
|||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/strip-ansi@6.0.1:
|
||||
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
ansi-regex: 5.0.1
|
||||
dev: true
|
||||
|
||||
/strip-json-comments@3.1.1:
|
||||
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
||||
engines: {node: '>=8'}
|
||||
|
|
@ -630,10 +578,6 @@ packages:
|
|||
has-flag: 4.0.0
|
||||
dev: true
|
||||
|
||||
/text-table@0.2.0:
|
||||
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
|
||||
dev: true
|
||||
|
||||
/type-check@0.4.0:
|
||||
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
|
|
@ -641,11 +585,6 @@ packages:
|
|||
prelude-ls: 1.2.1
|
||||
dev: true
|
||||
|
||||
/type-fest@0.20.2:
|
||||
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
|
||||
engines: {node: '>=10'}
|
||||
dev: true
|
||||
|
||||
/uri-js@4.4.1:
|
||||
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
||||
dependencies:
|
||||
|
|
@ -660,8 +599,9 @@ packages:
|
|||
isexe: 2.0.0
|
||||
dev: true
|
||||
|
||||
/wrappy@1.0.2:
|
||||
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
|
||||
/word-wrap@1.2.5:
|
||||
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/yocto-queue@0.1.0:
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ description = "Backport of CPython tarfile module"
|
|||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
groups = ["export", "jira-client"]
|
||||
markers = "python_version < \"3.12\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
markers = "(\"el8\" in platform_release or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\") and python_version < \"3.12\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
files = [
|
||||
{file = "backports.tarfile-1.2.0-py3-none-any.whl", hash = "sha256:77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34"},
|
||||
{file = "backports_tarfile-1.2.0.tar.gz", hash = "sha256:d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991"},
|
||||
|
|
@ -290,7 +290,7 @@ files = [
|
|||
{file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"},
|
||||
{file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"},
|
||||
]
|
||||
markers = {main = "platform_python_implementation == \"CPython\" and sys_platform == \"win32\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")", export = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" or (platform_machine == \"ppc64le\" or platform_machine == \"s390x\") and (sys_platform == \"linux\" or sys_platform == \"darwin\")", external-auth = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" and platform_machine != \"ppc64le\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\"", jira-client = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" or (platform_machine == \"ppc64le\" or platform_machine == \"s390x\") and sys_platform == \"linux\"", platform = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\"", testing = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" and platform_machine != \"ppc64le\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\""}
|
||||
markers = {main = "platform_python_implementation == \"CPython\" and sys_platform == \"win32\" and (\"el8\" in platform_release or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\") and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")", export = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" or (platform_machine == \"ppc64le\" or platform_machine == \"s390x\") and (sys_platform == \"linux\" or sys_platform == \"darwin\")", external-auth = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" and platform_machine != \"ppc64le\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\"", jira-client = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" or (platform_machine == \"ppc64le\" or platform_machine == \"s390x\") and sys_platform == \"linux\"", platform = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\"", testing = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" and platform_machine != \"ppc64le\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\""}
|
||||
|
||||
[package.dependencies]
|
||||
pycparser = "*"
|
||||
|
|
@ -918,7 +918,7 @@ description = "Backport of PEP 654 (exception groups)"
|
|||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
groups = ["testing"]
|
||||
markers = "python_version < \"3.11\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
markers = "(\"el8\" in platform_release or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\") and python_version < \"3.11\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
files = [
|
||||
{file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"},
|
||||
{file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"},
|
||||
|
|
@ -1308,7 +1308,7 @@ files = [
|
|||
{file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"},
|
||||
{file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"},
|
||||
]
|
||||
markers = {export = "python_version < \"3.12\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")", jira-client = "python_version < \"3.12\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")", testing = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" and platform_machine != \"ppc64le\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\""}
|
||||
markers = {export = "(\"el8\" in platform_release or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\") and python_version < \"3.12\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")", jira-client = "(\"el8\" in platform_release or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\") and python_version < \"3.12\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")", testing = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" and platform_machine != \"ppc64le\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\""}
|
||||
|
||||
[package.dependencies]
|
||||
zipp = ">=3.20"
|
||||
|
|
@ -1449,7 +1449,7 @@ description = "Low-level, pure Python DBus protocol wrapper."
|
|||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
groups = ["export", "jira-client"]
|
||||
markers = "sys_platform == \"linux\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
markers = "(\"el8\" in platform_release or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\") and sys_platform == \"linux\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
files = [
|
||||
{file = "jeepney-0.8.0-py3-none-any.whl", hash = "sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755"},
|
||||
{file = "jeepney-0.8.0.tar.gz", hash = "sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806"},
|
||||
|
|
@ -2692,7 +2692,7 @@ files = [
|
|||
{file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"},
|
||||
{file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"},
|
||||
]
|
||||
markers = {main = "platform_python_implementation == \"CPython\" and sys_platform == \"win32\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")", export = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" or (platform_machine == \"ppc64le\" or platform_machine == \"s390x\") and (sys_platform == \"linux\" or sys_platform == \"darwin\")", external-auth = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" and platform_machine != \"ppc64le\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\"", jira-client = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" or (platform_machine == \"ppc64le\" or platform_machine == \"s390x\") and sys_platform == \"linux\"", platform = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\"", testing = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" and platform_machine != \"ppc64le\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\""}
|
||||
markers = {main = "platform_python_implementation == \"CPython\" and sys_platform == \"win32\" and (\"el8\" in platform_release or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\") and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")", export = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" or (platform_machine == \"ppc64le\" or platform_machine == \"s390x\") and (sys_platform == \"linux\" or sys_platform == \"darwin\")", external-auth = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" and platform_machine != \"ppc64le\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\"", jira-client = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" or (platform_machine == \"ppc64le\" or platform_machine == \"s390x\") and sys_platform == \"linux\"", platform = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\"", testing = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" and platform_machine != \"ppc64le\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\""}
|
||||
|
||||
[[package]]
|
||||
name = "pydantic"
|
||||
|
|
@ -3082,7 +3082,7 @@ description = ""
|
|||
optional = false
|
||||
python-versions = "*"
|
||||
groups = ["platform"]
|
||||
markers = "sys_platform == \"win32\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
markers = "(\"el8\" in platform_release or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\") and sys_platform == \"win32\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
files = [
|
||||
{file = "pypiwin32-223-py3-none-any.whl", hash = "sha256:67adf399debc1d5d14dffc1ab5acacb800da569754fafdc576b2a039485aa775"},
|
||||
{file = "pypiwin32-223.tar.gz", hash = "sha256:71be40c1fbd28594214ecaecb58e7aa8b708eabfa0125c8a109ebd51edbd776a"},
|
||||
|
|
@ -3106,23 +3106,25 @@ files = [
|
|||
|
||||
[[package]]
|
||||
name = "pyright"
|
||||
version = "1.1.380"
|
||||
version = "1.1.393"
|
||||
description = "Command line wrapper for pyright"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
groups = ["main"]
|
||||
markers = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" and platform_machine != \"ppc64le\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\""
|
||||
files = [
|
||||
{file = "pyright-1.1.380-py3-none-any.whl", hash = "sha256:a6404392053d8848bacc7aebcbd9d318bb46baf1a1a000359305481920f43879"},
|
||||
{file = "pyright-1.1.380.tar.gz", hash = "sha256:e6ceb1a5f7e9f03106e0aa1d6fbb4d97735a5e7ffb59f3de6b2db590baf935b2"},
|
||||
{file = "pyright-1.1.393-py3-none-any.whl", hash = "sha256:8320629bb7a44ca90944ba599390162bf59307f3d9fb6e27da3b7011b8c17ae5"},
|
||||
{file = "pyright-1.1.393.tar.gz", hash = "sha256:aeeb7ff4e0364775ef416a80111613f91a05c8e01e58ecfefc370ca0db7aed9c"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
nodeenv = ">=1.6.0"
|
||||
typing-extensions = ">=4.1"
|
||||
|
||||
[package.extras]
|
||||
all = ["twine (>=3.4.1)"]
|
||||
all = ["nodejs-wheel-binaries", "twine (>=3.4.1)"]
|
||||
dev = ["twine (>=3.4.1)"]
|
||||
nodejs = ["nodejs-wheel-binaries"]
|
||||
|
||||
[[package]]
|
||||
name = "pysocks"
|
||||
|
|
@ -3215,7 +3217,7 @@ files = [
|
|||
{file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"},
|
||||
{file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"},
|
||||
]
|
||||
markers = {main = "(platform_system == \"Windows\" or sys_platform == \"win32\") and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")", platform = "sys_platform == \"win32\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")", testing = "sys_platform == \"win32\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"}
|
||||
markers = {main = "(platform_system == \"Windows\" or sys_platform == \"win32\") and (\"el8\" in platform_release or platform_machine != \"s390x\" and platform_machine != \"ppc64le\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\") and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")", platform = "(\"el8\" in platform_release or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\") and sys_platform == \"win32\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")", testing = "(\"el8\" in platform_release or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\") and sys_platform == \"win32\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"}
|
||||
|
||||
[[package]]
|
||||
name = "pywin32-ctypes"
|
||||
|
|
@ -3224,7 +3226,7 @@ description = "A (partial) reimplementation of pywin32 using ctypes/cffi"
|
|||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
groups = ["export", "jira-client"]
|
||||
markers = "sys_platform == \"win32\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
markers = "(\"el8\" in platform_release or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\") and sys_platform == \"win32\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
files = [
|
||||
{file = "pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755"},
|
||||
{file = "pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8"},
|
||||
|
|
@ -3780,7 +3782,7 @@ description = "Python bindings to FreeDesktop.org Secret Service API"
|
|||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
groups = ["export", "jira-client"]
|
||||
markers = "sys_platform == \"linux\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
markers = "(\"el8\" in platform_release or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\") and sys_platform == \"linux\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
files = [
|
||||
{file = "SecretStorage-3.3.3-py3-none-any.whl", hash = "sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99"},
|
||||
{file = "SecretStorage-3.3.3.tar.gz", hash = "sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77"},
|
||||
|
|
@ -4105,7 +4107,7 @@ description = "A lil' TOML parser"
|
|||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
groups = ["export", "lint", "testing"]
|
||||
markers = "python_version < \"3.11\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
markers = "(\"el8\" in platform_release or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\") and python_version < \"3.11\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
files = [
|
||||
{file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"},
|
||||
{file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"},
|
||||
|
|
@ -4275,7 +4277,7 @@ description = "An extension for use in the twisted I/O Completion Ports reactor.
|
|||
optional = false
|
||||
python-versions = "*"
|
||||
groups = ["external-auth"]
|
||||
markers = "platform_system == \"Windows\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
markers = "(\"el8\" in platform_release or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\") and platform_system == \"Windows\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
files = [
|
||||
{file = "twisted-iocpsupport-1.0.4.tar.gz", hash = "sha256:858096c0d15e33f15ac157f455d8f86f2f2cdd223963e58c0f682a3af8362d89"},
|
||||
{file = "twisted_iocpsupport-1.0.4-cp310-cp310-win32.whl", hash = "sha256:afa2b630797f9ed2f27f3d9f55e3f72b4244911e45a8c82756f44babbf0b243e"},
|
||||
|
|
@ -4611,7 +4613,7 @@ description = "Python wrapper for extended filesystem attributes"
|
|||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
groups = ["export"]
|
||||
markers = "sys_platform == \"darwin\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
markers = "(\"el8\" in platform_release or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\") and sys_platform == \"darwin\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")"
|
||||
files = [
|
||||
{file = "xattr-1.1.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:acb85b6249e9f3ea10cbb56df1021d43f4027212f0d004304bc9075dc7f54769"},
|
||||
{file = "xattr-1.1.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1a848ab125c0fafdc501ccd83b4c9018bba576a037a4ca5960a22f39e295552e"},
|
||||
|
|
@ -4722,7 +4724,7 @@ files = [
|
|||
{file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"},
|
||||
{file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"},
|
||||
]
|
||||
markers = {export = "python_version < \"3.12\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")", jira-client = "python_version < \"3.12\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")", testing = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" and platform_machine != \"ppc64le\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\""}
|
||||
markers = {export = "(\"el8\" in platform_release or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\") and python_version < \"3.12\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")", jira-client = "(\"el8\" in platform_release or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\") and python_version < \"3.12\" and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\" or platform_machine != \"s390x\" and platform_machine != \"ppc64le\")", testing = "\"el8\" in platform_release and (platform_machine == \"s390x\" or platform_machine == \"ppc64le\") or platform_machine != \"s390x\" and platform_machine != \"ppc64le\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\""}
|
||||
|
||||
[package.extras]
|
||||
check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"]
|
||||
|
|
@ -4813,4 +4815,4 @@ libdeps = ["cxxfilt", "eventlet", "flask", "flask-cors", "gevent", "lxml", "prog
|
|||
[metadata]
|
||||
lock-version = "2.1"
|
||||
python-versions = ">=3.10,<4.0"
|
||||
content-hash = "c007c9def397da60b98a3cdd464c6748432a3dedcc87ac7bc4e4b452196daf7b"
|
||||
content-hash = "3183347cd7cbe83df8e7e60b9281de1f799c86cd4f271ae1c888109fd754d077"
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ packages = [
|
|||
]
|
||||
dependencies = [
|
||||
"networkx", # This is also used as a part of build_metrics so it is sort of required
|
||||
"pyright==1.1.380",
|
||||
"pyright (==1.1.393)",
|
||||
"flask",
|
||||
"flask-cors",
|
||||
"lxml",
|
||||
|
|
@ -41,7 +41,7 @@ gevent = { version = "*", optional = true }
|
|||
progressbar2 = { version = "*", optional = true }
|
||||
cxxfilt = { version = "*", optional = true }
|
||||
pympler = { version = "*", optional = true }
|
||||
pyright = "1.1.380"
|
||||
pyright = "1.1.393"
|
||||
|
||||
[tool.poetry.group.aws.dependencies]
|
||||
boto3 = "^1.34.156"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
"""Definition of the formatter binary
|
||||
|
||||
This is in its own package because it has so many loading-time symbols,
|
||||
we don't want to trigger eager fetches of these for builds that don't want to run format.
|
||||
"""
|
||||
|
||||
load("@npm//:eslint/package_json.bzl", eslint_bin = "bin")
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
eslint_bin.eslint_binary(name = "eslint")
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
"Define linter aspects"
|
||||
|
||||
load("@aspect_rules_lint//lint:eslint.bzl", "lint_eslint_aspect")
|
||||
load("@aspect_rules_lint//lint:lint_test.bzl", "lint_test")
|
||||
|
||||
eslint = lint_eslint_aspect(
|
||||
binary = Label("@//tools/lint:eslint"),
|
||||
configs = [
|
||||
Label("@//:eslintrc"),
|
||||
],
|
||||
)
|
||||
|
||||
eslint_test = lint_test(aspect = eslint)
|
||||
Loading…
Reference in New Issue