Compare commits

..

1 Commits

Author SHA1 Message Date
dependabot[bot]
ff03a8567a Bump prettier from 3.8.4 to 3.9.6
Bumps [prettier](https://github.com/prettier/prettier) from 3.8.4 to 3.9.6.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.8.4...3.9.6)

---
updated-dependencies:
- dependency-name: prettier
  dependency-version: 3.9.5
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-03 16:20:37 +00:00
14 changed files with 105 additions and 431 deletions

View File

@@ -36,7 +36,7 @@ jobs:
- os: windows-11-arm - os: windows-11-arm
python-version: 3.13.14t python-version: 3.13.14t
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Python - name: Setup Python
uses: ./ uses: ./
with: with:
@@ -66,7 +66,7 @@ jobs:
- os: windows-11-arm - os: windows-11-arm
python-version: 3.13.14t python-version: 3.13.14t
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Python - name: Setup Python
id: cache-pipenv id: cache-pipenv
uses: ./ uses: ./
@@ -106,7 +106,7 @@ jobs:
] ]
python-version: [3.13.14, 3.14.6] python-version: [3.13.14, 3.14.6]
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Install poetry - name: Install poetry
run: pipx install poetry run: pipx install poetry
- name: Init pyproject.toml - name: Init pyproject.toml
@@ -141,7 +141,7 @@ jobs:
- os: windows-11-arm - os: windows-11-arm
python-version: 3.13.14t python-version: 3.13.14t
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Python - name: Setup Python
uses: ./ uses: ./
with: with:
@@ -172,7 +172,7 @@ jobs:
- os: windows-11-arm - os: windows-11-arm
python-version: 3.13.14t python-version: 3.13.14t
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Python - name: Setup Python
id: cache-pipenv id: cache-pipenv
uses: ./ uses: ./
@@ -216,7 +216,7 @@ jobs:
- os: windows-11-arm - os: windows-11-arm
python-version: 3.13.14t python-version: 3.13.14t
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Python - name: Setup Python
uses: ./ uses: ./
with: with:
@@ -247,7 +247,7 @@ jobs:
- os: windows-11-arm - os: windows-11-arm
python-version: 3.13.14t python-version: 3.13.14t
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Python - name: Setup Python
uses: ./ uses: ./
with: with:

View File

@@ -42,7 +42,7 @@ jobs:
python-version: '3.10' python-version: '3.10'
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Python - name: Setup Python
uses: ./ uses: ./
with: with:
@@ -76,7 +76,7 @@ jobs:
- os: windows-11-arm - os: windows-11-arm
python-version: pypy-3.11-v7.x python-version: pypy-3.11-v7.x
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Python - name: Setup Python
id: cache-pipenv id: cache-pipenv
uses: ./ uses: ./
@@ -131,7 +131,7 @@ jobs:
- os: windows-11-arm - os: windows-11-arm
python-version: '3.10' python-version: '3.10'
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Install poetry - name: Install poetry
run: | run: |
pipx install poetry pipx install poetry
@@ -175,7 +175,7 @@ jobs:
- os: windows-11-arm - os: windows-11-arm
python-version: '3.10' python-version: '3.10'
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Python - name: Setup Python
uses: ./ uses: ./
with: with:
@@ -210,7 +210,7 @@ jobs:
- os: windows-11-arm - os: windows-11-arm
python-version: pypy-3.11-v7.x python-version: pypy-3.11-v7.x
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Python - name: Setup Python
id: cache-pipenv id: cache-pipenv
uses: ./ uses: ./
@@ -259,7 +259,7 @@ jobs:
- os: windows-11-arm - os: windows-11-arm
python-version: '3.10' python-version: '3.10'
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Python - name: Setup Python
uses: ./ uses: ./
with: with:
@@ -290,7 +290,7 @@ jobs:
- os: windows-11-arm - os: windows-11-arm
python-version: '3.10' python-version: '3.10'
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Python - name: Setup Python
uses: ./ uses: ./
with: with:

View File

@@ -29,7 +29,7 @@ jobs:
] ]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Run with setup-python 3.10.11 - name: Run with setup-python 3.10.11
if: matrix.operating-system != 'windows-11-arm' if: matrix.operating-system != 'windows-11-arm'

View File

@@ -14,7 +14,7 @@ jobs:
steps: steps:
- name: Checking out - name: Checking out
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Publish - name: Publish
id: publish id: publish
uses: actions/publish-immutable-action@4bc8754ffc40f27910afb20287dbbbb675a4e978 # v0.0.4 uses: actions/publish-immutable-action@4bc8754ffc40f27910afb20287dbbbb675a4e978 # v0.0.4

View File

@@ -34,7 +34,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: setup-python ${{ matrix.graalpy }} - name: setup-python ${{ matrix.graalpy }}
id: setup-python id: setup-python
@@ -85,7 +85,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: setup-python ${{ matrix.graalpy }} - name: setup-python ${{ matrix.graalpy }}
id: setup-python id: setup-python
@@ -107,7 +107,7 @@ jobs:
matrix: matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-15-intel] os: [ubuntu-latest, windows-latest, macos-latest, macos-15-intel]
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup GraalPy and check latest - name: Setup GraalPy and check latest
uses: ./ uses: ./
id: graalpy id: graalpy

