From 8d880c8937b7e18e315bdf460e1103c553838c2c Mon Sep 17 00:00:00 2001 From: Catarina Paralta Date: Wed, 13 May 2026 10:11:46 +0100 Subject: [PATCH 01/10] chore: remove dependabot and pr template Signed-off-by: Catarina Paralta --- .github/dependabot.yml | 12 ------------ .github/pull_request_template.md | 28 ---------------------------- 2 files changed, 40 deletions(-) delete mode 100644 .github/dependabot.yml delete mode 100644 .github/pull_request_template.md diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 3cecac4..0000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - groups: - github: - patterns: - - "actions/*" - - "github/*" - schedule: - interval: "weekly" diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index 9e94fc0..0000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,28 +0,0 @@ -# Description - -Please provide a meaningful description of what this change will do, or is for. -Bonus points for including links to related issues, other PRs, or technical -references. - -Note that by _not_ including a description, you are asking reviewers to do extra -work to understand the context of this change, which may lead to your PR taking -much longer to review, or result in it not being reviewed at all. - -## Type of Change - -- [ ] Bugfix -- [ ] New Feature -- [ ] Breaking Change -- [ ] Refactor -- [ ] Documentation -- [ ] Other (please describe) - -## Checklist - -- [ ] I have read the [contributing guidelines](/agntcy/dir-sdk-javascript/blob/main/CONTRIBUTING.md) -- [ ] Existing issues have been referenced (where applicable) -- [ ] I have verified this change is not present in other open pull requests -- [ ] Functionality is documented -- [ ] All code style checks pass -- [ ] New code contribution is covered by automated tests -- [ ] All new and existing tests pass From 77d9acb8ca807df7959e830cbf005c47aead7434 Mon Sep 17 00:00:00 2001 From: Catarina Paralta Date: Wed, 13 May 2026 10:12:06 +0100 Subject: [PATCH 02/10] chore: remove unused .cz.toml configuration file Signed-off-by: Catarina Paralta --- .cz.toml | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 .cz.toml diff --git a/.cz.toml b/.cz.toml deleted file mode 100644 index d98e25c..0000000 --- a/.cz.toml +++ /dev/null @@ -1,7 +0,0 @@ -[tool.commitizen] -name = "cz_conventional_commits" -tag_format = "$version" -version_scheme = "semver" -version = "0.0.1" -update_changelog_on_bump = true -major_version_zero = true From 14416f94ac3ef26d0b48b99d409e7c74e3e8adc9 Mon Sep 17 00:00:00 2001 From: Catarina Paralta Date: Wed, 13 May 2026 10:12:51 +0100 Subject: [PATCH 03/10] chore: remove markdown and yaml linters Signed-off-by: Catarina Paralta --- .github/linters/.markdownlint.yml | 43 ------------------------------- .github/linters/.yamllint.yml | 11 -------- .github/workflows/lint.yml | 42 ------------------------------ 3 files changed, 96 deletions(-) delete mode 100644 .github/linters/.markdownlint.yml delete mode 100644 .github/linters/.yamllint.yml delete mode 100644 .github/workflows/lint.yml diff --git a/.github/linters/.markdownlint.yml b/.github/linters/.markdownlint.yml deleted file mode 100644 index ccac334..0000000 --- a/.github/linters/.markdownlint.yml +++ /dev/null @@ -1,43 +0,0 @@ ---- -# Default state for all rules -default: true -# Path to configuration file to extend -extends: null - -# MD013/line-length -# https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md013.md -MD013: - # Number of characters - line_length: 150 - # Include code blocks - code_blocks: true - # Include tables - tables: true - # Include headings - headings: true - # Strict length checking - strict: false - # Stern length checking - stern: false - -# MD024/no-duplicate-heading -# https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md024.md -MD024: - # Only check sibling headings - siblings_only: true - -# MD025/single-title/single-h1 -# https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md025.md -MD025: - # RegExp for matching title in front matter - front_matter_title: "" - -# MD041/first-line-heading/first-line-h1 -# https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md041.md -MD041: - # RegExp for matching title in front matter - front_matter_title: "" - -# MD033/no-inline-html -MD033: - allowed_elements: ['a', 'img', 'alt', 'p'] diff --git a/.github/linters/.yamllint.yml b/.github/linters/.yamllint.yml deleted file mode 100644 index 0591216..0000000 --- a/.github/linters/.yamllint.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -extends: default - -rules: - line-length: - max: 120 - level: warning - comments: disable - indentation: disable - truthy: - check-keys: false diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml deleted file mode 100644 index da85f2a..0000000 --- a/.github/workflows/lint.yml +++ /dev/null @@ -1,42 +0,0 @@ ---- -name: lint - -# TODO: enable linter after migration -# on: -# push: -# # Run superlinter on pushes to default branch -# branches: -# - main -# # Run superlinter on pull request events -# pull_request: - -# Declare default permissions as read-only -permissions: read-all - -jobs: - super-linter: - runs-on: ubuntu-latest - permissions: - contents: read - packages: read - statuses: write - steps: - - name: ๐Ÿ”’ harden runner - uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0 - with: - egress-policy: audit - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - with: - fetch-depth: 0 - - name: ๐Ÿงน run superlinter - uses: super-linter/super-linter@85f7611e0f7b53c8573cca84aa0ed4344f6f6a4d # v7.2.1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - LINTER_RULES_PATH: ".github/linters" - MARKDOWN_CONFIG_FILE: ".markdownlint.yml" - YAML_CONFIG_FILE: ".yamllint.yml" - VALIDATE_ALL_CODEBASE: false - VALIDATE_MARKDOWN_PRETTIER: false - VALIDATE_YAML_PRETTIER: false - VALIDATE_NATURAL_LANGUAGE: false - MULTI_STATUS: false From 2cfbfcf5e61d131b0d3a98aaed54841ce8085552 Mon Sep 17 00:00:00 2001 From: Catarina Paralta Date: Wed, 13 May 2026 10:13:10 +0100 Subject: [PATCH 04/10] chore: consolidate into single taskfile Signed-off-by: Catarina Paralta --- Taskfile.deps.yml | 108 --------------- Taskfile.test-env.yml | 161 ----------------------- Taskfile.vars.yml | 19 --- Taskfile.yml | 297 +++++++++++++++++++++++++++++++++++++++--- 4 files changed, 280 insertions(+), 305 deletions(-) delete mode 100644 Taskfile.deps.yml delete mode 100644 Taskfile.test-env.yml delete mode 100644 Taskfile.vars.yml diff --git a/Taskfile.deps.yml b/Taskfile.deps.yml deleted file mode 100644 index 83506eb..0000000 --- a/Taskfile.deps.yml +++ /dev/null @@ -1,108 +0,0 @@ -# Copyright AGNTCY Contributors (https://github.com/agntcy) -# SPDX-License-Identifier: Apache-2.0 - -version: "3" - -tasks: - default: - cmd: echo "Run the main Taskfile instead of this one." - - deps:bin-dir: - desc: Create bin directory - run: once - cmd: mkdir -p {{.BIN_DIR}} - status: - - test -d {{.BIN_DIR}} - - deps:helm: - desc: Ensure supported Helm version is installed - internal: true - deps: - - deps:bin-dir - preconditions: - - which curl - - which tar - cmds: - - cmd: echo "Downloading Helm v{{.HELM_VERSION}}..." - - cmd: curl -sSfL 'https://get.helm.sh/helm-v{{.HELM_VERSION}}-{{OS}}-{{ARCH}}.tar.gz' --output - | tar xzvOf - '{{OS}}-{{ARCH}}/helm' > {{.HELM_BIN}} - - cmd: chmod +x {{.HELM_BIN}} - status: - - test -x {{.HELM_BIN}} - - deps:kubectl: - desc: Ensure supported kubectl version is installed - internal: true - deps: - - deps:bin-dir - preconditions: - - which curl - cmds: - - cmd: echo "Downloading Kubectl v{{.KUBECTL_VERSION}}..." - - cmd: curl -L "https://dl.k8s.io/release/v{{.KUBECTL_VERSION}}/bin/{{OS}}/{{ARCH}}/kubectl" -o {{.KUBECTL_BIN}} - - cmd: chmod +x {{.KUBECTL_BIN}} - status: - - test -x {{.KUBECTL_BIN}} - - deps:kind: - desc: Ensure supported kind version is installed - internal: true - deps: - - deps:bin-dir - preconditions: - - which go - cmds: - - cmd: echo "Downloading Kind v{{.KIND_VERSION}}..." - - cmd: GOBIN={{.BIN_DIR}} go install sigs.k8s.io/kind@v{{.KIND_VERSION}} - - cmd: mv {{.BIN_DIR}}/kind {{.KIND_BIN}} - status: - - test -x {{.KIND_BIN}} - - deps:cosign: - desc: Install sigstore cosign - internal: true - deps: - - deps:bin-dir - cmds: - - curl -sfL https://github.com/sigstore/cosign/releases/download/v{{.COSIGN_VERSION}}/cosign-{{OS}}-{{ARCH}} -o {{.BIN_DIR}}/cosign-{{.COSIGN_VERSION}} - - chmod +x {{.BIN_DIR}}/cosign-{{.COSIGN_VERSION}} - status: - - test -x {{.COSIGN_BIN}} - - deps:dir-ctl: - desc: Install dir-ctl - internal: true - run: once - vars: - DIRCTL_IMAGE_TAG: "{{ .DIRCTL_IMAGE_TAG }}" - preconditions: - - which docker - cmds: - - docker image pull ghcr.io/agntcy/dir-ctl:{{ .DIRCTL_IMAGE_TAG }} - - deps:renovate: - desc: Install Renovate - internal: true - cmd: npm install -g renovate@{{ .RENOVATE_VERSION }} - status: - - npm list -g renovate - - deps:renovate:sync: - desc: Sync dependencies with Renovate - summary: | - For extra CLI flags pass RENOVATE_OPTS (e.g. task deps:renovate:sync RENOVATE_OPTS='--dry-run'). - Default platform is local so local runs do not touch remote project data. - Github Action CI sets RENOVATE_PLATFORM to github. - This step is only analytical without GITHUB TOKEN and will not update PRs or project data. - deps: - - deps:renovate - dir: "{{ .ROOT_DIR }}" - vars: - RENOVATE_OPTS_DEFAULT: >- - --persist-repo-data 'true' - --allowed-post-upgrade-commands '[".*"]' - --post-upgrade-tasks '{"commands": ["task sdk:tidy"], "executionMode": "branch"}' - RENOVATE_OPTS: "{{ .RENOVATE_OPTS | default .RENOVATE_OPTS_DEFAULT }}" - RENOVATE_PLATFORM_EFFECTIVE: - sh: printf '%s' "${RENOVATE_PLATFORM:-local}" - cmds: - - renovate {{ .RENOVATE_OPTS }} --platform "{{ .RENOVATE_PLATFORM_EFFECTIVE }}" diff --git a/Taskfile.test-env.yml b/Taskfile.test-env.yml deleted file mode 100644 index b82dd48..0000000 --- a/Taskfile.test-env.yml +++ /dev/null @@ -1,161 +0,0 @@ -# Copyright AGNTCY Contributors (https://github.com/agntcy) -# SPDX-License-Identifier: Apache-2.0 - -version: "3" - -tasks: - default: - cmd: echo "Run the main Taskfile instead of this one." - - test-env:kubernetes:setup-cluster: - desc: Create a kind cluster and load Docker images - deps: - - deps:helm - - deps:kubectl - - deps:kind - vars: - KIND_CREATE_OPTS: '{{ .KIND_CREATE_OPTS | default "" }}' - KIND_CLUSTER_CONFIG_PATH: - sh: mktemp - # Port mapping is defined in the format of "hostPort1:containerPort1,hostPort2:containerPort2". - # Container port should match the NodePort of the service defined in the Helm chart. - KIND_EXTRA_PORT_MAPPING: '{{ .KIND_EXTRA_PORT_MAPPING | default "" }}' - cmds: - # Create cluster config - - | - cat < {{.KIND_CLUSTER_CONFIG_PATH}} - kind: Cluster - apiVersion: kind.x-k8s.io/v1alpha4 - nodes: - - role: control-plane - {{ if .KIND_EXTRA_PORT_MAPPING }} - extraPortMappings: - {{ range .KIND_EXTRA_PORT_MAPPING | splitList "," }} - - hostPort: {{ index (splitList ":" .) 0 }} - containerPort: {{ index (splitList ":" .) 1 }} - listenAddress: "127.0.0.1" - protocol: TCP - {{ end }} - {{ end }} - EOF - - # Create cluster - - | - {{ .KIND_BIN }} create cluster {{ .KIND_CREATE_OPTS }} --name {{ .KIND_CLUSTER_NAME }} --config {{ .KIND_CLUSTER_CONFIG_PATH }} - {{ .KIND_BIN }} export kubeconfig --name {{ .KIND_CLUSTER_NAME }} - {{ .KUBECTL_BIN }} cluster-info - - test-env:kubernetes:local: - aliases: [deploy:local] - desc: Deploy a local Directory server in Kubernetes - deps: - - task: test-env:kubernetes:setup-cluster - vars: - KIND_EXTRA_PORT_MAPPING: "{{.API_HOSTPORT}}:{{.API_NODEPORT}},{{.METRICS_HOSTPORT}}:{{.METRICS_NODEPORT}}" - vars: - # Kind args - KIND_CLUSTER_NAME: '{{ .KIND_CLUSTER_NAME | default "sdk-js-test" }}' - KIND_CREATE_OPTS: '{{ .KIND_CREATE_OPTS | default "" }}' - # Helm args - HELM_NAMESPACE: '{{ .HELM_NAMESPACE | default "dir-server" }}' - # API config - API_HOSTPORT: '{{ .API_HOSTPORT | default "8888" }}' - API_NODEPORT: '{{ .API_NODEPORT | default "30088" }}' - METRICS_HOSTPORT: '{{ .METRICS_HOSTPORT | default "9090" }}' - METRICS_NODEPORT: '{{ .METRICS_NODEPORT | default "30090" }}' - cmds: - # TODO: make logic idempotent so that running functional tests does not change previous contexts - - # Generate credentials and htpasswd file (using defaults) - - task: test-env:kubernetes:gen-htpasswd-creds - - # Cleanup credentials on exit (using defaults) - - defer: - task: test-env:kubernetes:cleanup-htpasswd-creds - - # Deploy chart - - | - # Load credentials - source /tmp/dir-htpasswd-creds.env - - {{ .HELM_BIN }} install dir oci://ghcr.io/agntcy/dir/helm-charts/dir \ - --version="{{ .DIR_CHART_VERSION }}" \ - --set apiserver.image.pullSecrets="" \ - --set apiserver.service.type="NodePort" \ - --set apiserver.service.nodePort="{{.API_NODEPORT}}" \ - --set apiserver.service.metricsNodePort="{{.METRICS_NODEPORT}}" \ - {{ if .DIRECTORY_SERVER_PUBLICATION_SCHEDULER_INTERVAL }}--set apiserver.config.publication.scheduler_interval="{{ .DIRECTORY_SERVER_PUBLICATION_SCHEDULER_INTERVAL }}"{{ end }} \ - {{ if .DIRECTORY_SERVER_NAMING_TTL }}--set apiserver.config.naming.ttl="{{ .DIRECTORY_SERVER_NAMING_TTL }}"{{ end }} \ - --set apiserver.config.routing.refresh_interval="1s" \ - --set apiserver.secrets.ociAuth.username="${HTPASSWD_USERNAME}" \ - --set apiserver.secrets.ociAuth.password="${HTPASSWD_PASSWORD}" \ - --set apiserver.zot.authHeader="${HTPASSWD_AUTH_HEADER}" \ - --set-file apiserver.zot.secretFiles.htpasswd="/tmp/dir-htpasswd" \ - --set apiserver.secrets.syncAuth.username="${HTPASSWD_SYNC_USERNAME}" \ - --set apiserver.secrets.syncAuth.password="${HTPASSWD_SYNC_PASSWORD}" \ - {{ if .DIRECTORY_SERVER_RATELIMIT_ENABLED }}--set apiserver.config.ratelimit.enabled="{{ .DIRECTORY_SERVER_RATELIMIT_ENABLED }}"{{ end }} \ - {{ if .DIRECTORY_SERVER_RATELIMIT_GLOBAL_RPS }}--set apiserver.config.ratelimit.global_rps="{{ .DIRECTORY_SERVER_RATELIMIT_GLOBAL_RPS }}"{{ end }} \ - {{ if .DIRECTORY_SERVER_RATELIMIT_GLOBAL_BURST }}--set apiserver.config.ratelimit.global_burst="{{ .DIRECTORY_SERVER_RATELIMIT_GLOBAL_BURST }}"{{ end }} \ - {{ if .DIRECTORY_SERVER_RATELIMIT_PER_CLIENT_RPS }}--set apiserver.config.ratelimit.per_client_rps="{{ .DIRECTORY_SERVER_RATELIMIT_PER_CLIENT_RPS }}"{{ end }} \ - {{ if .DIRECTORY_SERVER_RATELIMIT_PER_CLIENT_BURST }}--set apiserver.config.ratelimit.per_client_burst="{{ .DIRECTORY_SERVER_RATELIMIT_PER_CLIENT_BURST }}"{{ end }} \ - {{ if .DIRECTORY_SERVER_OASF_API_VALIDATION_SCHEMA_URL }}--set apiserver.config.oasf_api_validation.schema_url="{{ .DIRECTORY_SERVER_OASF_API_VALIDATION_SCHEMA_URL }}"{{ end }} \ - --set apiserver.reconciler.config.regsync.interval="10s" \ - --set apiserver.reconciler.config.indexer.interval="10s" \ - --set apiserver.reconciler.config.name.interval="5s" \ - --set apiserver.reconciler.config.signature.interval="5s" \ - --namespace {{ .HELM_NAMESPACE }} \ - --create-namespace \ - --wait \ - --wait-for-jobs \ - --timeout "15m" - - test-env:kubernetes:local:cleanup: - desc: Cleanup Kubernetes environment for local deployment - deps: - - deps:kind - vars: - KIND_CLUSTER_NAME: '{{ .KIND_CLUSTER_NAME | default "sdk-py-test" }}' - cmds: - - "{{ .KIND_BIN }} delete cluster --name {{ .KIND_CLUSTER_NAME }}" - - test-env:kubernetes:gen-htpasswd-creds: - desc: Generate htpasswd credentials and files for DIR deployment - vars: - HTPASSWD_USERNAME: '{{ .HTPASSWD_USERNAME | default "apiserver" }}' - HTPASSWD_SYNC_USERNAME: '{{ .HTPASSWD_SYNC_USERNAME | default "sync-user" }}' - CREDS_FILE: '{{ .CREDS_FILE | default "/tmp/dir-htpasswd-creds.env" }}' - HTPASSWD_FILE: '{{ .HTPASSWD_FILE | default "/tmp/dir-htpasswd" }}' - cmds: - - | - # Generate fresh passwords - HTPASSWD_PASSWORD="$(openssl rand -hex 16)" - HTPASSWD_SYNC_PASSWORD="$(openssl rand -hex 16)" - - # Generate derived values - HTPASSWD_AUTH_HEADER="$(echo -n "{{ .HTPASSWD_USERNAME }}:${HTPASSWD_PASSWORD}" | base64)" - HTPASSWD_ADMIN="$(htpasswd -nbB "{{ .HTPASSWD_USERNAME }}" "${HTPASSWD_PASSWORD}" | sed 's/^{{ .HTPASSWD_USERNAME }}://')" - HTPASSWD_SYNC="$(htpasswd -nbB "{{ .HTPASSWD_SYNC_USERNAME }}" "${HTPASSWD_SYNC_PASSWORD}" | sed 's/^{{ .HTPASSWD_SYNC_USERNAME }}://')" - - # Write credentials to env file (for helm --set commands) - cat > {{ .CREDS_FILE }} << EOF - export HTPASSWD_USERNAME="{{ .HTPASSWD_USERNAME }}" - export HTPASSWD_PASSWORD="${HTPASSWD_PASSWORD}" - export HTPASSWD_AUTH_HEADER="${HTPASSWD_AUTH_HEADER}" - export HTPASSWD_SYNC_USERNAME="{{ .HTPASSWD_SYNC_USERNAME }}" - export HTPASSWD_SYNC_PASSWORD="${HTPASSWD_SYNC_PASSWORD}" - EOF - - # Write htpasswd file (for helm --set-file commands) - cat > {{ .HTPASSWD_FILE }} << EOF - {{ .HTPASSWD_USERNAME }}:${HTPASSWD_ADMIN} - {{ .HTPASSWD_SYNC_USERNAME }}:${HTPASSWD_SYNC} - EOF - - test-env:kubernetes:cleanup-htpasswd-creds: - desc: Cleanup htpasswd credentials and files - vars: - CREDS_FILE: '{{ .CREDS_FILE | default "/tmp/dir-htpasswd-creds.env" }}' - HTPASSWD_FILE: '{{ .HTPASSWD_FILE | default "/tmp/dir-htpasswd" }}' - cmds: - - rm -f {{ .CREDS_FILE }} - - rm -f {{ .HTPASSWD_FILE }} diff --git a/Taskfile.vars.yml b/Taskfile.vars.yml deleted file mode 100644 index 3aab281..0000000 --- a/Taskfile.vars.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright AGNTCY Contributors (https://github.com/agntcy) -# SPDX-License-Identifier: Apache-2.0 - -version: "3" - -vars: - DIR_CHART_VERSION: '{{ .DIR_CHART_VERSION | default "0.0.0-latest" }}' - DIRCTL_IMAGE_TAG: '{{ .DIRCTL_IMAGE_TAG | default "latest" }}' - RENOVATE_VERSION: "43.89.5" - BIN_DIR: "{{ .ROOT_DIR }}/.bin" - HELM_VERSION: "4.1.3" - HELM_BIN: "{{ .BIN_DIR }}/helm-{{.HELM_VERSION}}" - KUBECTL_VERSION: "1.35.3" - KUBECTL_BIN: "{{ .BIN_DIR }}/kubectl-{{.KUBECTL_VERSION}}" - KIND_VERSION: "0.31.0" - KIND_BIN: "{{ .BIN_DIR }}/kind-{{.KIND_VERSION}}" - COSIGN_VERSION: "3.0.5" - COSIGN_BIN: "{{ .BIN_DIR }}/cosign-{{.COSIGN_VERSION}}" - KIND_CLUSTER_NAME: "sdk-js-test" diff --git a/Taskfile.yml b/Taskfile.yml index cc7e886..2d8406b 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -3,28 +3,30 @@ version: "3" -includes: - vars: - taskfile: Taskfile.vars.yml - flatten: true - excludes: [default] - - deps: - taskfile: Taskfile.deps.yml - dir: "{{ .BIN_DIR }}" - flatten: true - excludes: [default] - - test-env: - taskfile: Taskfile.test-env.yml - flatten: true - excludes: [default] +vars: + DIR_CHART_VERSION: '{{ .DIR_CHART_VERSION | default "0.0.0-latest" }}' + DIRCTL_IMAGE_TAG: '{{ .DIRCTL_IMAGE_TAG | default "latest" }}' + RENOVATE_VERSION: "43.89.5" + BIN_DIR: "{{ .ROOT_DIR }}/.bin" + HELM_VERSION: "4.1.3" + HELM_BIN: "{{ .BIN_DIR }}/helm-{{.HELM_VERSION}}" + KUBECTL_VERSION: "1.35.3" + KUBECTL_BIN: "{{ .BIN_DIR }}/kubectl-{{.KUBECTL_VERSION}}" + KIND_VERSION: "0.31.0" + KIND_BIN: "{{ .BIN_DIR }}/kind-{{.KIND_VERSION}}" + COSIGN_VERSION: "3.0.5" + COSIGN_BIN: "{{ .BIN_DIR }}/cosign-{{.COSIGN_VERSION}}" + KIND_CLUSTER_NAME: "sdk-js-test" tasks: + # --------------------------------------------------------------------------- + # SDK tasks (top-level, user-facing) + # --------------------------------------------------------------------------- + sdk:deps:cicd:iodc-token-generation: desc: Get Fulcio OIDC token for CICD requires: - vars: [ CLIENT_ID ] + vars: [CLIENT_ID] cmds: - | OIDC_TOKEN=$(curl -s -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" \ @@ -117,3 +119,264 @@ tasks: else npm publish --scope=@agntcy --access public fi + + # --------------------------------------------------------------------------- + # Test environment (kind cluster + helm deploy of dir-server) + # --------------------------------------------------------------------------- + + test-env:kubernetes:setup-cluster: + desc: Create a kind cluster and load Docker images + deps: + - deps:helm + - deps:kubectl + - deps:kind + vars: + KIND_CREATE_OPTS: '{{ .KIND_CREATE_OPTS | default "" }}' + KIND_CLUSTER_CONFIG_PATH: + sh: mktemp + # Port mapping is defined in the format of "hostPort1:containerPort1,hostPort2:containerPort2". + # Container port should match the NodePort of the service defined in the Helm chart. + KIND_EXTRA_PORT_MAPPING: '{{ .KIND_EXTRA_PORT_MAPPING | default "" }}' + cmds: + # Create cluster config + - | + cat < {{.KIND_CLUSTER_CONFIG_PATH}} + kind: Cluster + apiVersion: kind.x-k8s.io/v1alpha4 + nodes: + - role: control-plane + {{ if .KIND_EXTRA_PORT_MAPPING }} + extraPortMappings: + {{ range .KIND_EXTRA_PORT_MAPPING | splitList "," }} + - hostPort: {{ index (splitList ":" .) 0 }} + containerPort: {{ index (splitList ":" .) 1 }} + listenAddress: "127.0.0.1" + protocol: TCP + {{ end }} + {{ end }} + EOF + + # Create cluster + - | + {{ .KIND_BIN }} create cluster {{ .KIND_CREATE_OPTS }} --name {{ .KIND_CLUSTER_NAME }} --config {{ .KIND_CLUSTER_CONFIG_PATH }} + {{ .KIND_BIN }} export kubeconfig --name {{ .KIND_CLUSTER_NAME }} + {{ .KUBECTL_BIN }} cluster-info + + test-env:kubernetes:local: + aliases: [deploy:local] + desc: Deploy a local Directory server in Kubernetes + deps: + - task: test-env:kubernetes:setup-cluster + vars: + KIND_EXTRA_PORT_MAPPING: "{{.API_HOSTPORT}}:{{.API_NODEPORT}},{{.METRICS_HOSTPORT}}:{{.METRICS_NODEPORT}}" + vars: + # Kind args + KIND_CLUSTER_NAME: '{{ .KIND_CLUSTER_NAME | default "sdk-js-test" }}' + KIND_CREATE_OPTS: '{{ .KIND_CREATE_OPTS | default "" }}' + # Helm args + HELM_NAMESPACE: '{{ .HELM_NAMESPACE | default "dir-server" }}' + # API config + API_HOSTPORT: '{{ .API_HOSTPORT | default "8888" }}' + API_NODEPORT: '{{ .API_NODEPORT | default "30088" }}' + METRICS_HOSTPORT: '{{ .METRICS_HOSTPORT | default "9090" }}' + METRICS_NODEPORT: '{{ .METRICS_NODEPORT | default "30090" }}' + cmds: + # TODO: make logic idempotent so that running functional tests does not change previous contexts + + # Generate credentials and htpasswd file (using defaults) + - task: test-env:kubernetes:gen-htpasswd-creds + + # Cleanup credentials on exit (using defaults) + - defer: + task: test-env:kubernetes:cleanup-htpasswd-creds + + # Deploy chart + - | + # Load credentials + source /tmp/dir-htpasswd-creds.env + + {{ .HELM_BIN }} install dir oci://ghcr.io/agntcy/dir/helm-charts/dir \ + --version="{{ .DIR_CHART_VERSION }}" \ + --set apiserver.image.pullSecrets="" \ + --set apiserver.service.type="NodePort" \ + --set apiserver.service.nodePort="{{.API_NODEPORT}}" \ + --set apiserver.service.metricsNodePort="{{.METRICS_NODEPORT}}" \ + {{ if .DIRECTORY_SERVER_PUBLICATION_SCHEDULER_INTERVAL }}--set apiserver.config.publication.scheduler_interval="{{ .DIRECTORY_SERVER_PUBLICATION_SCHEDULER_INTERVAL }}"{{ end }} \ + {{ if .DIRECTORY_SERVER_NAMING_TTL }}--set apiserver.config.naming.ttl="{{ .DIRECTORY_SERVER_NAMING_TTL }}"{{ end }} \ + --set apiserver.config.routing.refresh_interval="1s" \ + --set apiserver.secrets.ociAuth.username="${HTPASSWD_USERNAME}" \ + --set apiserver.secrets.ociAuth.password="${HTPASSWD_PASSWORD}" \ + --set apiserver.zot.authHeader="${HTPASSWD_AUTH_HEADER}" \ + --set-file apiserver.zot.secretFiles.htpasswd="/tmp/dir-htpasswd" \ + --set apiserver.secrets.syncAuth.username="${HTPASSWD_SYNC_USERNAME}" \ + --set apiserver.secrets.syncAuth.password="${HTPASSWD_SYNC_PASSWORD}" \ + {{ if .DIRECTORY_SERVER_RATELIMIT_ENABLED }}--set apiserver.config.ratelimit.enabled="{{ .DIRECTORY_SERVER_RATELIMIT_ENABLED }}"{{ end }} \ + {{ if .DIRECTORY_SERVER_RATELIMIT_GLOBAL_RPS }}--set apiserver.config.ratelimit.global_rps="{{ .DIRECTORY_SERVER_RATELIMIT_GLOBAL_RPS }}"{{ end }} \ + {{ if .DIRECTORY_SERVER_RATELIMIT_GLOBAL_BURST }}--set apiserver.config.ratelimit.global_burst="{{ .DIRECTORY_SERVER_RATELIMIT_GLOBAL_BURST }}"{{ end }} \ + {{ if .DIRECTORY_SERVER_RATELIMIT_PER_CLIENT_RPS }}--set apiserver.config.ratelimit.per_client_rps="{{ .DIRECTORY_SERVER_RATELIMIT_PER_CLIENT_RPS }}"{{ end }} \ + {{ if .DIRECTORY_SERVER_RATELIMIT_PER_CLIENT_BURST }}--set apiserver.config.ratelimit.per_client_burst="{{ .DIRECTORY_SERVER_RATELIMIT_PER_CLIENT_BURST }}"{{ end }} \ + {{ if .DIRECTORY_SERVER_OASF_API_VALIDATION_SCHEMA_URL }}--set apiserver.config.oasf_api_validation.schema_url="{{ .DIRECTORY_SERVER_OASF_API_VALIDATION_SCHEMA_URL }}"{{ end }} \ + --set apiserver.reconciler.config.regsync.interval="10s" \ + --set apiserver.reconciler.config.indexer.interval="10s" \ + --set apiserver.reconciler.config.name.interval="5s" \ + --set apiserver.reconciler.config.signature.interval="5s" \ + --namespace {{ .HELM_NAMESPACE }} \ + --create-namespace \ + --wait \ + --wait-for-jobs \ + --timeout "15m" + + test-env:kubernetes:local:cleanup: + desc: Cleanup Kubernetes environment for local deployment + deps: + - deps:kind + vars: + KIND_CLUSTER_NAME: '{{ .KIND_CLUSTER_NAME | default "sdk-js-test" }}' + cmds: + - "{{ .KIND_BIN }} delete cluster --name {{ .KIND_CLUSTER_NAME }}" + + test-env:kubernetes:gen-htpasswd-creds: + desc: Generate htpasswd credentials and files for DIR deployment + vars: + HTPASSWD_USERNAME: '{{ .HTPASSWD_USERNAME | default "apiserver" }}' + HTPASSWD_SYNC_USERNAME: '{{ .HTPASSWD_SYNC_USERNAME | default "sync-user" }}' + CREDS_FILE: '{{ .CREDS_FILE | default "/tmp/dir-htpasswd-creds.env" }}' + HTPASSWD_FILE: '{{ .HTPASSWD_FILE | default "/tmp/dir-htpasswd" }}' + cmds: + - | + # Generate fresh passwords + HTPASSWD_PASSWORD="$(openssl rand -hex 16)" + HTPASSWD_SYNC_PASSWORD="$(openssl rand -hex 16)" + + # Generate derived values + HTPASSWD_AUTH_HEADER="$(echo -n "{{ .HTPASSWD_USERNAME }}:${HTPASSWD_PASSWORD}" | base64)" + HTPASSWD_ADMIN="$(htpasswd -nbB "{{ .HTPASSWD_USERNAME }}" "${HTPASSWD_PASSWORD}" | sed 's/^{{ .HTPASSWD_USERNAME }}://')" + HTPASSWD_SYNC="$(htpasswd -nbB "{{ .HTPASSWD_SYNC_USERNAME }}" "${HTPASSWD_SYNC_PASSWORD}" | sed 's/^{{ .HTPASSWD_SYNC_USERNAME }}://')" + + # Write credentials to env file (for helm --set commands) + cat > {{ .CREDS_FILE }} << EOF + export HTPASSWD_USERNAME="{{ .HTPASSWD_USERNAME }}" + export HTPASSWD_PASSWORD="${HTPASSWD_PASSWORD}" + export HTPASSWD_AUTH_HEADER="${HTPASSWD_AUTH_HEADER}" + export HTPASSWD_SYNC_USERNAME="{{ .HTPASSWD_SYNC_USERNAME }}" + export HTPASSWD_SYNC_PASSWORD="${HTPASSWD_SYNC_PASSWORD}" + EOF + + # Write htpasswd file (for helm --set-file commands) + cat > {{ .HTPASSWD_FILE }} << EOF + {{ .HTPASSWD_USERNAME }}:${HTPASSWD_ADMIN} + {{ .HTPASSWD_SYNC_USERNAME }}:${HTPASSWD_SYNC} + EOF + + test-env:kubernetes:cleanup-htpasswd-creds: + desc: Cleanup htpasswd credentials and files + vars: + CREDS_FILE: '{{ .CREDS_FILE | default "/tmp/dir-htpasswd-creds.env" }}' + HTPASSWD_FILE: '{{ .HTPASSWD_FILE | default "/tmp/dir-htpasswd" }}' + cmds: + - rm -f {{ .CREDS_FILE }} + - rm -f {{ .HTPASSWD_FILE }} + + # --------------------------------------------------------------------------- + # Dependency installation (internal - downloads pinned tool versions to .bin) + # --------------------------------------------------------------------------- + + deps:bin-dir: + desc: Create bin directory + run: once + cmd: mkdir -p {{.BIN_DIR}} + status: + - test -d {{.BIN_DIR}} + + deps:helm: + desc: Ensure supported Helm version is installed + internal: true + deps: + - deps:bin-dir + preconditions: + - which curl + - which tar + cmds: + - cmd: echo "Downloading Helm v{{.HELM_VERSION}}..." + - cmd: curl -sSfL 'https://get.helm.sh/helm-v{{.HELM_VERSION}}-{{OS}}-{{ARCH}}.tar.gz' --output - | tar xzvOf - '{{OS}}-{{ARCH}}/helm' > {{.HELM_BIN}} + - cmd: chmod +x {{.HELM_BIN}} + status: + - test -x {{.HELM_BIN}} + + deps:kubectl: + desc: Ensure supported kubectl version is installed + internal: true + deps: + - deps:bin-dir + preconditions: + - which curl + cmds: + - cmd: echo "Downloading Kubectl v{{.KUBECTL_VERSION}}..." + - cmd: curl -L "https://dl.k8s.io/release/v{{.KUBECTL_VERSION}}/bin/{{OS}}/{{ARCH}}/kubectl" -o {{.KUBECTL_BIN}} + - cmd: chmod +x {{.KUBECTL_BIN}} + status: + - test -x {{.KUBECTL_BIN}} + + deps:kind: + desc: Ensure supported kind version is installed + internal: true + deps: + - deps:bin-dir + preconditions: + - which go + cmds: + - cmd: echo "Downloading Kind v{{.KIND_VERSION}}..." + - cmd: GOBIN={{.BIN_DIR}} go install sigs.k8s.io/kind@v{{.KIND_VERSION}} + - cmd: mv {{.BIN_DIR}}/kind {{.KIND_BIN}} + status: + - test -x {{.KIND_BIN}} + + deps:cosign: + desc: Install sigstore cosign + internal: true + deps: + - deps:bin-dir + cmds: + - curl -sfL https://github.com/sigstore/cosign/releases/download/v{{.COSIGN_VERSION}}/cosign-{{OS}}-{{ARCH}} -o {{.BIN_DIR}}/cosign-{{.COSIGN_VERSION}} + - chmod +x {{.BIN_DIR}}/cosign-{{.COSIGN_VERSION}} + status: + - test -x {{.COSIGN_BIN}} + + deps:dir-ctl: + desc: Install dir-ctl + internal: true + run: once + vars: + DIRCTL_IMAGE_TAG: "{{ .DIRCTL_IMAGE_TAG }}" + preconditions: + - which docker + cmds: + - docker image pull ghcr.io/agntcy/dir-ctl:{{ .DIRCTL_IMAGE_TAG }} + + deps:renovate: + desc: Install Renovate + internal: true + cmd: npm install -g renovate@{{ .RENOVATE_VERSION }} + status: + - npm list -g renovate + + deps:renovate:sync: + desc: Sync dependencies with Renovate + summary: | + For extra CLI flags pass RENOVATE_OPTS (e.g. task deps:renovate:sync RENOVATE_OPTS='--dry-run'). + Default platform is local so local runs do not touch remote project data. + Github Action CI sets RENOVATE_PLATFORM to github. + This step is only analytical without GITHUB TOKEN and will not update PRs or project data. + deps: + - deps:renovate + dir: "{{ .ROOT_DIR }}" + vars: + RENOVATE_OPTS_DEFAULT: >- + --persist-repo-data 'true' + --allowed-post-upgrade-commands '[".*"]' + --post-upgrade-tasks '{"commands": ["task sdk:tidy"], "executionMode": "branch"}' + RENOVATE_OPTS: "{{ .RENOVATE_OPTS | default .RENOVATE_OPTS_DEFAULT }}" + RENOVATE_PLATFORM_EFFECTIVE: + sh: printf '%s' "${RENOVATE_PLATFORM:-local}" + cmds: + - renovate {{ .RENOVATE_OPTS }} --platform "{{ .RENOVATE_PLATFORM_EFFECTIVE }}" From e1873e1e3159667cc28128e1455de5f19549c1d7 Mon Sep 17 00:00:00 2001 From: Catarina Paralta Date: Wed, 13 May 2026 10:13:58 +0100 Subject: [PATCH 05/10] chore: remove dependency workflow Signed-off-by: Catarina Paralta --- .github/workflows/dependency.yml | 31 ------------------------------- 1 file changed, 31 deletions(-) delete mode 100644 .github/workflows/dependency.yml diff --git a/.github/workflows/dependency.yml b/.github/workflows/dependency.yml deleted file mode 100644 index 536be13..0000000 --- a/.github/workflows/dependency.yml +++ /dev/null @@ -1,31 +0,0 @@ ---- -name: dependency - -# TODO: enable dependency review after migration -# on: -# Review dependencies on pull requests to the default branch -# pull_request: -# branches: ["main"] - -# Declare default permissions as read-only -permissions: read-all - -jobs: - dependency-review: - runs-on: ubuntu-latest - permissions: - contents: read - pull-requests: write - steps: - - name: ๐Ÿ”’ harden runner - uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0 - with: - egress-policy: audit - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - - name: ๐Ÿ”‚ dependency review - uses: actions/dependency-review-action@3b139cfc5fae8b618d3eae3675e383bb1769c019 # v4.5.0 - with: - fail-on-severity: "high" - deny-licenses: "AGPL-1.0, AGPL-3.0" - comment-summary-in-pr: true - warn-on-openssf-scorecard-level: 3 From 55e6d75e06c1f0c9e0f838a3fa6373ad5198fac4 Mon Sep 17 00:00:00 2001 From: Catarina Paralta Date: Wed, 13 May 2026 10:14:34 +0100 Subject: [PATCH 06/10] docs: add npm version badge to README Signed-off-by: Catarina Paralta --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 4b9b7ec..d8e3c63 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Directory JavaScript SDK +[![npm version](https://img.shields.io/npm/v/agntcy-dir.svg)](https://www.npmjs.com/package/agntcy-dir) + ## Overview Dir JavaScript SDK provides a simple way to interact with the Directory API. From d751a28dac306f3de82485c902fdba5455a103bb Mon Sep 17 00:00:00 2001 From: Catarina Paralta Date: Wed, 13 May 2026 10:17:04 +0100 Subject: [PATCH 07/10] chore: prepare release v1.3.0 Signed-off-by: Catarina Paralta --- .github/ISSUE_TEMPLATE/bug_report.yml | 1 + .github/workflows/ci.yaml | 4 +-- CHANGELOG.md | 12 +++++++++ RELEASE.md | 6 ++--- examples/package-lock.json | 39 ++------------------------- package-lock.json | 18 ++++++------- package.json | 4 +-- 7 files changed, 31 insertions(+), 53 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 940d29f..ae68f23 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -30,6 +30,7 @@ body: If applicable, provide the version number or release tag where this issue was encountered options: + - v1.3.0 - v1.2.1 default: 0 validations: diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f007d1c..e4191b2 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -63,8 +63,8 @@ jobs: - changes uses: ./.github/workflows/reusable-test-sdk.yaml with: - dir_chart_version: v1.2.0 - dirctl_image_tag: v1.2.0 + dir_chart_version: v1.3.0 + dirctl_image_tag: v1.3.0 release: name: Release diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ef2d1c..3beef0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,18 @@ [agntcy/dir]: https://github.com/agntcy/dir [agntcy/dir-sdk-javascript]: https://github.com/agntcy/dir-sdk-javascript +## 1.3.0 (2026-05-12) + +### Changed + +- Updated `@buf/agntcy_dir.bufbuild_es` buf-generated SDK to track + [agntcy/dir][agntcy/dir] `v1.3.0`. +- Bumped the directory chart and `dirctl` image used in CI to `v1.3.0`. + +### Removed + +- Removed unused `.cz.toml` Commitizen configuration. + ## 1.2.1 (2026-04-15) ### Added diff --git a/RELEASE.md b/RELEASE.md index ab02eb1..0ae965b 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -11,7 +11,7 @@ Create a branch for the new release: - `package.json` - `.github/ISSUE_TEMPLATE/bug_report.yml` 2. Update the dependencies if necessary: - - [@buf/agntcy_dir.bufbuild_es](https://buf.build/agntcy/dir/sdks/v1.2.0%3Abufbuild/es?version=v2.9.0) (Buf SDK) + - [@buf/agntcy_dir.bufbuild_es](https://buf.build/agntcy/dir/sdks/v1.3.0%3Abufbuild/es?version=v2.9.0) (Buf SDK) - `.github/workflows/ci.yaml` (dir & dir-ctl version) 3. Add an entry to `CHANGELOG.md` @@ -28,6 +28,6 @@ To trigger the release workflow, create and push the release tag for the last commit: ```sh -git tag -a v1.2.1 -git push origin v1.2.1 +git tag -a v1.3.0 +git push origin v1.3.0 ``` diff --git a/examples/package-lock.json b/examples/package-lock.json index 20f061a..4809cf0 100644 --- a/examples/package-lock.json +++ b/examples/package-lock.json @@ -13,45 +13,10 @@ }, "..": { "name": "agntcy-dir", - "version": "1.1.0", + "version": "1.3.0", "license": "Apache-2.0", "dependencies": { - "@buf/agntcy_dir.bufbuild_es": "^2.9.0-20260319131759-f3a65f0dc151.1", - "@buf/bufbuild_protovalidate.bufbuild_es": "^2.11.0-20260209202127-80ab13bee0bf.1", - "@bufbuild/protobuf": "^2.9.0", - "@connectrpc/connect": "^2.1.0", - "@connectrpc/connect-node": "^2.1.0", - "@grpc/grpc-js": "^1.13.4", - "spiffe": "^0.5.0" - }, - "devDependencies": { - "@microsoft/api-extractor": "^7.58.0", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^16.0.1", - "@types/node": "^22.19.1", - "@types/uuid": "^10.0.0", - "rollup-plugin-typescript2": "^0.37.0", - "ts-node": "^10.9.2", - "typescript": "^5.9.3", - "typescript-eslint": "^8.58.0", - "uuid": "^11.1.0", - "vitest": "^3.2.4", - "workerpool": "^10.0.1" - }, - "engines": { - "node": ">=20.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-linux-x64-gnu": "4.60.1" - } - }, - "../../dir-js": { - "name": "agntcy-dir", - "version": "1.1.0", - "extraneous": true, - "license": "Apache-2.0", - "dependencies": { - "@buf/bufbuild_protovalidate.bufbuild_es": "^2.11.0-20260209202127-80ab13bee0bf.1", + "@buf/agntcy_dir.bufbuild_es": "2.9.0-20260505171211-963d5edc7bb0.1", "@bufbuild/protobuf": "^2.9.0", "@connectrpc/connect": "^2.1.0", "@connectrpc/connect-node": "^2.1.0", diff --git a/package-lock.json b/package-lock.json index fb44f1a..de27d5e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,15 @@ { "name": "agntcy-dir", - "version": "1.2.1", + "version": "1.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "agntcy-dir", - "version": "1.2.1", + "version": "1.3.0", "license": "Apache-2.0", "dependencies": { - "@buf/agntcy_dir.bufbuild_es": "2.9.0-20260413212701-cb1fb6353ac1.1", + "@buf/agntcy_dir.bufbuild_es": "2.9.0-20260505171211-963d5edc7bb0.1", "@bufbuild/protobuf": "^2.9.0", "@connectrpc/connect": "^2.1.0", "@connectrpc/connect-node": "^2.1.0", @@ -38,18 +38,18 @@ } }, "node_modules/@buf/agntcy_dir.bufbuild_es": { - "version": "2.9.0-20260413212701-cb1fb6353ac1.1", - "resolved": "https://buf.build/gen/npm/v1/@buf/agntcy_dir.bufbuild_es/-/agntcy_dir.bufbuild_es-2.9.0-20260413212701-cb1fb6353ac1.1.tgz", + "version": "2.9.0-20260505171211-963d5edc7bb0.1", + "resolved": "https://buf.build/gen/npm/v1/@buf/agntcy_dir.bufbuild_es/-/agntcy_dir.bufbuild_es-2.9.0-20260505171211-963d5edc7bb0.1.tgz", "dependencies": { - "@buf/bufbuild_protovalidate.bufbuild_es": "2.9.0-20260209202127-80ab13bee0bf.1" + "@buf/bufbuild_protovalidate.bufbuild_es": "2.9.0-20260415201107-50325440f8f2.1" }, "peerDependencies": { "@bufbuild/protobuf": "^2.9.0" } }, - "node_modules/@buf/agntcy_dir.bufbuild_es/node_modules/@buf/bufbuild_protovalidate.bufbuild_es": { - "version": "2.9.0-20260209202127-80ab13bee0bf.1", - "resolved": "https://buf.build/gen/npm/v1/@buf/bufbuild_protovalidate.bufbuild_es/-/bufbuild_protovalidate.bufbuild_es-2.9.0-20260209202127-80ab13bee0bf.1.tgz", + "node_modules/@buf/bufbuild_protovalidate.bufbuild_es": { + "version": "2.9.0-20260415201107-50325440f8f2.1", + "resolved": "https://buf.build/gen/npm/v1/@buf/bufbuild_protovalidate.bufbuild_es/-/bufbuild_protovalidate.bufbuild_es-2.9.0-20260415201107-50325440f8f2.1.tgz", "peerDependencies": { "@bufbuild/protobuf": "^2.9.0" } diff --git a/package.json b/package.json index e5c0dae..67dfa23 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "agntcy-dir", - "version": "1.2.1", + "version": "1.3.0", "description": "Directory SDK", "homepage": "https://github.com/agntcy/dir-sdk-javascript", "bugs": { @@ -41,7 +41,7 @@ }, "packageManager": "npm@11.12.1", "dependencies": { - "@buf/agntcy_dir.bufbuild_es": "2.9.0-20260413212701-cb1fb6353ac1.1", + "@buf/agntcy_dir.bufbuild_es": "2.9.0-20260505171211-963d5edc7bb0.1", "@bufbuild/protobuf": "^2.9.0", "@connectrpc/connect": "^2.1.0", "@connectrpc/connect-node": "^2.1.0", From bebdbba8cd7bc514a0908cf3c73d4a6c451bbabf Mon Sep 17 00:00:00 2001 From: Catarina Paralta Date: Wed, 13 May 2026 10:18:59 +0100 Subject: [PATCH 08/10] refactor: clean gitignore Signed-off-by: Catarina Paralta --- .gitignore | 55 ++++-------------------------------------------------- 1 file changed, 4 insertions(+), 51 deletions(-) diff --git a/.gitignore b/.gitignore index a325117..72b94c5 100644 --- a/.gitignore +++ b/.gitignore @@ -7,65 +7,18 @@ .env .envrc -# Builds +# Tool binaries (Taskfile) .bin/ -# Python -dist/ -__pycache__/ -*.egg-info -*.pyc -*.pyo -*.pyd -.venv/ - # JS -node_modules - -# Helm -install/charts/dir/charts/ -install/charts/dir/apiserver/charts/ -install/charts/dirctl/charts/ -install/charts/envoy-authz/charts/ +node_modules/ +dist/ # MacOS .DS_Store -# Test output -e2e/tmp/* - -# Coverage output -.coverage/ - -# Licensei -.licensei.cache - +# Scratch tmp/ # AI .cursor/ - -# Go workspace files -go.work -go.work.sum - -# MCP server binary -mcp/mcp-server - -# Local Build output -build/ -mcp/debug/ - -# Flutter GUI -gui/.dart_tool/ -gui/.flutter-plugins -gui/.flutter-plugins-dependencies -gui/build/ -gui/android/ -gui/ios/ -gui/linux/ -gui/web/ -gui/windows/ -gui/macos/ - -gui/.env From 20bf175ddeadcedae586ea953fed40581ce0653b Mon Sep 17 00:00:00 2001 From: Catarina Paralta Date: Wed, 13 May 2026 10:37:40 +0100 Subject: [PATCH 09/10] refactor: remove unused prettierrc Signed-off-by: Catarina Paralta --- .prettierrc | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 .prettierrc diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 24ac038..0000000 --- a/.prettierrc +++ /dev/null @@ -1,16 +0,0 @@ -{ - "printWidth" : 80, - "tabWidth" : 2, - "useTabs" : false, - "semi" : true, - "singleQuote" : true, - "quoteProps" : "preserve", - "bracketSpacing" : false, - "trailingComma" : "all", - "arrowParens" : "always", - "embeddedLanguageFormatting" : "off", - "bracketSameLine" : true, - "singleAttributePerLine" : false, - "htmlWhitespaceSensitivity" : "strict", - "plugins": ["prettier-plugin-organize-imports"], -} From 6e0fda5d8ebe5d8cf3192811b0604dc4542f7220 Mon Sep 17 00:00:00 2001 From: Catarina Paralta Date: Wed, 13 May 2026 10:40:01 +0100 Subject: [PATCH 10/10] chore: remove unused eslint configuration Signed-off-by: Catarina Paralta --- eslint.config.mjs | 33 -- package-lock.json | 1125 +-------------------------------------------- package.json | 3 - 3 files changed, 4 insertions(+), 1157 deletions(-) delete mode 100644 eslint.config.mjs diff --git a/eslint.config.mjs b/eslint.config.mjs deleted file mode 100644 index bc0a6ab..0000000 --- a/eslint.config.mjs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright AGNTCY Contributors (https://github.com/agntcy) -// SPDX-License-Identifier: Apache-2.0 - -import eslint from '@eslint/js'; -import tseslint from 'typescript-eslint'; - -export default [ - eslint.configs.recommended, - ...tseslint.configs.recommended, - { - ignores: [ - // Ignore built files. - 'dist/**', - ], - }, - { - rules: { - '@typescript-eslint/no-unused-vars': [ - 'error', - { - 'argsIgnorePattern': '^_', - 'varsIgnorePattern': '^_', - }, - ], - '@typescript-eslint/no-empty-object-type': [ - 'error', - { - 'allowInterfaces': 'always', - }, - ], - }, - }, -]; diff --git a/package-lock.json b/package-lock.json index de27d5e..90f87a7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,6 @@ "rollup-plugin-typescript2": "^0.37.0", "ts-node": "^10.9.2", "typescript": "^5.9.3", - "typescript-eslint": "^8.58.0", "uuid": "^11.1.0", "vitest": "^3.2.4", "workerpool": "^10.0.1" @@ -537,135 +536,6 @@ "node": ">=18" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", - "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", - "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.23.3", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.3.tgz", - "integrity": "sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@eslint/object-schema": "^3.0.3", - "debug": "^4.3.1", - "minimatch": "^10.2.4" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - } - }, - "node_modules/@eslint/config-array/node_modules/minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", - "dev": true, - "license": "BlueOak-1.0.0", - "peer": true, - "dependencies": { - "brace-expansion": "^5.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@eslint/config-helpers": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.3.tgz", - "integrity": "sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@eslint/core": "^1.1.1" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - } - }, - "node_modules/@eslint/core": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.1.1.tgz", - "integrity": "sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - } - }, - "node_modules/@eslint/object-schema": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.3.tgz", - "integrity": "sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.6.1.tgz", - "integrity": "sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@eslint/core": "^1.1.1", - "levn": "^0.4.1" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - } - }, "node_modules/@grpc/grpc-js": { "version": "1.14.3", "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.14.3.tgz", @@ -697,62 +567,6 @@ "node": ">=6" } }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", - "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.4.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", - "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", @@ -1672,14 +1486,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/esrecurse": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", - "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", @@ -1687,14 +1493,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/@types/node": { "version": "22.19.15", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz", @@ -1718,249 +1516,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.58.0.tgz", - "integrity": "sha512-RLkVSiNuUP1C2ROIWfqX+YcUfLaSnxGE/8M+Y57lopVwg9VTYYfhuz15Yf1IzCKgZj6/rIbYTmJCUSqr76r0Wg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.58.0", - "@typescript-eslint/type-utils": "8.58.0", - "@typescript-eslint/utils": "8.58.0", - "@typescript-eslint/visitor-keys": "8.58.0", - "ignore": "^7.0.5", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.5.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.58.0", - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.58.0.tgz", - "integrity": "sha512-rLoGZIf9afaRBYsPUMtvkDWykwXwUPL60HebR4JgTI8mxfFe2cQTu3AGitANp4b9B2QlVru6WzjgB2IzJKiCSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.58.0", - "@typescript-eslint/types": "8.58.0", - "@typescript-eslint/typescript-estree": "8.58.0", - "@typescript-eslint/visitor-keys": "8.58.0", - "debug": "^4.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/project-service": { - "version": "8.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.58.0.tgz", - "integrity": "sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.58.0", - "@typescript-eslint/types": "^8.58.0", - "debug": "^4.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.58.0.tgz", - "integrity": "sha512-W1Lur1oF50FxSnNdGp3Vs6P+yBRSmZiw4IIjEeYxd8UQJwhUF0gDgDD/W/Tgmh73mxgEU3qX0Bzdl/NGuSPEpQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.58.0", - "@typescript-eslint/visitor-keys": "8.58.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.58.0.tgz", - "integrity": "sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.58.0.tgz", - "integrity": "sha512-aGsCQImkDIqMyx1u4PrVlbi/krmDsQUs4zAcCV6M7yPcPev+RqVlndsJy9kJ8TLihW9TZ0kbDAzctpLn5o+lOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.58.0", - "@typescript-eslint/typescript-estree": "8.58.0", - "@typescript-eslint/utils": "8.58.0", - "debug": "^4.4.3", - "ts-api-utils": "^2.5.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.58.0.tgz", - "integrity": "sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.58.0.tgz", - "integrity": "sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.58.0", - "@typescript-eslint/tsconfig-utils": "8.58.0", - "@typescript-eslint/types": "8.58.0", - "@typescript-eslint/visitor-keys": "8.58.0", - "debug": "^4.4.3", - "minimatch": "^10.2.2", - "semver": "^7.7.3", - "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.5.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.58.0.tgz", - "integrity": "sha512-RfeSqcFeHMHlAWzt4TBjWOAtoW9lnsAGiP3GbaX9uVgTYYrMbVnGONEfUCiSss+xMHFl+eHZiipmA8WkQ7FuNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.58.0", - "@typescript-eslint/types": "8.58.0", - "@typescript-eslint/typescript-estree": "8.58.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.58.0.tgz", - "integrity": "sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.58.0", - "eslint-visitor-keys": "^5.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@vitest/expect": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", @@ -2099,17 +1654,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peer": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, "node_modules/acorn-walk": { "version": "8.3.5", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", @@ -2344,22 +1888,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -2388,14 +1916,6 @@ "node": ">=6" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -2480,229 +2000,13 @@ "node": ">=6" } }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.0.3.tgz", - "integrity": "sha512-COV33RzXZkqhG9P2rZCFl9ZmJ7WL+gQSCRzE7RhkbclbQPtLAWReL7ysA0Sh4c8Im2U9ynybdR56PV0XcKvqaQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.8.0", - "@eslint-community/regexpp": "^4.12.2", - "@eslint/config-array": "^0.23.3", - "@eslint/config-helpers": "^0.5.2", - "@eslint/core": "^1.1.1", - "@eslint/plugin-kit": "^0.6.1", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "ajv": "^6.14.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^9.1.2", - "eslint-visitor-keys": "^5.0.1", - "espree": "^11.1.1", - "esquery": "^1.7.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "minimatch": "^10.2.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-scope": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", - "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "@types/esrecurse": "^4.3.1", - "@types/estree": "^1.0.8", - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", - "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", - "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", - "dev": true, - "license": "BlueOak-1.0.0", - "peer": true, - "dependencies": { - "brace-expansion": "^5.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/espree": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", - "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "acorn": "^8.16.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^5.0.1" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", - "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", - "dev": true, - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true, "license": "MIT" }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/expect-type": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", @@ -2720,22 +2024,6 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/fast-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", @@ -2771,20 +2059,6 @@ } } }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, "node_modules/find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", @@ -2803,47 +2077,6 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.1.tgz", - "integrity": "sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==", - "dev": true, - "license": "ISC", - "peer": true - }, "node_modules/fs-extra": { "version": "11.3.4", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", @@ -2893,20 +2126,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -2937,17 +2156,6 @@ "node": ">= 0.4" } }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/import-lazy": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", @@ -2958,17 +2166,6 @@ "node": ">=8" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.8.19" - } - }, "node_modules/is-core-module": { "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", @@ -2985,17 +2182,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -3005,20 +2191,6 @@ "node": ">=8" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", @@ -3026,14 +2198,6 @@ "dev": true, "license": "MIT" }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC", - "peer": true - }, "node_modules/jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", @@ -3048,14 +2212,6 @@ "dev": true, "license": "MIT" }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -3063,14 +2219,6 @@ "dev": true, "license": "MIT" }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/jsonfile": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", @@ -3084,49 +2232,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/lodash": { "version": "4.17.23", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", @@ -3251,66 +2356,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -3331,17 +2376,6 @@ "node": ">=8" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", @@ -3484,17 +2518,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/protobufjs": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz", @@ -3519,17 +2542,6 @@ "node": ">=12.0.0" } }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/pvtsutils": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", @@ -3729,31 +2741,6 @@ "node": ">=10" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/siginfo": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", @@ -3968,19 +2955,6 @@ "node": ">=14.0.0" } }, - "node_modules/ts-api-utils": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", - "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, "node_modules/ts-node": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", @@ -4059,20 +3033,6 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "license": "0BSD" }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/typescript": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", @@ -4087,30 +3047,6 @@ "node": ">=14.17" } }, - "node_modules/typescript-eslint": { - "version": "8.58.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.58.0.tgz", - "integrity": "sha512-e2TQzKfaI85fO+F3QywtX+tCTsu/D3WW5LVU6nz8hTFKFZ8yBJ6mSYRpXqdR3mFjPWmO0eWsTa5f+UpAOe/FMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.58.0", - "@typescript-eslint/parser": "8.58.0", - "@typescript-eslint/typescript-estree": "8.58.0", - "@typescript-eslint/utils": "8.58.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, "node_modules/undici-types": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", @@ -4127,17 +3063,6 @@ "node": ">= 10.0.0" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, "node_modules/uuid": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", @@ -4343,23 +3268,6 @@ "tslib": "^2.7.0" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/why-is-node-running": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", @@ -4377,17 +3285,6 @@ "node": ">=8" } }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/workerpool": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-10.0.1.tgz", @@ -4464,20 +3361,6 @@ "engines": { "node": ">=6" } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } } } } diff --git a/package.json b/package.json index 67dfa23..b91aa23 100644 --- a/package.json +++ b/package.json @@ -34,8 +34,6 @@ "scripts": { "build": "rollup -c && api-extractor run --local --verbose --diagnostics", "clean": "rm -rf dist", - "lint": "eslint '**/*.ts'", - "fix": "eslint '**/*.ts' --fix", "pretest": "npm run build", "test": "vitest run" }, @@ -57,7 +55,6 @@ "rollup-plugin-typescript2": "^0.37.0", "ts-node": "^10.9.2", "typescript": "^5.9.3", - "typescript-eslint": "^8.58.0", "uuid": "^11.1.0", "vitest": "^3.2.4", "workerpool": "^10.0.1"