@cardenelabs/dragon 0.28.0 → 0.30.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 +78 -5
- package/dist/index.cjs +9246 -8698
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +186 -66
- package/dist/index.d.ts +186 -66
- package/dist/index.js +9247 -8700
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/compile/actor-ids.ts +306 -0
- package/src/compile/actors.ts +74 -0
- package/src/compile/c4.ts +77 -0
- package/src/compile/chain.ts +54 -0
- package/src/compile/chart-fields.ts +178 -0
- package/src/compile/class.ts +100 -0
- package/src/compile/deep-rewrite.ts +30 -0
- package/src/compile/derived-source.ts +18 -0
- package/src/compile/direction.ts +63 -0
- package/src/compile/er-relation.ts +200 -0
- package/src/compile/er.ts +44 -0
- package/src/compile/flow.ts +54 -0
- package/src/compile/funnel.ts +75 -0
- package/src/compile/gantt.ts +232 -0
- package/src/compile/generic.ts +284 -0
- package/src/compile/hierarchy.ts +92 -0
- package/src/compile/journey.ts +84 -0
- package/src/compile/kinds.ts +156 -0
- package/src/compile/lanes.ts +56 -0
- package/src/compile/mind.ts +343 -0
- package/src/compile/node-title.ts +24 -0
- package/src/compile/notice.ts +94 -0
- package/src/compile/parts-lookup.ts +17 -0
- package/src/compile/parts.ts +2635 -0
- package/src/compile/placement-apply.ts +673 -0
- package/src/compile/placement.ts +15 -0
- package/src/compile/quadrant.ts +110 -0
- package/src/compile/rows.ts +40 -0
- package/src/compile/sequence.ts +226 -0
- package/src/compile/slug.ts +29 -0
- package/src/compile/solidity.ts +39 -0
- package/src/compile/state.ts +71 -0
- package/src/compile/subtitle.ts +22 -0
- package/src/compile/swimlane.ts +83 -0
- package/src/compile/topology.ts +50 -0
- package/src/compile/tree.ts +60 -0
- package/src/compile/value-chart.ts +183 -0
- package/src/compile/values.ts +432 -0
- package/src/compile/word-state.ts +82 -0
- package/src/compile.ts +513 -6858
- package/src/index.ts +8 -7
- package/src/json-line-map.ts +30 -0
- package/src/json-parser.ts +356 -123
- package/src/near-name.ts +42 -0
- package/src/relative-pos.ts +71 -2
- package/src/schema.ts +1 -1
- package/src/schemas/diagram.json +38 -4
- package/src/types.ts +1 -1
- package/src/v05/parser.ts +91 -72
package/src/index.ts
CHANGED
|
@@ -107,6 +107,10 @@ export type { InputSize } from "./input-size";
|
|
|
107
107
|
|
|
108
108
|
// LLM 向け JSON DSL (Issue #208)
|
|
109
109
|
export { jsonToDiagram, validateDragonJson } from "./json-parser";
|
|
110
|
+
// JSON / YAML の本文で書いた場所を指す鍵 (#2117)。 表を作る側 (画面の YAML 欄) と引く側
|
|
111
|
+
// (`json-parser.ts`) が同じ規則を使うために公開する
|
|
112
|
+
export { 書いた場所の鍵 } from "./json-line-map";
|
|
113
|
+
export type { 書いた行の表 } from "./json-line-map";
|
|
110
114
|
export { diagramJsonSchema } from "./schema";
|
|
111
115
|
export type {
|
|
112
116
|
DragonJson,
|
|
@@ -211,14 +215,11 @@ export function textDslToDiagram(src: string, opts?: CompileOpts): CdlDiagram {
|
|
|
211
215
|
}
|
|
212
216
|
|
|
213
217
|
function isV05Source(src: string): boolean {
|
|
214
|
-
//
|
|
218
|
+
// 既定は v0.5 で、v0.4 の目印を 1 つでも見つけた時だけ v0.4 として読む (CAR-1657)。
|
|
219
|
+
// v0.4 は 2026-12-31 に廃止予定なので、新しく書かれた本文は v0.5 として扱うのが当たりやすい。
|
|
215
220
|
//
|
|
216
|
-
//
|
|
217
|
-
// v0.4
|
|
218
|
-
//
|
|
219
|
-
// codex 指摘 = v0.4 も英語 alias `animate:` / `animation:` を受理するため、 header 名だけでは
|
|
220
|
-
// 判定不足。 v0.4-specific syntax (`step "..." Xs` = colon なし step / `^\d+\.\s+` = 番号 flow) を
|
|
221
|
-
// negative marker に追加。
|
|
221
|
+
// 目印に見出しの名前だけを使うと足りない = v0.4 も英語の別名 (`animate:` / `animation:`) を受けるため。
|
|
222
|
+
// v0.4 にしかない書き方 (`step "..." Xs` = コロンの無い段、`^\d+\.\s+` = 番号付きの流れ) も目印に足す。
|
|
222
223
|
const V04_KEYWORDS = [
|
|
223
224
|
// Japanese v0.4 専用 keyword (v0.5 は英語のみ)。
|
|
224
225
|
//
|
|
@@ -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
|
+
}
|