View File

@@ -39,7 +39,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: setup-python ${{ matrix.pypy }} - name: setup-python ${{ matrix.pypy }}
id: setup-python id: setup-python
@@ -90,7 +90,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: setup-python ${{ matrix.pypy }} - name: setup-python ${{ matrix.pypy }}
id: setup-python id: setup-python
@@ -141,7 +141,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: setup-python ${{ matrix.pypy }} - name: setup-python ${{ matrix.pypy }}
id: setup-python id: setup-python
@@ -171,7 +171,7 @@ jobs:
macos-latest macos-latest
] ]
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup PyPy and check latest - name: Setup PyPy and check latest
uses: ./ uses: ./
with: with:
@@ -212,7 +212,7 @@ jobs:
macos-latest macos-latest
] ]
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup PyPy and check latest - name: Setup PyPy and check latest
uses: ./ uses: ./
with: with:

View File

@@ -33,7 +33,7 @@ jobs:
python: [3.13.14t, 3.14.6t] python: [3.13.14t, 3.14.6t]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: setup-python ${{ matrix.python }} - name: setup-python ${{ matrix.python }}
id: setup-python id: setup-python
@@ -70,7 +70,7 @@ jobs:
python: [3.13.14t, 3.14.6t] python: [3.13.14t, 3.14.6t]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: build-version-file ${{ matrix.python }} - name: build-version-file ${{ matrix.python }}
run: echo ${{ matrix.python }} > .python-version run: echo ${{ matrix.python }} > .python-version
@@ -110,7 +110,7 @@ jobs:
python: [3.13.14t, 3.14.6t] python: [3.13.14t, 3.14.6t]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: build-version-file ${{ matrix.python }} - name: build-version-file ${{ matrix.python }}
run: echo ${{ matrix.python }} > .python-version run: echo ${{ matrix.python }} > .python-version
@@ -148,7 +148,7 @@ jobs:
python: [3.13.14, 3.14.6] python: [3.13.14, 3.14.6]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: build-version-file ${{ matrix.python }} - name: build-version-file ${{ matrix.python }}
run: | run: |
@@ -189,7 +189,7 @@ jobs:
python: [3.13.14, 3.14.6] python: [3.13.14, 3.14.6]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: build-version-file ${{ matrix.python }} - name: build-version-file ${{ matrix.python }}
run: | run: |
@@ -230,7 +230,7 @@ jobs:
python: [3.13.14t, 3.14.6t, 3.15t-dev] python: [3.13.14t, 3.14.6t, 3.15t-dev]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: build-tool-versions-file ${{ matrix.python }} - name: build-tool-versions-file ${{ matrix.python }}
run: | run: |
@@ -261,7 +261,7 @@ jobs:
python: [3.13t, 3.15t-dev] python: [3.13t, 3.15t-dev]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: build-version-file ${{ matrix.python }} - name: build-version-file ${{ matrix.python }}
run: | run: |
@@ -301,7 +301,7 @@ jobs:
python: [3.13.14t, 3.14.6t, 3.15t-dev] python: [3.13.14t, 3.14.6t, 3.15t-dev]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: build-version-file ${{ matrix.python }} - name: build-version-file ${{ matrix.python }}
run: | run: |
@@ -340,7 +340,7 @@ jobs:
] ]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: setup-python 3.15.0-beta.3 - name: setup-python 3.15.0-beta.3
id: setup-python id: setup-python
@@ -377,7 +377,7 @@ jobs:
] ]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: setup-python 3.15t-dev - name: setup-python 3.15t-dev
id: setup-python id: setup-python
@@ -414,7 +414,7 @@ jobs:
] ]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: setup-python 3.15t - name: setup-python 3.15t
id: setup-python id: setup-python
@@ -453,7 +453,7 @@ jobs:
python: [3.13.14t, 3.14.6t] python: [3.13.14t, 3.14.6t]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: setup-python ${{ matrix.python }} - name: setup-python ${{ matrix.python }}
id: setup-python id: setup-python
@@ -485,7 +485,7 @@ jobs:
] ]
python-version: [3.13t, 3.15t-dev] python-version: [3.13t, 3.15t-dev]
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Python and check latest - name: Setup Python and check latest
id: setup-python id: setup-python
uses: ./ uses: ./
@@ -511,7 +511,7 @@ jobs:
macos-latest macos-latest
] ]
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup multiple Python versions - name: Setup multiple Python versions
id: setup-python id: setup-python
uses: ./ uses: ./
@@ -542,7 +542,7 @@ jobs:
python: [3.13.14, 3.14.6, 3.15-dev, 3.15.0-beta.3] python: [3.13.14, 3.14.6, 3.15-dev, 3.15.0-beta.3]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: setup-python ${{ matrix.python }} - name: setup-python ${{ matrix.python }}
id: setup-python id: setup-python
uses: ./ uses: ./

View File

