@cardenelabs/dragon 0.28.0 → 0.32.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/README.md +391 -16
- package/dist/index.cjs +13479 -7403
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2360 -208
- package/dist/index.d.ts +2360 -208
- package/dist/index.js +13462 -7405
- package/dist/index.js.map +1 -1
- package/package.json +12 -13
- package/src/compile/actor-ids.ts +297 -0
- package/src/compile/actor-option-notice.ts +379 -0
- package/src/compile/actors.ts +103 -0
- package/src/compile/c4.ts +74 -0
- package/src/compile/chain.ts +93 -0
- package/src/compile/chart-fields.ts +193 -0
- package/src/compile/deep-rewrite.ts +30 -0
- package/src/compile/derived-source.ts +18 -0
- package/src/compile/direction.ts +102 -0
- package/src/compile/edge-option-notice.ts +112 -0
- package/src/compile/er-relation.ts +200 -0
- package/src/compile/flow.ts +54 -0
- package/src/compile/flowchart.ts +344 -0
- package/src/compile/funnel.ts +87 -0
- package/src/compile/gantt.ts +337 -0
- package/src/compile/generic.ts +696 -0
- package/src/compile/hierarchy.ts +92 -0
- package/src/compile/journey.ts +93 -0
- package/src/compile/kinds.ts +148 -0
- package/src/compile/lanes.ts +138 -0
- package/src/compile/metro.ts +271 -0
- package/src/compile/mind.ts +393 -0
- package/src/compile/node-title.ts +24 -0
- package/src/compile/notice.ts +141 -0
- package/src/compile/order.ts +62 -0
- package/src/compile/parts-lookup.ts +17 -0
- package/src/compile/parts.ts +2709 -0
- package/src/compile/placement-apply.ts +689 -0
- package/src/compile/placement.ts +15 -0
- package/src/compile/quadrant.ts +265 -0
- package/src/compile/record.ts +75 -0
- package/src/compile/row-marks.ts +128 -0
- package/src/compile/rows.ts +40 -0
- package/src/compile/sequence.ts +305 -0
- package/src/compile/slug.ts +37 -0
- package/src/compile/stages.ts +247 -0
- package/src/compile/subtitle.ts +35 -0
- package/src/compile/swimlane-marks.ts +87 -0
- package/src/compile/swimlane.ts +82 -0
- package/src/compile/timeline.ts +213 -0
- package/src/compile/topology.ts +44 -0
- package/src/compile/tree.ts +69 -0
- package/src/compile/value-chart.ts +337 -0
- package/src/compile/values.ts +432 -0
- package/src/compile/word-state.ts +82 -0
- package/src/compile.ts +1806 -6971
- package/src/focus.ts +2 -2
- package/src/index.ts +42 -9
- package/src/json-line-map.ts +30 -0
- package/src/json-parser.ts +1760 -168
- package/src/keywords.ts +251 -17
- package/src/near-name.ts +42 -0
- package/src/notation-lint.ts +41 -64
- package/src/relative-pos.ts +71 -2
- package/src/schema.ts +1 -1
- package/src/schemas/diagram.json +680 -23
- package/src/types.ts +337 -36
- package/src/v05/parser.ts +2553 -354
package/src/focus.ts
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* 書き方は 2 通り。 箱の名前 1 つか、 矢印 (`A -> B`) で 2 者を指す形。
|
|
5
5
|
*
|
|
6
6
|
* 読み方をここに 1 つだけ置く。 id の形は図種で違う (順序図は縦列の上端 / 下端 / 手順箱、
|
|
7
|
-
*
|
|
7
|
+
* フローは箱 1 個) ため id への解決は図種ごとに残すが、 「どちらの書き方か」 の判断を
|
|
8
8
|
* 図種ごとに持つと、 同じ記述が図種によって別の意味になる。
|
|
9
9
|
*
|
|
10
10
|
* 以前は図種ごとに判定していて、 順序図と汎用の 2 経路が `-` 1 文字を矢印と見なしていた。
|
|
11
11
|
* その結果 `api-gateway` のような名前が「api から gateway への矢印」 と読まれ、 順序図では
|
|
12
|
-
* 光らず、
|
|
12
|
+
* 光らず、 フローでは名前に部分一致した別の矢印が光っていた (実測)。
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
/** 光らせる相手の指定。 */
|
package/src/index.ts
CHANGED
|
@@ -24,8 +24,37 @@ export type { CompileNotice } from "./compile";
|
|
|
24
24
|
export type { CdlDiagram } from "@cardenelabs/cdl";
|
|
25
25
|
export { parseTextDslV05 } from "./v05";
|
|
26
26
|
// 記法一覧が「実際に受け付ける値」 を実装から引くための公開。 手書きすると説明と実装がずれる。
|
|
27
|
-
export {
|
|
28
|
-
|
|
27
|
+
export {
|
|
28
|
+
DRAW_TARGETS,
|
|
29
|
+
DRAW_WORDS,
|
|
30
|
+
PHASE_ITEM_WORDS,
|
|
31
|
+
PRESET_TYPES,
|
|
32
|
+
TOP_LEVEL_KEYS,
|
|
33
|
+
TYPE_ALIASES,
|
|
34
|
+
} from "./v05/parser";
|
|
35
|
+
// 行頭の印の語 (#2782)。 見本がどの語を使っているかを数える検査が、一覧を実装から引く
|
|
36
|
+
export { 行頭の語 } from "./compile/row-marks";
|
|
37
|
+
export {
|
|
38
|
+
TONE_ALIAS,
|
|
39
|
+
NODE_KIND_ALIAS,
|
|
40
|
+
DIRECTION_ALIAS,
|
|
41
|
+
ORDERS,
|
|
42
|
+
ORDER_ALIAS,
|
|
43
|
+
SHAPES,
|
|
44
|
+
SWIMLANE_SHAPES,
|
|
45
|
+
DIAGRAM_SHAPES,
|
|
46
|
+
ALL_DIAGRAM_SHAPES,
|
|
47
|
+
THEMES,
|
|
48
|
+
THEME_ALIAS,
|
|
49
|
+
resolveTheme,
|
|
50
|
+
LEGEND_MARK_ALIAS,
|
|
51
|
+
resolveLegendMark,
|
|
52
|
+
意匠の字の測り方,
|
|
53
|
+
意匠の円の区画の間,
|
|
54
|
+
棒を描く節か,
|
|
55
|
+
意匠の棒の角,
|
|
56
|
+
} from "./keywords";
|
|
57
|
+
export type { DslTheme, DslShape, DslSwimlaneShape, DslDiagramShape } from "./keywords";
|
|
29
58
|
export { lintDiagram, autoFix } from "./notation-lint";
|
|
30
59
|
export type { LintIssue, LintReport, LintSeverity } from "./notation-lint";
|
|
31
60
|
// canvas pivot 新 spec 図境界計算 helper (§diagram-boundary SSOT)
|
|
@@ -49,6 +78,9 @@ export { measureActorBoxes } from "./compile";
|
|
|
49
78
|
// 本文に書いた部品の状態の上書きと色番号を、部品の図へ当てる。 編集画面が重ねて描く部品にも
|
|
50
79
|
// 組み立て側と同じ値を使う (#1973)
|
|
51
80
|
export { 部品に上書きを当てる } from "./compile";
|
|
81
|
+
// 測るためだけの配置が受け取った、描かれない図についての知らせの数 (#2312)。 読み込み時の
|
|
82
|
+
// 知らせを 0 行で固定する検査が、母数として読む (0 件なら測る経路を通っていない)
|
|
83
|
+
export { 測るために受け取った知らせの数 } from "./compile";
|
|
52
84
|
// パーツの見た目の大きさと、 位置を書かなかった時の格子。 画面側と組み立て側で同じ規則を使う。
|
|
53
85
|
// 記法が受理する種類の全体。 画面側が「本文が見本を使っているか」 を判定するのに使う (#1022)。
|
|
54
86
|
export { NODE_KIND_VALID } from "./v05/parser";
|
|
@@ -107,6 +139,10 @@ export type { InputSize } from "./input-size";
|
|
|
107
139
|
|
|
108
140
|
// LLM 向け JSON DSL (Issue #208)
|
|
109
141
|
export { jsonToDiagram, validateDragonJson } from "./json-parser";
|
|
142
|
+
// JSON / YAML の本文で書いた場所を指す鍵 (#2117)。 表を作る側 (画面の YAML 欄) と引く側
|
|
143
|
+
// (`json-parser.ts`) が同じ規則を使うために公開する
|
|
144
|
+
export { 書いた場所の鍵 } from "./json-line-map";
|
|
145
|
+
export type { 書いた行の表 } from "./json-line-map";
|
|
110
146
|
export { diagramJsonSchema } from "./schema";
|
|
111
147
|
export type {
|
|
112
148
|
DragonJson,
|
|
@@ -211,14 +247,11 @@ export function textDslToDiagram(src: string, opts?: CompileOpts): CdlDiagram {
|
|
|
211
247
|
}
|
|
212
248
|
|
|
213
249
|
function isV05Source(src: string): boolean {
|
|
214
|
-
//
|
|
215
|
-
//
|
|
216
|
-
// v0.4 は 2026-12-31 廃止予定、 新規 source は v0.5 前提で default を v0.5 に倒す。
|
|
217
|
-
// v0.4 marker (Japanese header + v0.4-specific English syntax) を 1 個でも検出したら v0.4 route。
|
|
250
|
+
// 既定は v0.5 で、v0.4 の目印を 1 つでも見つけた時だけ v0.4 として読む (CAR-1657)。
|
|
251
|
+
// v0.4 は 2026-12-31 に廃止予定なので、新しく書かれた本文は v0.5 として扱うのが当たりやすい。
|
|
218
252
|
//
|
|
219
|
-
//
|
|
220
|
-
//
|
|
221
|
-
// negative marker に追加。
|
|
253
|
+
// 目印に見出しの名前だけを使うと足りない = v0.4 も英語の別名 (`animate:` / `animation:`) を受けるため。
|
|
254
|
+
// v0.4 にしかない書き方 (`step "..." Xs` = コロンの無い段、`^\d+\.\s+` = 番号付きの流れ) も目印に足す。
|
|
222
255
|
const V04_KEYWORDS = [
|
|
223
256
|
// Japanese v0.4 専用 keyword (v0.5 は英語のみ)。
|
|
224
257
|
//
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON / YAML の本文で「どこに書いたか」 を指す鍵と、そこから行番号を引く表 (#2117)。
|
|
3
|
+
*
|
|
4
|
+
* JSON を読む経路は行番号を持たないため、組み立ての知らせは全て 0 行になり、画面は
|
|
5
|
+
* 「どの行の話か」 を出せなかった。 本文の行が分かる入口 (編集画面の YAML 欄) は、本文を
|
|
6
|
+
* 読む時に場所ごとの行を集めてこの表で渡す。 表を渡さない呼出 (LLM が作った JSON を直に
|
|
7
|
+
* 渡す経路) は今までどおり 0 行になる。
|
|
8
|
+
*
|
|
9
|
+
* 鍵の形は RFC 6901 (JSON Pointer) と同じにする (`/actors/1` / `/values/sales`)。
|
|
10
|
+
* 名前をそのまま `.` で繋ぐ形にすると、`values` に `a.b` という名前を書いた場所と、
|
|
11
|
+
* `values.a` の中の `b` という欄が同じ鍵になる。 `/` と `~` を書き換える規則があるため、
|
|
12
|
+
* この形では重ならない。
|
|
13
|
+
*
|
|
14
|
+
* 表を作る側 (`apps/playground-spa/src/lib/yaml-lines.ts`) と引く側 (`json-parser.ts`) は
|
|
15
|
+
* 同じ関数を呼ぶ。 別々に持つと、片方だけ直した時に **全ての行が引けなくなる** =
|
|
16
|
+
* 引けない状態は知らせが 0 行に戻るだけで、図も誤りも変わらないため気付けない。
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/** 本文の場所 (JSON Pointer) から、元の本文の行番号 (1 始まり) を引く表。 */
|
|
20
|
+
export type 書いた行の表 = ReadonlyMap<string, number>;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* 場所を指す鍵を作る。 引数は上から順に、欄の名前と並びの番号。
|
|
24
|
+
*
|
|
25
|
+
* 文書そのものは引数なしで空文字になる。 1 つずつ足す時は、親の鍵に
|
|
26
|
+
* `書いた場所の鍵(次の区切り)` を繋げる (同じ結果になる)。
|
|
27
|
+
*/
|
|
28
|
+
export function 書いた場所の鍵(...道: readonly (string | number)[]): string {
|
|
29
|
+
return 道.map((区切り) => `/${String(区切り).replace(/~/g, "~0").replace(/\//g, "~1")}`).join("");
|
|
30
|
+
}
|