@vanaheimr/cose 0.9.0 → 0.10.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.
Files changed (3) hide show
  1. package/CHANGELOG.md +55 -1
  2. package/README.md +20 -0
  3. package/package.json +15 -15
package/CHANGELOG.md CHANGED
@@ -6,7 +6,61 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
  Until 1.0.0 the public API may change in minor releases.
8
8
 
9
- ## [0.1.0] — 2026-08-22
9
+ ## [0.10.0] — 2026-10-25
10
+
11
+ A minor without a single changed line of library code, and deliberately so.
12
+ The CBOR codec underneath moves from `^0.10.0` to `^0.11.1`, and under 0.x
13
+ npm treats that as a major step: a range of `^0.10.0` will never admit 0.11.
14
+ The codec is part of this package's public surface — `cbor` and `CborValue`
15
+ are re-exported from it, and the `CborError` it throws on malformed input
16
+ passes through `parse` unchanged — so a patch release would have reached
17
+ every `^0.9.0` installer automatically and could have left one who also
18
+ depends on the codec directly holding two copies of it. Errors thrown by one
19
+ copy are not `instanceof` the other's `CborError`, and that is exactly the
20
+ check a careful caller writes around `parse`. A minor makes that step a
21
+ choice rather than a surprise. There was nothing for a patch to deliver
22
+ instead: no defect in the library was fixed.
23
+
24
+ ### Changed
25
+
26
+ - **The codec is `@vanaheimr/metrological-cbor` 0.11.1.** Its CBOR layer is
27
+ unchanged between 0.10.0 and 0.11.1, so every message, key and structure
28
+ this library writes is byte for byte what 0.9.0 wrote, and every signature
29
+ 0.9.0 made still verifies. The codec's own breaking change in 0.11.0 — JSON
30
+ conversion no longer guesses which strings are readings — concerns an API
31
+ this package does not re-export. **If you depend on the codec directly as
32
+ well, move that dependency to `^0.11.1` alongside this upgrade**, so that
33
+ npm installs one copy and `CborError` stays one class.
34
+ - **The cryptography floor rises**: `@noble/hashes`, `@noble/ciphers` and
35
+ `@noble/curves` to 2.4.0, `@noble/post-quantum` to 0.7.1. Fresh installs
36
+ of 0.9.0 already resolved these through their caret ranges; the new floor
37
+ says what this release was tested against.
38
+
39
+ ### Development
40
+
41
+ None of this reaches an installer: the published package has the same
42
+ files, the same build shape and no new runtime dependency.
43
+
44
+ - **The browser-bundle test runs in one realm.** It used to hand its `vm`
45
+ sandbox the host's `Object`, `Uint8Array` and two dozen other intrinsics,
46
+ which shadowed the sandbox's own with foreign twins; `@noble/hashes` 2.4
47
+ checks its option defaults for being plain objects and refused to load
48
+ there. A browser has one realm, and the sandbox now does too — which also
49
+ makes the test a truer stand-in for a browser than it was.
50
+ - **Two advisories in the development toolchain are closed**: `source-map-js`
51
+ to 1.2.2 (GHSA-68fv-2mgg-jv7q, reached through tsup and the coverage
52
+ provider) and `markdown-it` to 14.3.3 (GHSA-vfgh-jcmw-g37q and
53
+ GHSA-gfr2-rv44-r23c, reached through typedoc).
54
+ - **The toolchain moves to current majors**: tsup 9, vitest and its coverage
55
+ provider 5.0.5, with eslint, typescript-eslint, globals and tsx in minors.
56
+ TypeScript stays at 6.0 until typedoc supports 7.
57
+ - **The workflows run on actions that run on Node 24** — checkout, setup-node
58
+ and upload-artifact at v7 — instead of being force-migrated with an
59
+ annotation on every run.
60
+ - `update.sh` scripts the dependency sweep, and `*.tgz` is ignored, since the
61
+ release rehearsal in `docs/releasing.md` leaves one behind every time.
62
+
63
+ ## [0.9.0] — 2026-08-22
10
64
 
11
65
  **The first version published to npm**, on 2026-08-22 — by hand, with
12
66
  multi-factor authentication and a maintainer at the keyboard, as every release
package/README.md CHANGED
@@ -532,6 +532,26 @@ What this is for is the integrity of measurement data along the rest of the
532
532
  chain, and for the conversation about what a digital, signed SI quantity should
533
533
  look like.
534
534
 
535
+
536
+ ## Publishing
537
+
538
+ ```
539
+ npm version 0.10.0 --no-git-tag-version
540
+ git commit -a
541
+ git tag -s v0.10.0 -m "v0.10.0"
542
+ git push origin master v0.10.0
543
+ git push git1 master v0.10.0
544
+ git push git2 master v0.10.0
545
+
546
+ npm run verify
547
+ npm pack --dry-run
548
+ npm pack
549
+ npm login
550
+ npm whoami
551
+ npm publish
552
+ ```
553
+
554
+
535
555
  ## License
536
556
 
537
557
  [Apache License 2.0](LICENSE.md), matching both reference implementations.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vanaheimr/cose",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "description": "CBOR Object Signing and Encryption (RFC 9052) in TypeScript, on top of the Metrological CBOR codec — the TypeScript counterpart of Vanaheimr Styx's Illias/COSE.",
5
5
  "keywords": [
6
6
  "cose",
@@ -73,25 +73,25 @@
73
73
  "prepublishOnly": "npm run verify"
74
74
  },
75
75
  "dependencies": {
76
- "@noble/ciphers": "^2.3.0",
77
- "@noble/curves": "^2.3.0",
78
- "@noble/hashes": "^2.3.0",
79
- "@noble/post-quantum": "^0.7.0",
80
- "@vanaheimr/metrological-cbor": "^0.10.0"
76
+ "@noble/ciphers": "^2.4.0",
77
+ "@noble/curves": "^2.4.0",
78
+ "@noble/hashes": "^2.4.0",
79
+ "@noble/post-quantum": "^0.7.1",
80
+ "@vanaheimr/metrological-cbor": "^0.11.1"
81
81
  },
82
82
  "devDependencies": {
83
83
  "@eslint/js": "^10.0.1",
84
- "@types/node": "^26.2.0",
85
- "@vitest/coverage-v8": "^4.1.11",
84
+ "@types/node": "^26.6.5",
85
+ "@vitest/coverage-v8": "^5.0.5",
86
86
  "esbuild": "^0.28.2",
87
- "eslint": "^10.9.0",
88
- "fast-check": "^4.9.0",
89
- "globals": "^17.11.0",
90
- "tsup": "^8.5.1",
91
- "tsx": "^4.23.12",
87
+ "eslint": "^10.13.0",
88
+ "fast-check": "^4.10.2",
89
+ "globals": "^17.13.0",
90
+ "tsup": "^9.0.0",
91
+ "tsx": "^4.23.15",
92
92
  "typedoc": "^0.28.20",
93
93
  "typescript": "^6.0.3",
94
- "typescript-eslint": "^8.67.0",
95
- "vitest": "^4.1.10"
94
+ "typescript-eslint": "^8.72.0",
95
+ "vitest": "^5.0.5"
96
96
  }
97
97
  }