@@ -36,7 +36,7 @@ jobs:
python: 3.10.11 python: 3.10.11
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: setup-python ${{ matrix.python }} - name: setup-python ${{ matrix.python }}
id: setup-python id: setup-python
@@ -83,7 +83,7 @@ jobs:
python: 3.10.11 python: 3.10.11
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: build-version-file ${{ matrix.python }} - name: build-version-file ${{ matrix.python }}
run: echo ${{ matrix.python }} > .python-version run: echo ${{ matrix.python }} > .python-version
@@ -133,7 +133,7 @@ jobs:
python: 3.10.11 python: 3.10.11
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: build-version-file ${{ matrix.python }} - name: build-version-file ${{ matrix.python }}
run: echo ${{ matrix.python }} > .python-version run: echo ${{ matrix.python }} > .python-version
@@ -181,7 +181,7 @@ jobs:
python: 3.10.11 python: 3.10.11
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: build-version-file ${{ matrix.python }} - name: build-version-file ${{ matrix.python }}
run: | run: |
@@ -234,7 +234,7 @@ jobs:
python: 3.10.11 python: 3.10.11
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: build-version-file ${{ matrix.python }} - name: build-version-file ${{ matrix.python }}
run: | run: |
@@ -291,7 +291,7 @@ jobs:
python: pypy3.11-7.3.18 python: pypy3.11-7.3.18
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: build-tool-versions-file ${{ matrix.python }} - name: build-tool-versions-file ${{ matrix.python }}
run: | run: |
@@ -325,7 +325,7 @@ jobs:
python: 3.10.11 python: 3.10.11
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: build-version-file ${{ matrix.python }} - name: build-version-file ${{ matrix.python }}
run: | run: |
@@ -378,7 +378,7 @@ jobs:
python: 3.10.11 python: 3.10.11
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: build-version-file ${{ matrix.python }} - name: build-version-file ${{ matrix.python }}
run: | run: |
@@ -427,7 +427,7 @@ jobs:
] ]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: setup-python 3.15.0-beta.3 - name: setup-python 3.15.0-beta.3
id: setup-python id: setup-python
@@ -470,7 +470,7 @@ jobs:
] ]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: setup-python 3.15-dev - name: setup-python 3.15-dev
id: setup-python id: setup-python
@@ -507,7 +507,7 @@ jobs:
] ]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: setup-python 3.15 - name: setup-python 3.15
id: setup-python id: setup-python
@@ -549,7 +549,7 @@ jobs:
python: '3.10' python: '3.10'
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: setup-python ${{ matrix.python }} - name: setup-python ${{ matrix.python }}
id: setup-python id: setup-python
@@ -584,7 +584,7 @@ jobs:
- os: windows-11-arm - os: windows-11-arm
python-version: '3.10' python-version: '3.10'
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Python and check latest - name: Setup Python and check latest
uses: ./ uses: ./
with: with:
@@ -616,7 +616,7 @@ jobs:
macos-latest macos-latest
] ]
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Python and check latest - name: Setup Python and check latest
uses: ./ uses: ./
with: with:

View File

@@ -1,6 +1,6 @@
--- ---
name: brace-expansion name: brace-expansion
version: 5.0.9 version: 5.0.8
type: npm type: npm
summary: Brace expansion as known from sh/bash summary: Brace expansion as known from sh/bash
homepage: homepage:

View File

@@ -1,6 +1,6 @@
--- ---
name: undici name: undici
version: 6.28.0 version: 6.27.0
type: npm type: npm
summary: An HTTP/1.1 client, written from scratch for Node.js summary: An HTTP/1.1 client, written from scratch for Node.js
homepage: https://undici.nodejs.org homepage: https://undici.nodejs.org

View File

