@bymax-one/nest-queue 1.0.9 → 1.0.10

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
@@ -7,6 +7,44 @@ versioning follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  ---
9
9
 
10
+ ## [1.0.10] — 2026-08-06
11
+
12
+ **Documentation and tooling only.** `dist/` is byte-identical to `1.0.9`; no source file
13
+ changed.
14
+
15
+ ### Fixed
16
+
17
+ - The quality bullet claimed "no suppression comments" while the source carries five
18
+ `// Stryker disable` comments. The claim was about type suppressions and read as false to
19
+ anyone who grepped for it; it now says what is true — no `@ts-ignore` and no
20
+ `eslint-disable`.
21
+
22
+ ### Security
23
+
24
+ - **The OSV scan was passing because it had nothing to read.** The workflow ran
25
+ `osv-scanner` with no `actions/checkout` step, so it walked an empty workspace and
26
+ reported "No package sources found" and "No lockfiles found" before exiting 0. A green
27
+ check meant the scanner found no files, which is indistinguishable from finding no
28
+ vulnerabilities. With the checkout in place it scans the lockfile, which is how the next
29
+ item was found.
30
+ - **`js-yaml` is patched to the fixed release** (GHSA-5p4m-2wfm-xmqj, CVSS 7.5). The
31
+ override floors here already scoped it per major but admitted `3.15.0` and `4.3.0`, both
32
+ covered by the advisory; they are raised to `^3.15.1` and `^4.3.1`. It reaches this repo
33
+ only through `jest` -> `babel-plugin-istanbul` -> `@istanbuljs/load-nyc-config`, and
34
+ `dependencies` is empty, so nothing here ships it and no consumer was exposed. `dist/` is
35
+ unaffected.
36
+
37
+ ### Added
38
+
39
+ - `check:mutants` gate (`scripts/check-mutation-directives.mjs`) — validates every
40
+ `// Stryker` comment against the grammar Stryker's own parser accepts, rejecting a reason
41
+ written after `--` instead of a colon (silently dropped, and the report then shows
42
+ `Ignored using a comment`), a reason wrapped onto a second comment line (the report keeps
43
+ only the first fragment), and a mutator name Stryker does not know, which matches nothing
44
+ and so silences nothing. Wired into CI and `prepublishOnly`.
45
+ - `docs/mutation_testing_plan.md` carries the suppression policy now shared, word for word,
46
+ across the `@bymax-one/nest-*` libraries.
47
+
10
48
  ## [1.0.9] — 2026-08-06
11
49
 
12
50
  **Published-artifact change, not a behavioural one.** `dist/` differs from `1.0.8` — this
@@ -405,6 +443,7 @@ v6 peer range.
405
443
 
406
444
  ---
407
445
 
446
+ [1.0.10]: https://github.com/bymaxone/nest-queue/compare/v1.0.9...v1.0.10
408
447
  [1.0.9]: https://github.com/bymaxone/nest-queue/compare/v1.0.8...v1.0.9
409
448
  [1.0.8]: https://github.com/bymaxone/nest-queue/compare/v1.0.7...v1.0.8
410
449
  [1.0.7]: https://github.com/bymaxone/nest-queue/compare/v1.0.6...v1.0.7
package/README.md CHANGED
@@ -87,7 +87,7 @@ peer dependencies, so you control exact versions and the supply-chain surface st
87
87
  - ✅ **Stable error catalog** — namespaced codes exported from both subpaths, so a frontend maps a `code` without importing the server
88
88
  - ✅ **Dual-format output** — ESM + CJS with declarations for each format, verified against the packed tarball on every PR
89
89
  - ✅ **Opt-in observability** — OpenTelemetry passthrough via `bullmq-otel`, plus a `MetricsService` with a configurable TTL cache
90
- - ✅ **Typed end to end** — TypeScript `strict` with `exactOptionalPropertyTypes` and `noUncheckedIndexedAccess`; zero `any`, no suppression comments
90
+ - ✅ **Typed end to end** — TypeScript `strict` with `exactOptionalPropertyTypes` and `noUncheckedIndexedAccess`; zero `any`, no `@ts-ignore` and no `eslint-disable`
91
91
 
92
92
  ---
93
93
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bymax-one/nest-queue",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "description": "NestJS dynamic module wrapping BullMQ — typed jobs, flows, job schedulers, deduplication, OpenTelemetry, graceful shutdown",
5
5
  "author": "Bymax One <support@bymax.one>",
6
6
  "license": "MIT",
@@ -56,6 +56,7 @@
56
56
  "scripts": {
57
57
  "build": "pnpm clean && tsup",
58
58
  "check:exports": "attw --pack .",
59
+ "check:mutants": "node scripts/check-mutation-directives.mjs",
59
60
  "check:published": "node scripts/check-published-surface.mjs",
60
61
  "clean": "rm -rf dist coverage",
61
62
  "lint": "eslint src scripts test",
@@ -64,7 +65,7 @@
64
65
  "mutation:dry-run": "stryker run --dryRunOnly",
65
66
  "mutation:incremental": "stryker run --incremental",
66
67
  "prepare": "husky",
67
- "prepublishOnly": "pnpm clean && pnpm typecheck && pnpm test:types && pnpm lint && pnpm test:cov:all && pnpm build && pnpm check:published",
68
+ "prepublishOnly": "pnpm clean && pnpm typecheck && pnpm test:types && pnpm lint && pnpm check:mutants && pnpm test:cov:all && pnpm build && pnpm check:published",
68
69
  "release": "npm publish --provenance --access public",
69
70
  "size": "node scripts/check-size.mjs",
70
71
  "smoke": "node scripts/dogfood-smoke-test.mjs",