cuke-dedup 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,32 @@ All notable changes to CukeDedup are documented in this file. The project follow
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.4.0] - 2026-09-15
9
+
10
+ ### Changed
11
+
12
+ - Static computed property access resolves the same way dot access does at every position of an
13
+ assertion chain, so `expect(x)['not'].toBe(y)` now carries the semantics of
14
+ `expect(x).not.toBe(y)`. Conflicting expected values behind a computed modifier are no longer
15
+ collapsed into a `parameterization-candidate`, and a dotted and a computed spelling of the same
16
+ assertion can now be reported as near-duplicates where previously neither was. Reports can
17
+ therefore change in both directions on upgrade.
18
+ - A property name resolves only when it is written as a static string literal. A concatenation, a
19
+ template literal, a runtime value, or an escape the decoder does not support stays unresolved
20
+ rather than resolving to a name the source never spells, which keeps the handler non-comparable
21
+ instead of claiming an assertion.
22
+
23
+ ### Fixed
24
+
25
+ - Writing through an alias of a matcher builder revokes assertion trust for every spelling of that
26
+ alias, not only the flat one. Nested destructuring, shorthand bindings, shorthand bindings
27
+ carrying a default, and object rest bindings are now treated like `const negated =
28
+ api.expect.not`. Handlers that rely on a matcher replaced through one of those aliases are no
29
+ longer reported as duplicates.
30
+ - Object rest bindings are treated as the shallow copies they are. `copy.not.objectContaining = x`
31
+ reaches the object the source still references and revokes trust, while `copy.not = x` replaces a
32
+ slot on the copy alone and leaves trust intact. Previously neither revoked it.
33
+
8
34
  ## [0.3.0] - 2026-09-14
9
35
 
10
36
  ### Added
@@ -159,6 +185,7 @@ Initial public release.
159
185
  - Native Cargo and npm distributions for eight supported targets.
160
186
  - A checksum-verified GitHub Action and an agent-oriented CukeDedup skill.
161
187
 
188
+ [0.4.0]: https://github.com/figueiredoluiz/cuke-dedup/compare/v0.3.0...v0.4.0
162
189
  [0.3.0]: https://github.com/figueiredoluiz/cuke-dedup/compare/v0.2.1...v0.3.0
163
190
  [0.2.1]: https://github.com/figueiredoluiz/cuke-dedup/compare/v0.2.0...v0.2.1
164
191
  [0.2.0]: https://github.com/figueiredoluiz/cuke-dedup/compare/v0.1.1...v0.2.0
package/README.md CHANGED
@@ -23,7 +23,7 @@ With Cargo:
23
23
  cargo install cuke-dedup
24
24
  ```
25
25
 
26
- Or in a JavaScript project:
26
+ Or in a JavaScript project, using Node.js 24 LTS (recommended):
27
27
 
28
28
  ```sh
29
29
  npm install --save-dev cuke-dedup
@@ -136,7 +136,7 @@ steps:
136
136
  with:
137
137
  fetch-depth: 0
138
138
  persist-credentials: false
139
- - uses: figueiredoluiz/cuke-dedup@v0.3.0
139
+ - uses: figueiredoluiz/cuke-dedup@v0.4.0
140
140
  with:
141
141
  path: .
142
142
  threshold: 5
@@ -185,7 +185,7 @@ and is distributed independently from the Cargo and npm packages.
185
185
 
186
186
  ## Compatibility
187
187
 
188
- - Rust 1.90 or newer is required. The npm launcher is tested on Node.js 20 and 24.
188
+ - Building from source requires Rust 1.90 or newer. Node.js 24 LTS is recommended for the npm launcher; Node.js 20 remains the minimum compatible version and is tested in CI.
189
189
  - Definition extraction currently supports JavaScript and TypeScript, including JSX and common
190
190
  module variants.
191
191
  - Static analysis cannot safely resolve every dynamic configuration, matcher, wrapper, or imported
@@ -18,7 +18,7 @@ steps:
18
18
  fetch-depth: 0
19
19
  persist-credentials: false
20
20
 
21
- - uses: figueiredoluiz/cuke-dedup@v0.3.0
21
+ - uses: figueiredoluiz/cuke-dedup@v0.4.0
22
22
  id: cuke-dedup
23
23
  with:
24
24
  path: .
@@ -7,7 +7,7 @@ resource limits keep failures visible and bound the work performed.
7
7
  ## Compatibility
8
8
 
9
9
  - The minimum supported Rust version is 1.90.
10
- - The npm launcher is tested on Node.js 20 and 24.
10
+ - Node.js 24 LTS is recommended for the npm launcher. CI also tests Node.js 20 as the minimum compatible version; Node.js 20 has reached end of life upstream.
11
11
  - Source adapters cover JavaScript and TypeScript, including JSX and common module variants.
12
12
  - Unsupported source languages are rejected rather than guessed.
13
13
  - Classic Gherkin and Gherkin Markdown are supported, including declared Gherkin dialects.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cuke-dedup",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Static analysis for duplicate and reusable Cucumber step definitions",
5
5
  "type": "module",
6
6
  "bin": {
@@ -47,13 +47,13 @@
47
47
  "npm/platforms/*"
48
48
  ],
49
49
  "optionalDependencies": {
50
- "cuke-dedup-darwin-arm64": "0.3.0",
51
- "cuke-dedup-darwin-x64": "0.3.0",
52
- "cuke-dedup-linux-arm64-gnu": "0.3.0",
53
- "cuke-dedup-linux-arm64-musl": "0.3.0",
54
- "cuke-dedup-linux-x64-gnu": "0.3.0",
55
- "cuke-dedup-linux-x64-musl": "0.3.0",
56
- "cuke-dedup-windows-arm64-msvc": "0.3.0",
57
- "cuke-dedup-windows-x64-msvc": "0.3.0"
50
+ "cuke-dedup-darwin-arm64": "0.4.0",
51
+ "cuke-dedup-darwin-x64": "0.4.0",
52
+ "cuke-dedup-linux-arm64-gnu": "0.4.0",
53
+ "cuke-dedup-linux-arm64-musl": "0.4.0",
54
+ "cuke-dedup-linux-x64-gnu": "0.4.0",
55
+ "cuke-dedup-linux-x64-musl": "0.4.0",
56
+ "cuke-dedup-windows-arm64-msvc": "0.4.0",
57
+ "cuke-dedup-windows-x64-msvc": "0.4.0"
58
58
  }
59
59
  }