@@ -16069,13 +16069,7 @@ function processHeader (request, key, val) {
} else if (typeof val[i] === 'object') { } else if (typeof val[i] === 'object') {
throw new InvalidArgumentError(`invalid ${key} header`) throw new InvalidArgumentError(`invalid ${key} header`)
} else { } else {
// Coerce primitives (and reject unsafe coercions such as functions arr.push(`${val[i]}`)
// with a crafted toString/Symbol.toPrimitive).
const str = `${val[i]}`
if (!isValidHeaderValue(str)) {
throw new InvalidArgumentError(`invalid ${key} header`)
}
arr.push(str)
} }
} }
val = arr val = arr
@@ -16086,12 +16080,7 @@ function processHeader (request, key, val) {
} else if (val === null) { } else if (val === null) {
val = '' val = ''
} else { } else {
// Coerce primitives (and reject unsafe coercions such as functions
// with a crafted toString/Symbol.toPrimitive).
val = `${val}` val = `${val}`
if (!isValidHeaderValue(val)) {
throw new InvalidArgumentError(`invalid ${key} header`)
}
} }
if (headerName === 'host') { if (headerName === 'host') {
@@ -17463,7 +17452,6 @@ const {
RequestContentLengthMismatchError, RequestContentLengthMismatchError,
ResponseContentLengthMismatchError, ResponseContentLengthMismatchError,
RequestAbortedError, RequestAbortedError,
InvalidArgumentError,
HeadersTimeoutError, HeadersTimeoutError,
HeadersOverflowError, HeadersOverflowError,
SocketError, SocketError,
@@ -18447,16 +18435,8 @@ function writeH1 (client, request) {
} }
body = bodyStream.stream body = bodyStream.stream
contentLength = bodyStream.length contentLength = bodyStream.length
} else if (util.isBlobLike(body) && request.contentType == null) { } else if (util.isBlobLike(body) && request.contentType == null && body.type) {
const contentType = body.type headers.push('content-type', body.type)
if (contentType) {
const contentTypeValue = `${contentType}`
if (!util.isValidHeaderValue(contentTypeValue)) {
util.errorRequest(client, request, new InvalidArgumentError('invalid content-type header'))
return false
}
headers.push('content-type', contentTypeValue)
}
} }
if (body && typeof body.read === 'function') { if (body && typeof body.read === 'function') {
@@ -21929,28 +21909,6 @@ function calculateRetryAfterHeader (retryAfter) {
return new Date(retryAfter).getTime() - current return new Date(retryAfter).getTime() - current
} }
function validatePartialResponseContentLength (headers, range, statusCode, retryCount) {
const contentLength = headers['content-length']
if (contentLength == null) {
return null
}
if (!Number.isFinite(range.start) || !Number.isFinite(range.end)) {
return null
}
const length = Number(contentLength)
const expectedLength = range.end - range.start + 1
if (!Number.isFinite(length) || length !== expectedLength) {
return new RequestRetryError('Content-Length mismatch', statusCode, {
headers,
data: { count: retryCount }
})
}
return null
}
class RetryHandler { class RetryHandler {
constructor (opts, handlers) { constructor (opts, handlers) {
const { retryOptions, ...dispatchOpts } = opts const { retryOptions, ...dispatchOpts } = opts
@@ -22165,12 +22123,6 @@ class RetryHandler {
return false return false
} }
const contentLengthError = validatePartialResponseContentLength(headers, contentRange, statusCode, this.retryCount)
if (contentLengthError != null) {
this.abort(contentLengthError)
return false
}
const { start, size, end = size - 1 } = contentRange const { start, size, end = size - 1 } = contentRange
assert(this.start === start, 'content-range mismatch') assert(this.start === start, 'content-range mismatch')
@@ -22194,12 +22146,6 @@ class RetryHandler {
) )
} }
const contentLengthError = validatePartialResponseContentLength(headers, range, statusCode, this.retryCount)
if (contentLengthError != null) {
this.abort(contentLengthError)
return false
}
const { start, size, end = size - 1 } = range const { start, size, end = size - 1 } = range
assert( assert(
start != null && Number.isFinite(start), start != null && Number.isFinite(start),
@@ -26444,7 +26390,7 @@ function validateCookiePath (path) {
if ( if (
code < 0x20 || // exclude CTLs (0-31) code < 0x20 || // exclude CTLs (0-31)
code > 0x7E || // exclude DEL and non-ascii code === 0x7F || // DEL
code === 0x3B // ; code === 0x3B // ;
) { ) {
throw new Error('Invalid cookie path') throw new Error('Invalid cookie path')
@@ -26453,80 +26399,16 @@ function validateCookiePath (path) {
} }
/** /**
* <let-dig> ::= <letter> | <digit> * I have no idea why these values aren't allowed to be honest,
* * but Deno tests these. - Khafra
* <letter> ::= any one of the 52 alphabetic characters A through Z in
* upper case and a through z in lower case
*
* <digit> ::= any one of the ten digits 0 through 9r
*
* @see https://www.rfc-editor.org/rfc/rfc1034#section-3.5
* @param {number} code
*/
function isLetterOrDigit (code) {
return (
(code >= 0x30 && code <= 0x39) || // 0-9
(code >= 0x41 && code <= 0x5A) || // A-Z
(code >= 0x61 && code <= 0x7A) // a-z
)
}
/**
* Validates a cookie domain against the "preferred name syntax".
*
* <domain> ::= <subdomain> | " "
* <subdomain> ::= <label> | <subdomain> "." <label>
* <label> ::= <let-dig> [ [ <ldh-str> ] <let-dig> ]
* <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>
* <let-dig-hyp> ::= <let-dig> | "-"
*
* @see https://www.rfc-editor.org/rfc/rfc1034#section-3.5
* @see https://www.rfc-editor.org/rfc/rfc1123#section-2.1
* @see https://www.rfc-editor.org/rfc/rfc1035#section-2.3.4
* @param {string} domain * @param {string} domain
*/ */
function validateCookieDomain (domain) { function validateCookieDomain (domain) {
// <domain> ::= <subdomain> | " " if (
if (domain === ' ') { domain.startsWith('-') ||
return domain.endsWith('.') ||
} domain.endsWith('-')
) {
if (domain.length > 255) {
throw new Error('Invalid cookie domain')
}
let labelLength = 0
for (let i = 0; i < domain.length; ++i) {
const code = domain.charCodeAt(i)
if (code === 0x2E) {
if (labelLength === 0) {
throw new Error('Invalid cookie domain')
}
if (domain.charCodeAt(i - 1) === 0x2D) { // "-"
throw new Error('Invalid cookie domain')
}
labelLength = 0
continue
}
if (labelLength === 0 && !isLetterOrDigit(code)) {
throw new Error('Invalid cookie domain')
}
if (!isLetterOrDigit(code) && code !== 0x2D) { // "-"
throw new Error('Invalid cookie domain')
}
if (++labelLength > 63) {
throw new Error('Invalid cookie domain')
}
}
if (labelLength === 0 || domain.charCodeAt(domain.length - 1) === 0x2D) { // "-"
throw new Error('Invalid cookie domain') throw new Error('Invalid cookie domain')
} }
} }
@@ -26669,13 +26551,7 @@ function stringify (cookie) {
const [key, ...value] = part.split('=') const [key, ...value] = part.split('=')
const trimmedKey = key.trim() out.push(`${key.trim()}=${value.join('=')}`)
const joinedValue = value.join('=')
validateCookieName(trimmedKey)
validateCookieValue(joinedValue)
out.push(`${trimmedKey}=${joinedValue}`)
} }
return out.join('; ') return out.join('; ')
@@ -41208,7 +41084,7 @@ function combine(acc, pre, values, max, maxLength, dropEmpties) {
} }
// The expansion values of a single numeric (`1..5`) or alphabetic (`a..e..2`) // The expansion values of a single numeric (`1..5`) or alphabetic (`a..e..2`)
// sequence body. // sequence body.
function expandSequence(body, isAlphaSequence, max, maxLength) { function expandSequence(body, isAlphaSequence, max) {
const n = body.split(/\.\./); const n = body.split(/\.\./);
const N = []; const N = [];
// A sequence body always splits into two or three parts, but the compiler // A sequence body always splits into two or three parts, but the compiler
@@ -41231,7 +41107,6 @@ function expandSequence(body, isAlphaSequence, max, maxLength) {
test = gte; test = gte;
} }
const pad = n.some(isPadded); const pad = n.some(isPadded);
let length = 0;
for (let i = x; test(i, y) && N.length < max; i += incr) { for (let i = x; test(i, y) && N.length < max; i += incr) {
let c; let c;
if (isAlphaSequence) { if (isAlphaSequence) {
@@ -41255,10 +41130,7 @@ function expandSequence(body, isAlphaSequence, max, maxLength) {
} }
} }
} }
if (length + c.length > maxLength)
break;
N.push(c); N.push(c);
length += c.length;
} }
return N; return N;
} }
@@ -41312,7 +41184,7 @@ function expand_(str, max, maxLength, isTop) {
} }
let values; let values;
if (isSequence) { if (isSequence) {
values = expandSequence(m.body, isAlphaSequence, max, maxLength); values = expandSequence(m.body, isAlphaSequence, max);
} }
else { else {
let n = parseCommaParts(m.body); let n = parseCommaParts(m.body);
@@ -41330,31 +41202,9 @@ function expand_(str, max, maxLength, isTop) {
} }
/* c8 ignore stop */ /* c8 ignore stop */
} }
// Values that `combine` is going to drop as empty produce no result, so
// they must not count against `max` - otherwise `{a,,b}` with `max: 2`
// would stop at `['a', '']` and yield one result instead of two. Skipping
// them outright keeps `values` bounded while leaving `max` a bound on
// *kept* results.
let dropsEmpties = dropEmpties && !m.post.length && !pre;
for (let d = 0; dropsEmpties && d < acc.length; d++) {
if (acc[d]) {
dropsEmpties = false;
}
}
values = []; values = [];
let valuesLength = 0; for (let j = 0; j < n.length; j++) {
outer: for (let j = 0; j < n.length; j++) { values.push.apply(values, expand_(n[j], max, maxLength, false));
const expanded = expand_(n[j], max, maxLength, false);
for (let k = 0; k < expanded.length; k++) {
const v = expanded[k];
if (dropsEmpties && !v)
continue;
if (values.length >= max || valuesLength + v.length > maxLength) {
break outer;
}
values.push(v);
valuesLength += v.length;
}
} }
} }
acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length); acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length);

