@cardenelabs/cdl 0.27.0 → 0.28.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,67 @@ CDL (Chainome Diagram Language) の主要変更履歴。
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.28.0] - 2026-09-04
9
+
10
+ ### Changed
11
+
12
+ - **クラス図の関係の色みを種類から決めるようにした** (#641)
13
+
14
+ 6 種の関係が全て同じ色 (`info`) で引かれていた。 見分けを担うのは 線 (実線 / 破線) と
15
+ 印の形 (三角 / 菱 / 開いた矢) と 印が付く側 の 3 軸だけで、6 種を 1 枚に並べると
16
+ 印の形まで見ないとどれがどれか判らない。
17
+
18
+ 種類から色みを決める対応表 (`CLASS_RELATION_TONE`) を足し、6 種を 3 群に寄せた。
19
+
20
+ | 群 | 種類 | 色み | 群の中の見分け |
21
+ |---|---|---|---|
22
+ | 縦の関係 | `extends` / `implements` | `accent` | 線 (実線 / 破線) |
23
+ | 所有 | `aggregates` / `composes` | `teal` | 印の塗り (白抜き / 塗る) |
24
+ | 向きだけ | `associates` / `uses` | `success` | 線 (実線 / 破線) |
25
+
26
+ **群の中は色を分けない**。 群の中の 2 種は既に線か印の塗りで分かれているので、
27
+ 色まで足すと同じことを 2 回言うことになる。 色が担うのは群の見分けだけ。
28
+
29
+ 優先順位は 関係に書いた色み > 図に書いた `defaultTone` > 種類から決まる既定 の 3 段。
30
+ `defaultTone` を書いた図は「全部同じ色みにする」 と宣言しているので、そちらが勝つ =
31
+ 既存の図の見た目は変わらない。
32
+
33
+ **色の値は持たない**。 名前だけを図に載せ、実際の色は消費側が `data-cdl-tone` を見て当てる。
34
+
35
+ ### Fixed
36
+
37
+ - **比較 link が 404 になっていた 6 版に tag を打った** (#639)
38
+
39
+ 変更履歴は 31 版ぶんの比較 link を持つが、tag があるのは 25 版だった。
40
+ `0.17.0` / `0.17.1` / `0.18.0` / `0.18.1` / `0.24.0` / `0.25.0` の 6 本が飛び先を持たず、
41
+ 押すと 404 になる。 この file は npm の配布物に入るので、`node_modules` から読んだ
42
+ 利用者にも 404 が届いていた。
43
+
44
+ 6 本とも、その版の値を持つ commit に打った。
45
+ 最上位の tag は `v0.27.0` のままなので、版の範囲を導く検査の判定は変わらない。
46
+
47
+ **`0.27.0` の記述に書いた tag の数も直した**。 「`v0.9.0` までしか tag が無い」 と
48
+ 書いていたが、実測では `v0.23.0` まであった。 `git tag --list` の並びを版順と読み違えた
49
+ もので、`--sort=-v:refname` で確かめると最上位は `v0.23.0` になる。
50
+ tag を打つ判断そのものは変わらない = `v0.23.0` を起点にしても 4 版ぶんが範囲に入る。
51
+
52
+ ### Added
53
+
54
+ - **版に入る commit が変更履歴から辿れることを検査する** (#637)
55
+
56
+ `0.27.0` を切る時に doc だけの PR (#633) の entry を書き忘れたが、既存の検査は 1 つも
57
+ 落ちなかった。 `release-packaging.test.ts` は公開物に変更履歴が入るかと比較 link の形しか
58
+ 見ないため、commit の記載漏れは素通りする。
59
+
60
+ 前の版から HEAD までの各 commit について、その commit が持つ番号のどれかが変更履歴に
61
+ 載っているか「利用者から見えない」 と宣言されていることを見る検査を足した。
62
+ 消費側 (dragon) の同名の検査を移したもので、あちらでは tag の打ち忘れと宣言の残骸を
63
+ 実際に捕まえている。
64
+
65
+ **併せて `v0.26.0` と `v0.27.0` の tag を打った**。 検査は版の範囲を tag から導くので、
66
+ 無いと起点が `v0.23.0` まで下がり、`0.24.0` から `0.27.0` の 4 版ぶんが範囲に入って使えない。
67
+ 間の版の tag は打っていない = 範囲の判定に効くのはいちばん新しい tag だけ。
68
+
8
69
  ## [0.27.0] - 2026-09-04
9
70
 
10
71
  ### Changed
@@ -1350,7 +1411,8 @@ Initial OSS release.
1350
1411
  使わない = annotated tag を push しても GitHub Release は作られず、 Release を作っていない版で
1351
1412
  行き止まりになる。
1352
1413
 
1353
- [Unreleased]: https://github.com/cardene777/cdl/compare/v0.27.0...HEAD
1414
+ [Unreleased]: https://github.com/cardene777/cdl/compare/v0.28.0...HEAD
1415
+ [0.28.0]: https://github.com/cardene777/cdl/compare/v0.27.0...v0.28.0
1354
1416
  [0.27.0]: https://github.com/cardene777/cdl/compare/v0.26.0...v0.27.0
1355
1417
  [0.26.0]: https://github.com/cardene777/cdl/compare/v0.25.0...v0.26.0
1356
1418
  [0.25.0]: https://github.com/cardene777/cdl/compare/v0.24.0...v0.25.0
package/dist/index.cjs CHANGED
@@ -30832,6 +30832,14 @@ var CLASS_RELATION_LOOK = {
30832
30832
  associates: { head: "open", fill: "solid", tailHead: "none", tailFill: "solid", style: "solid" },
30833
30833
  uses: { head: "open", fill: "solid", tailHead: "none", tailFill: "solid", style: "dashed" }
30834
30834
  };
30835
+ var CLASS_RELATION_TONE = {
30836
+ extends: "accent",
30837
+ implements: "accent",
30838
+ aggregates: "teal",
30839
+ composes: "teal",
30840
+ associates: "success",
30841
+ uses: "success"
30842
+ };
30835
30843
  Object.fromEntries(
30836
30844
  Object.entries(CLASS_RELATION_LOOK).map(([k, v]) => [k, v.head])
30837
30845
  );
@@ -30844,7 +30852,7 @@ function stripAccess(row) {
30844
30852
  }
30845
30853
  function classDiagram(preset) {
30846
30854
  const classW = resolveStorageBoxW(preset.classWidth, "classDiagram", "classWidth");
30847
- const tone = preset.defaultTone ?? "info";
30855
+ const \u56F3\u306E\u65E2\u5B9A = preset.defaultTone;
30848
30856
  const \u7E1E\u3092\u6577\u304F = preset.rowStripe ?? true;
30849
30857
  const b = diagram(preset.id, { topic: preset.topic, palette: preset.palette });
30850
30858
  const classes = [];
@@ -30908,7 +30916,7 @@ function classDiagram(preset) {
30908
30916
  id: edgeId,
30909
30917
  label: r.label ?? r.type,
30910
30918
  ...r.cardinality ? { sub: r.cardinality } : {},
30911
- tone: r.tone ?? tone,
30919
+ tone: r.tone ?? \u56F3\u306E\u65E2\u5B9A ?? CLASS_RELATION_TONE[r.type],
30912
30920
  // 関係の種類から線と端の形を決める (cdl#574 / #578)。 書いた値が勝つ
30913
30921
  style: r.style ?? \u898B\u305F\u76EE.style,
30914
30922
  head: r.head ?? \u898B\u305F\u76EE.head,