216
dist/setup/index.js vendored
View File

@@ -16069,13 +16069,7 @@ function processHeader (request, key, val) {
} else if (typeof val[i] === 'object') { } else if (typeof val[i] === 'object') {
throw new InvalidArgumentError(`invalid ${key} header`) throw new InvalidArgumentError(`invalid ${key} header`)
} else { } else {
// Coerce primitives (and reject unsafe coercions such as functions arr.push(`${val[i]}`)
// with a crafted toString/Symbol.toPrimitive).
const str = `${val[i]}`
if (!isValidHeaderValue(str)) {
throw new InvalidArgumentError(`invalid ${key} header`)
}
arr.push(str)
} }
} }
val = arr val = arr
@@ -16086,12 +16080,7 @@ function processHeader (request, key, val) {
} else if (val === null) { } else if (val === null) {
val = '' val = ''
} else { } else {
// Coerce primitives (and reject unsafe coercions such as functions
// with a crafted toString/Symbol.toPrimitive).
val = `${val}` val = `${val}`
if (!isValidHeaderValue(val)) {
throw new InvalidArgumentError(`invalid ${key} header`)
}
} }
if (headerName === 'host') { if (headerName === 'host') {
@@ -17463,7 +17452,6 @@ const {
RequestContentLengthMismatchError, RequestContentLengthMismatchError,
ResponseContentLengthMismatchError, ResponseContentLengthMismatchError,
RequestAbortedError, RequestAbortedError,
InvalidArgumentError,
HeadersTimeoutError, HeadersTimeoutError,
HeadersOverflowError, HeadersOverflowError,
SocketError, SocketError,
@@ -18447,16 +18435,8 @@ function writeH1 (client, request) {
} }
body = bodyStream.stream body = bodyStream.stream
contentLength = bodyStream.length contentLength = bodyStream.length
} else if (util.isBlobLike(body) && request.contentType == null) { } else if (util.isBlobLike(body) && request.contentType == null && body.type) {
const contentType = body.type headers.push('content-type', body.type)
if (contentType) {
const contentTypeValue = `${contentType}`
if (!util.isValidHeaderValue(contentTypeValue)) {
util.errorRequest(client, request, new InvalidArgumentError('invalid content-type header'))
return false
}
headers.push('content-type', contentTypeValue)
}
} }
if (body && typeof body.read === 'function') { if (body && typeof body.read === 'function') {
@@ -21929,28 +21909,6 @@ function calculateRetryAfterHeader (retryAfter) {
return new Date(retryAfter).getTime() - current return new Date(retryAfter).getTime() - current
} }
function validatePartialResponseContentLength (headers, range, statusCode, retryCount) {
const contentLength = headers['content-length']
if (contentLength == null) {
return null
}
if (!Number.isFinite(range.start) || !Number.isFinite(range.end)) {
return null
}
const length = Number(contentLength)
const expectedLength = range.end - range.start + 1
if (!Number.isFinite(length) || length !== expectedLength) {
return new RequestRetryError('Content-Length mismatch', statusCode, {
headers,
data: { count: retryCount }
})
}
return null
}
class RetryHandler { class RetryHandler {
constructor (opts, handlers) { constructor (opts, handlers) {
const { retryOptions, ...dispatchOpts } = opts const { retryOptions, ...dispatchOpts } = opts
@@ -22165,12 +22123,6 @@ class RetryHandler {
return false return false
} }
const contentLengthError = validatePartialResponseContentLength(headers, contentRange, statusCode, this.retryCount)
if (contentLengthError != null) {
this.abort(contentLengthError)
return false
}
const { start, size, end = size - 1 } = contentRange const { start, size, end = size - 1 } = contentRange
assert(this.start === start, 'content-range mismatch') assert(this.start === start, 'content-range mismatch')
@@ -22194,12 +22146,6 @@ class RetryHandler {
) )
} }
const contentLengthError = validatePartialResponseContentLength(headers, range, statusCode, this.retryCount)
if (contentLengthError != null) {
this.abort(contentLengthError)
return false
}
const { start, size, end = size - 1 } = range const { start, size, end = size - 1 } = range
assert( assert(
start != null && Number.isFinite(start), start != null && Number.isFinite(start),
@@ -26444,7 +26390,7 @@ function validateCookiePath (path) {
if ( if (
code < 0x20 || // exclude CTLs (0-31) code < 0x20 || // exclude CTLs (0-31)
code > 0x7E || // exclude DEL and non-ascii code === 0x7F || // DEL
code === 0x3B // ; code === 0x3B // ;
) { ) {
throw new Error('Invalid cookie path') throw new Error('Invalid cookie path')
@@ -26453,80 +26399,16 @@ function validateCookiePath (path) {
} }
/** /**
* <let-dig> ::= <letter> | <digit> * I have no idea why these values aren't allowed to be honest,
* * but Deno tests these. - Khafra
* <letter> ::= any one of the 52 alphabetic characters A through Z in
* upper case and a through z in lower case
*
* <digit> ::= any one of the ten digits 0 through 9r
*
* @see https://www.rfc-editor.org/rfc/rfc1034#section-3.5
* @param {number} code
*/
function isLetterOrDigit (code) {
return (
(code >= 0x30 && code <= 0x39) || // 0-9
(code >= 0x41 && code <= 0x5A) || // A-Z
(code >= 0x61 && code <= 0x7A) // a-z
)
}
/**
* Validates a cookie domain against the "preferred name syntax".
*
* <domain> ::= <subdomain> | " "
* <subdomain> ::= <label> | <subdomain> "." <label>
* <label> ::= <let-dig> [ [ <ldh-str> ] <let-dig> ]
* <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>
* <let-dig-hyp> ::= <let-dig> | "-"
*
* @see https://www.rfc-editor.org/rfc/rfc1034#section-3.5
* @see https://www.rfc-editor.org/rfc/rfc1123#section-2.1
* @see https://www.rfc-editor.org/rfc/rfc1035#section-2.3.4
* @param {string} domain * @param {string} domain
*/ */
function validateCookieDomain (domain) { function validateCookieDomain (domain) {
// <domain> ::= <subdomain> | " " if (
if (domain === ' ') { domain.startsWith('-') ||
return domain.endsWith('.') ||
} domain.endsWith('-')
) {
if (domain.length > 255) {
throw new Error('Invalid cookie domain')
}
let labelLength = 0
for (let i = 0; i < domain.length; ++i) {
const code = domain.charCodeAt(i)
if (code === 0x2E) {
if (labelLength === 0) {
throw new Error('Invalid cookie domain')
}
if (domain.charCodeAt(i - 1) === 0x2D) { // "-"
throw new Error('Invalid cookie domain')
}
labelLength = 0
continue
}
if (labelLength === 0 && !isLetterOrDigit(code)) {
throw new Error('Invalid cookie domain')
}
if (!isLetterOrDigit(code) && code !== 0x2D) { // "-"
throw new Error('Invalid cookie domain')
}
if (++labelLength > 63) {
throw new Error('Invalid cookie domain')
}
}
if (labelLength === 0 || domain.charCodeAt(domain.length - 1) === 0x2D) { // "-"
throw new Error('Invalid cookie domain') throw new Error('Invalid cookie domain')
} }
} }
@@ -26669,13 +26551,7 @@ function stringify (cookie) {
const [key, ...value] = part.split('=') const [key, ...value] = part.split('=')
const trimmedKey = key.trim() out.push(`${key.trim()}=${value.join('=')}`)
const joinedValue = value.join('=')
validateCookieName(trimmedKey)
validateCookieValue(joinedValue)
out.push(`${trimmedKey}=${joinedValue}`)
} }
return out.join('; ') return out.join('; ')
@@ -41208,7 +41084,7 @@ function combine(acc, pre, values, max, maxLength, dropEmpties) {
} }
// The expansion values of a single numeric (`1..5`) or alphabetic (`a..e..2`) // The expansion values of a single numeric (`1..5`) or alphabetic (`a..e..2`)
// sequence body. // sequence body.
function expandSequence(body, isAlphaSequence, max, maxLength) { function expandSequence(body, isAlphaSequence, max) {
const n = body.split(/\.\./); const n = body.split(/\.\./);
const N = []; const N = [];
// A sequence body always splits into two or three parts, but the compiler // A sequence body always splits into two or three parts, but the compiler
@@ -41231,7 +41107,6 @@ function expandSequence(body, isAlphaSequence, max, maxLength) {
test = gte; test = gte;
} }
const pad = n.some(isPadded); const pad = n.some(isPadded);
let length = 0;
for (let i = x; test(i, y) && N.length < max; i += incr) { for (let i = x; test(i, y) && N.length < max; i += incr) {
let c; let c;
if (isAlphaSequence) { if (isAlphaSequence) {
@@ -41255,10 +41130,7 @@ function expandSequence(body, isAlphaSequence, max, maxLength) {
} }
} }
} }
if (length + c.length > maxLength)
break;
N.push(c); N.push(c);
length += c.length;
} }
return N; return N;
} }
@@ -41312,7 +41184,7 @@ function expand_(str, max, maxLength, isTop) {
} }
let values; let values;
if (isSequence) { if (isSequence) {
values = expandSequence(m.body, isAlphaSequence, max, maxLength); values = expandSequence(m.body, isAlphaSequence, max);
} }
else { else {
let n = parseCommaParts(m.body); let n = parseCommaParts(m.body);
@@ -41330,31 +41202,9 @@ function expand_(str, max, maxLength, isTop) {
} }
/* c8 ignore stop */ /* c8 ignore stop */
} }
// Values that `combine` is going to drop as empty produce no result, so
// they must not count against `max` - otherwise `{a,,b}` with `max: 2`
// would stop at `['a', '']` and yield one result instead of two. Skipping
// them outright keeps `values` bounded while leaving `max` a bound on
// *kept* results.
let dropsEmpties = dropEmpties && !m.post.length && !pre;
for (let d = 0; dropsEmpties && d < acc.length; d++) {
if (acc[d]) {
dropsEmpties = false;
}
}
values = []; values = [];
let valuesLength = 0; for (let j = 0; j < n.length; j++) {
outer: for (let j = 0; j < n.length; j++) { values.push.apply(values, expand_(n[j], max, maxLength, false));
const expanded = expand_(n[j], max, maxLength, false);
for (let k = 0; k < expanded.length; k++) {
const v = expanded[k];
if (dropsEmpties && !v)
continue;
if (values.length >= max || valuesLength + v.length > maxLength) {
break outer;
}
values.push(v);
valuesLength += v.length;
}
} }
} }
acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length); acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length);
@@ -100300,7 +100150,7 @@ function combine(acc, pre, values, max, maxLength, dropEmpties) {
} }
// The expansion values of a single numeric (`1..5`) or alphabetic (`a..e..2`) // The expansion values of a single numeric (`1..5`) or alphabetic (`a..e..2`)
// sequence body. // sequence body.
function expandSequence(body, isAlphaSequence, max, maxLength) { function expandSequence(body, isAlphaSequence, max) {
const n = body.split(/\.\./); const n = body.split(/\.\./);
const N = []; const N = [];
// A sequence body always splits into two or three parts, but the compiler // A sequence body always splits into two or three parts, but the compiler
@@ -100323,7 +100173,6 @@ function expandSequence(body, isAlphaSequence, max, maxLength) {
test = gte; test = gte;
} }
const pad = n.some(isPadded); const pad = n.some(isPadded);
let length = 0;
for (let i = x; test(i, y) && N.length < max; i += incr) { for (let i = x; test(i, y) && N.length < max; i += incr) {
let c; let c;
if (isAlphaSequence) { if (isAlphaSequence) {
@@ -100347,10 +100196,7 @@ function expandSequence(body, isAlphaSequence, max, maxLength) {
} }
} }
} }
if (length + c.length > maxLength)
break;
N.push(c); N.push(c);
length += c.length;
} }
return N; return N;
} }
@@ -100404,7 +100250,7 @@ function expand_(str, max, maxLength, isTop) {
} }
let values; let values;
if (isSequence) { if (isSequence) {
values = expandSequence(m.body, isAlphaSequence, max, maxLength); values = expandSequence(m.body, isAlphaSequence, max);
} }
else { else {
let n = parseCommaParts(m.body); let n = parseCommaParts(m.body);
@@ -100422,31 +100268,9 @@ function expand_(str, max, maxLength, isTop) {
} }
/* c8 ignore stop */ /* c8 ignore stop */
} }
// Values that `combine` is going to drop as empty produce no result, so
// they must not count against `max` - otherwise `{a,,b}` with `max: 2`
// would stop at `['a', '']` and yield one result instead of two. Skipping
// them outright keeps `values` bounded while leaving `max` a bound on
// *kept* results.
let dropsEmpties = dropEmpties && !m.post.length && !pre;
for (let d = 0; dropsEmpties && d < acc.length; d++) {
if (acc[d]) {
dropsEmpties = false;
}
}
values = []; values = [];
let valuesLength = 0; for (let j = 0; j < n.length; j++) {
outer: for (let j = 0; j < n.length; j++) { values.push.apply(values, expand_(n[j], max, maxLength, false));
const expanded = expand_(n[j], max, maxLength, false);
for (let k = 0; k < expanded.length; k++) {
const v = expanded[k];
if (dropsEmpties && !v)
continue;
if (values.length >= max || valuesLength + v.length > maxLength) {
break outer;
}
values.push(v);
valuesLength += v.length;
}
} }
} }
acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length); acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length);

26
package-lock.json generated
View File

@@ -33,7 +33,7 @@
"eslint-plugin-n": "^18.1.0", "eslint-plugin-n": "^18.1.0",
"globals": "^17.7.0", "globals": "^17.7.0",
"jest": "^30.4.2", "jest": "^30.4.2",
"prettier": "^3.8.4", "prettier": "^3.9.6",
"ts-jest": "^29.4.11", "ts-jest": "^29.4.11",
"typescript": "^6.0.3" "typescript": "^6.0.3"
}, },
@@ -2663,9 +2663,9 @@
} }
}, },
"node_modules/brace-expansion": { "node_modules/brace-expansion": {
"version": "5.0.9", "version": "5.0.8",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.8.tgz",
"integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", "integrity": "sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"balanced-match": "^4.0.2" "balanced-match": "^4.0.2"
@@ -4741,9 +4741,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/js-yaml": { "node_modules/js-yaml": {
"version": "3.15.1", "version": "3.15.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.1.tgz", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.0.tgz",
"integrity": "sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag==", "integrity": "sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@@ -5334,9 +5334,9 @@
} }
}, },
"node_modules/prettier": { "node_modules/prettier": {
"version": "3.8.4", "version": "3.9.6",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.4.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz",
"integrity": "sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q==", "integrity": "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"bin": { "bin": {
@@ -6038,9 +6038,9 @@
} }
}, },
"node_modules/undici": { "node_modules/undici": {
"version": "6.28.0", "version": "6.27.0",
"resolved": "https://registry.npmjs.org/undici/-/undici-6.28.0.tgz", "resolved": "https://registry.npmjs.org/undici/-/undici-6.27.0.tgz",
"integrity": "sha512-LIY910g9TI13YS95lrMFrs8Rm/u/irgHeTWoKCoteeJ04CUJ92eEfj0rVn+7VKMPBpUPiUoBKfhNyLI23EE/KA==", "integrity": "sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==",
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=18.17" "node": ">=18.17"

View File

@@ -56,7 +56,7 @@
"eslint-plugin-n": "^18.1.0", "eslint-plugin-n": "^18.1.0",
"globals": "^17.7.0", "globals": "^17.7.0",
"jest": "^30.4.2", "jest": "^30.4.2",
"prettier": "^3.8.4", "prettier": "^3.9.6",
"ts-jest": "^29.4.11", "ts-jest": "^29.4.11",
"typescript": "^6.0.3" "typescript": "^6.0.3"
} }