@meltemi/diagrams-model 0.0.0-stage → 1.9.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/LICENSE +21 -0
- package/README.md +48 -2
- package/dist/c4.d.ts +44 -0
- package/dist/c4.d.ts.map +1 -0
- package/dist/c4.js +803 -0
- package/dist/c4.js.map +1 -0
- package/dist/compile.d.ts +20 -0
- package/dist/compile.d.ts.map +1 -0
- package/dist/compile.js +525 -0
- package/dist/compile.js.map +1 -0
- package/dist/diagram-types.d.ts +67 -0
- package/dist/diagram-types.d.ts.map +1 -0
- package/dist/diagram-types.js +282 -0
- package/dist/diagram-types.js.map +1 -0
- package/dist/diff.d.ts +91 -0
- package/dist/diff.d.ts.map +1 -0
- package/dist/diff.js +575 -0
- package/dist/diff.js.map +1 -0
- package/dist/export.d.ts +22 -0
- package/dist/export.d.ts.map +1 -0
- package/dist/export.js +243 -0
- package/dist/export.js.map +1 -0
- package/dist/flow.d.ts +247 -0
- package/dist/flow.d.ts.map +1 -0
- package/dist/flow.js +1693 -0
- package/dist/flow.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/json.d.ts +400 -0
- package/dist/json.d.ts.map +1 -0
- package/dist/json.js +433 -0
- package/dist/json.js.map +1 -0
- package/dist/messages/changes.d.ts +64 -0
- package/dist/messages/changes.d.ts.map +1 -0
- package/dist/messages/changes.js +117 -0
- package/dist/messages/changes.js.map +1 -0
- package/dist/messages/en.d.ts +554 -0
- package/dist/messages/en.d.ts.map +1 -0
- package/dist/messages/en.js +566 -0
- package/dist/messages/en.js.map +1 -0
- package/dist/messages/es.d.ts +3 -0
- package/dist/messages/es.d.ts.map +1 -0
- package/dist/messages/es.js +551 -0
- package/dist/messages/es.js.map +1 -0
- package/dist/messages/index.d.ts +449 -0
- package/dist/messages/index.d.ts.map +1 -0
- package/dist/messages/index.js +11 -0
- package/dist/messages/index.js.map +1 -0
- package/dist/model.d.ts +11 -0
- package/dist/model.d.ts.map +1 -0
- package/dist/model.js +363 -0
- package/dist/model.js.map +1 -0
- package/dist/scenario.d.ts +11 -0
- package/dist/scenario.d.ts.map +1 -0
- package/dist/scenario.js +91 -0
- package/dist/scenario.js.map +1 -0
- package/dist/schema.d.ts +311 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +658 -0
- package/dist/schema.js.map +1 -0
- package/dist/sequence.d.ts +8 -0
- package/dist/sequence.d.ts.map +1 -0
- package/dist/sequence.js +722 -0
- package/dist/sequence.js.map +1 -0
- package/dist/story.d.ts +18 -0
- package/dist/story.d.ts.map +1 -0
- package/dist/story.js +406 -0
- package/dist/story.js.map +1 -0
- package/dist/style-values.d.ts +107 -0
- package/dist/style-values.d.ts.map +1 -0
- package/dist/style-values.js +558 -0
- package/dist/style-values.js.map +1 -0
- package/dist/theme-block.d.ts +10 -0
- package/dist/theme-block.d.ts.map +1 -0
- package/dist/theme-block.js +135 -0
- package/dist/theme-block.js.map +1 -0
- package/dist/types.d.ts +785 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +36 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { Direction, LayoutMode, StyleProperties } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* The version of the intermediate model that plugins declare compatibility with: the compiled
|
|
4
|
+
* document, its JSON and the definitions of diagram types.
|
|
5
|
+
*/
|
|
6
|
+
export declare const MODEL_API_VERSION = "1.0.0";
|
|
7
|
+
/** A property of a kind or of relations: what values it takes. */
|
|
8
|
+
export interface PropertyDefinition {
|
|
9
|
+
readonly kind: "string" | "number" | "boolean" | "enum";
|
|
10
|
+
/** `enum`: the words it accepts. */
|
|
11
|
+
readonly values: readonly string[];
|
|
12
|
+
readonly description: string | null;
|
|
13
|
+
}
|
|
14
|
+
/** An element kind of a declared type, drawn as a box with its own shape and style. */
|
|
15
|
+
export interface KindDefinition {
|
|
16
|
+
readonly label: string;
|
|
17
|
+
readonly description: string | null;
|
|
18
|
+
/** Shape, colours (tokens such as `@accent` or CSS colours), line, icon, text. */
|
|
19
|
+
readonly style: StyleProperties;
|
|
20
|
+
readonly properties: Readonly<Record<string, PropertyDefinition>>;
|
|
21
|
+
/** Properties every element of the kind must set. */
|
|
22
|
+
readonly required: readonly string[];
|
|
23
|
+
}
|
|
24
|
+
export type LayoutAlgorithm = "layered" | "tree";
|
|
25
|
+
export declare const LAYOUT_ALGORITHMS: readonly LayoutAlgorithm[];
|
|
26
|
+
/** A declared diagram type, as a plugin defines it. */
|
|
27
|
+
export interface DiagramTypeDefinition {
|
|
28
|
+
/** The word after `diagram <id>:`, such as `erd`. */
|
|
29
|
+
readonly type: string;
|
|
30
|
+
readonly title: string;
|
|
31
|
+
readonly description: string | null;
|
|
32
|
+
/** Where it comes from; null for types an embedding application registers itself. */
|
|
33
|
+
readonly plugin: {
|
|
34
|
+
readonly name: string;
|
|
35
|
+
readonly version: string;
|
|
36
|
+
} | null;
|
|
37
|
+
readonly layout: {
|
|
38
|
+
readonly mode: LayoutMode;
|
|
39
|
+
readonly algorithm: LayoutAlgorithm;
|
|
40
|
+
readonly direction: Direction;
|
|
41
|
+
};
|
|
42
|
+
readonly elements: Readonly<Record<string, KindDefinition>>;
|
|
43
|
+
readonly relations: {
|
|
44
|
+
/** Pairs of kinds a relation may join, `*` for any; null for any pair. */
|
|
45
|
+
readonly allowed: readonly (readonly [string, string])[] | null;
|
|
46
|
+
readonly properties: Readonly<Record<string, PropertyDefinition>>;
|
|
47
|
+
readonly style: StyleProperties;
|
|
48
|
+
};
|
|
49
|
+
/** The canvas palette: kinds in the order offered. */
|
|
50
|
+
readonly tools: readonly {
|
|
51
|
+
readonly kind: string;
|
|
52
|
+
readonly label: string;
|
|
53
|
+
}[];
|
|
54
|
+
}
|
|
55
|
+
/** Words a declared type or kind may not take: the language's own. */
|
|
56
|
+
export declare const RESERVED_WORDS: ReadonlySet<string>;
|
|
57
|
+
/**
|
|
58
|
+
* Reads and checks a diagram type as a plugin writes it in JSON. Problems say what is wrong, in
|
|
59
|
+
* the interface language; with any, the type is not registered.
|
|
60
|
+
*/
|
|
61
|
+
export declare function readDiagramType(value: unknown, plugin: DiagramTypeDefinition["plugin"]): {
|
|
62
|
+
definition: DiagramTypeDefinition | null;
|
|
63
|
+
problems: string[];
|
|
64
|
+
};
|
|
65
|
+
/** Whether a relation between two kinds is allowed by a type (`null` kinds are built-in ones). */
|
|
66
|
+
export declare function relationAllowed(definition: DiagramTypeDefinition, from: string | null, to: string | null): boolean;
|
|
67
|
+
//# sourceMappingURL=diagram-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagram-types.d.ts","sourceRoot":"","sources":["../src/diagram-types.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,iBAAiB,UAAU,CAAC;AAEzC,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IACxD,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,uFAAuF;AACvF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAClE,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC;AACjD,eAAO,MAAM,iBAAiB,EAAE,SAAS,eAAe,EAAwB,CAAC;AAEjF,uDAAuD;AACvD,MAAM,WAAW,qBAAqB;IACpC,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5E,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QAC1B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;QACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;KAC/B,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,SAAS,EAAE;QAClB,0EAA0E;QAC1E,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;QAChE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAClE,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;KACjC,CAAC;IACF,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC9E;AAED,sEAAsE;AACtE,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAyB7C,CAAC;AAiJH;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GACtC;IAAE,UAAU,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CA8FlE;AAED,kGAAkG;AAClG,wBAAgB,eAAe,CAC7B,UAAU,EAAE,qBAAqB,EACjC,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,EAAE,EAAE,MAAM,GAAG,IAAI,GAChB,OAAO,CAIT"}
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
// Diagram types beyond the four built in: declared as data by plugins (decision 0030). A type
|
|
2
|
+
// registers its schema (kinds and properties), validation (required properties and allowed
|
|
3
|
+
// relations), layout (mode, algorithm, direction), editing tools (the canvas palette) and its
|
|
4
|
+
// conversion to primitives (the shape and style of every kind). Nothing in it is code.
|
|
5
|
+
import { messages } from "./messages/index.js";
|
|
6
|
+
import { ARROWHEADS, BOX_SHAPES, CORNERS, DIAGRAM_TYPES, DIRECTIONS, FONT_WEIGHTS, ICON_POSITIONS, ICON_SIZE_RANGE, LABEL_POSITIONS, LAYOUT_MODES, LINE_STYLES, PATTERNS, ROUTINGS, STYLE_PROPERTIES, THEME_COLOR_TOKENS, TEXT_ALIGNS, } from "./schema.js";
|
|
7
|
+
/**
|
|
8
|
+
* The version of the intermediate model that plugins declare compatibility with: the compiled
|
|
9
|
+
* document, its JSON and the definitions of diagram types.
|
|
10
|
+
*/
|
|
11
|
+
export const MODEL_API_VERSION = "1.0.0";
|
|
12
|
+
export const LAYOUT_ALGORITHMS = ["layered", "tree"];
|
|
13
|
+
/** Words a declared type or kind may not take: the language's own. */
|
|
14
|
+
export const RESERVED_WORDS = new Set([
|
|
15
|
+
...DIAGRAM_TYPES,
|
|
16
|
+
"model",
|
|
17
|
+
"story",
|
|
18
|
+
"theme",
|
|
19
|
+
"export",
|
|
20
|
+
"import",
|
|
21
|
+
"language",
|
|
22
|
+
"diagram",
|
|
23
|
+
"using",
|
|
24
|
+
"placement",
|
|
25
|
+
"style",
|
|
26
|
+
"animate",
|
|
27
|
+
"class",
|
|
28
|
+
"rule",
|
|
29
|
+
"layers",
|
|
30
|
+
"scenario",
|
|
31
|
+
"relation",
|
|
32
|
+
"text",
|
|
33
|
+
"icon",
|
|
34
|
+
"image",
|
|
35
|
+
"group",
|
|
36
|
+
"box",
|
|
37
|
+
"note",
|
|
38
|
+
"tag",
|
|
39
|
+
]);
|
|
40
|
+
const IDENT = /^[a-z][a-z0-9_]*$/;
|
|
41
|
+
const COLOR_TOKENS = new Set(THEME_COLOR_TOKENS);
|
|
42
|
+
const isObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
43
|
+
/**
|
|
44
|
+
* Checks a style object of a definition; colours are tokens (`@accent`) or CSS colours. Problems
|
|
45
|
+
* are in the interface language.
|
|
46
|
+
*/
|
|
47
|
+
function readStyle(value, where, problems) {
|
|
48
|
+
if (value === undefined)
|
|
49
|
+
return {};
|
|
50
|
+
const m = messages().problems;
|
|
51
|
+
if (!isObject(value)) {
|
|
52
|
+
problems.push(m.styleObject(where));
|
|
53
|
+
return {};
|
|
54
|
+
}
|
|
55
|
+
const style = {};
|
|
56
|
+
const word = (name, v, words) => {
|
|
57
|
+
if (words.includes(v))
|
|
58
|
+
style[name] = v;
|
|
59
|
+
else
|
|
60
|
+
problems.push(m.styleWords(where, name, words));
|
|
61
|
+
};
|
|
62
|
+
for (const [name, v] of Object.entries(value)) {
|
|
63
|
+
switch (name) {
|
|
64
|
+
case "fill":
|
|
65
|
+
case "stroke":
|
|
66
|
+
case "color":
|
|
67
|
+
case "iconColor":
|
|
68
|
+
if (typeof v === "string" && v.startsWith("@") && COLOR_TOKENS.has(v.slice(1)))
|
|
69
|
+
style[name] = v;
|
|
70
|
+
else if (typeof v === "string" &&
|
|
71
|
+
/^(#[0-9a-f]{3,8}|(rgb|hsl)a?\([\d\s.,%/-]+\)|[a-z]+)$/i.test(v)) {
|
|
72
|
+
style[name] = v;
|
|
73
|
+
}
|
|
74
|
+
else
|
|
75
|
+
problems.push(m.styleColor(where, name));
|
|
76
|
+
break;
|
|
77
|
+
case "shape":
|
|
78
|
+
word(name, v, BOX_SHAPES);
|
|
79
|
+
break;
|
|
80
|
+
case "line":
|
|
81
|
+
word(name, v, LINE_STYLES);
|
|
82
|
+
break;
|
|
83
|
+
case "pattern":
|
|
84
|
+
word(name, v, PATTERNS);
|
|
85
|
+
break;
|
|
86
|
+
case "arrowhead":
|
|
87
|
+
case "arrowtail":
|
|
88
|
+
word(name, v, ARROWHEADS);
|
|
89
|
+
break;
|
|
90
|
+
case "corners":
|
|
91
|
+
word(name, v, CORNERS);
|
|
92
|
+
break;
|
|
93
|
+
case "routing":
|
|
94
|
+
word(name, v, ROUTINGS);
|
|
95
|
+
break;
|
|
96
|
+
case "iconPosition":
|
|
97
|
+
word(name, v, ICON_POSITIONS);
|
|
98
|
+
break;
|
|
99
|
+
case "labelPosition":
|
|
100
|
+
word(name, v, LABEL_POSITIONS);
|
|
101
|
+
break;
|
|
102
|
+
case "iconSize":
|
|
103
|
+
if (v === "auto" ||
|
|
104
|
+
(typeof v === "number" && v >= ICON_SIZE_RANGE.min && v <= ICON_SIZE_RANGE.max)) {
|
|
105
|
+
style[name] = v;
|
|
106
|
+
}
|
|
107
|
+
else
|
|
108
|
+
problems.push(m.styleNumber(where, name));
|
|
109
|
+
break;
|
|
110
|
+
case "textAlign":
|
|
111
|
+
word(name, v, TEXT_ALIGNS);
|
|
112
|
+
break;
|
|
113
|
+
case "fontWeight":
|
|
114
|
+
word(name, v, FONT_WEIGHTS);
|
|
115
|
+
break;
|
|
116
|
+
case "width":
|
|
117
|
+
case "radius":
|
|
118
|
+
case "fontSize": {
|
|
119
|
+
// The ranges of `style` statements.
|
|
120
|
+
const spec = STYLE_PROPERTIES[name];
|
|
121
|
+
if (spec?.kind === "number" && typeof v === "number" && v >= spec.min && v <= spec.max) {
|
|
122
|
+
style[name] = v;
|
|
123
|
+
}
|
|
124
|
+
else
|
|
125
|
+
problems.push(m.styleNumber(where, name));
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
case "icon":
|
|
129
|
+
if (typeof v === "string" && /^[A-Za-z0-9_-]+:[A-Za-z0-9_.-]+$/.test(v))
|
|
130
|
+
style[name] = v;
|
|
131
|
+
else
|
|
132
|
+
problems.push(m.styleIcon(where));
|
|
133
|
+
break;
|
|
134
|
+
default:
|
|
135
|
+
problems.push(m.styleUnknown(where, name));
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return style;
|
|
139
|
+
}
|
|
140
|
+
/** Checks the properties of a kind or of relations; problems are in the interface language. */
|
|
141
|
+
function readProperties(value, where, problems) {
|
|
142
|
+
if (value === undefined)
|
|
143
|
+
return {};
|
|
144
|
+
const m = messages().problems;
|
|
145
|
+
if (!isObject(value)) {
|
|
146
|
+
problems.push(m.propertiesObject(where));
|
|
147
|
+
return {};
|
|
148
|
+
}
|
|
149
|
+
const properties = {};
|
|
150
|
+
for (const [name, raw] of Object.entries(value)) {
|
|
151
|
+
if (!IDENT.test(name) ||
|
|
152
|
+
RESERVED_WORDS.has(name) ||
|
|
153
|
+
["description", "url", "class", "layer", "link", "port", "assumption"].includes(name)) {
|
|
154
|
+
problems.push(m.propertyName(where, name));
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
const spec = typeof raw === "string" ? { kind: raw } : raw;
|
|
158
|
+
if (!isObject(spec) || !["string", "number", "boolean", "enum"].includes(String(spec.kind))) {
|
|
159
|
+
problems.push(m.propertyKind(where, name));
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
const values = Array.isArray(spec.values)
|
|
163
|
+
? spec.values.filter((v) => typeof v === "string" && /^[A-Za-z_][A-Za-z0-9_-]*$/.test(v))
|
|
164
|
+
: [];
|
|
165
|
+
if (spec.kind === "enum" && values.length === 0) {
|
|
166
|
+
problems.push(m.enumValues(where, name));
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
properties[name] = {
|
|
170
|
+
kind: spec.kind,
|
|
171
|
+
values: spec.kind === "enum" ? values : [],
|
|
172
|
+
description: typeof spec.description === "string" ? spec.description : null,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
return properties;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Reads and checks a diagram type as a plugin writes it in JSON. Problems say what is wrong, in
|
|
179
|
+
* the interface language; with any, the type is not registered.
|
|
180
|
+
*/
|
|
181
|
+
export function readDiagramType(value, plugin) {
|
|
182
|
+
const m = messages().problems;
|
|
183
|
+
const problems = [];
|
|
184
|
+
if (!isObject(value))
|
|
185
|
+
return { definition: null, problems: [m.notObject] };
|
|
186
|
+
const type = typeof value.type === "string" ? value.type : "";
|
|
187
|
+
const where = m.where(type || "?");
|
|
188
|
+
if (!IDENT.test(type) || RESERVED_WORDS.has(type)) {
|
|
189
|
+
problems.push(m.typeWord(where));
|
|
190
|
+
}
|
|
191
|
+
const layoutRaw = isObject(value.layout) ? value.layout : {};
|
|
192
|
+
const mode = (layoutRaw.mode ?? "auto");
|
|
193
|
+
const algorithm = (layoutRaw.algorithm ?? "layered");
|
|
194
|
+
const direction = (layoutRaw.direction ?? "LR");
|
|
195
|
+
if (!LAYOUT_MODES.includes(mode))
|
|
196
|
+
problems.push(m.layoutValue(where, "mode", LAYOUT_MODES));
|
|
197
|
+
if (!LAYOUT_ALGORITHMS.includes(algorithm))
|
|
198
|
+
problems.push(m.layoutValue(where, "algorithm", LAYOUT_ALGORITHMS));
|
|
199
|
+
if (!DIRECTIONS.includes(direction))
|
|
200
|
+
problems.push(m.layoutValue(where, "direction", DIRECTIONS));
|
|
201
|
+
const elements = {};
|
|
202
|
+
if (!isObject(value.elements) || Object.keys(value.elements).length === 0) {
|
|
203
|
+
problems.push(m.noKinds(where));
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
for (const [kind, raw] of Object.entries(value.elements)) {
|
|
207
|
+
const at = m.kindWhere(where, kind);
|
|
208
|
+
if (!IDENT.test(kind) || RESERVED_WORDS.has(kind)) {
|
|
209
|
+
problems.push(m.kindWord(at));
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
const spec = isObject(raw) ? raw : {};
|
|
213
|
+
const properties = readProperties(spec.properties, at, problems);
|
|
214
|
+
const required = Array.isArray(spec.required)
|
|
215
|
+
? spec.required.filter((r) => typeof r === "string")
|
|
216
|
+
: [];
|
|
217
|
+
for (const name of required) {
|
|
218
|
+
if (!(name in properties))
|
|
219
|
+
problems.push(m.requiredUndeclared(at, name));
|
|
220
|
+
}
|
|
221
|
+
elements[kind] = {
|
|
222
|
+
label: typeof spec.label === "string" && spec.label.trim() !== "" ? spec.label : kind,
|
|
223
|
+
description: typeof spec.description === "string" ? spec.description : null,
|
|
224
|
+
style: readStyle(spec.style, at, problems),
|
|
225
|
+
properties,
|
|
226
|
+
required,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
const kinds = new Set(Object.keys(elements));
|
|
231
|
+
const relationsRaw = isObject(value.relations) ? value.relations : {};
|
|
232
|
+
let allowed = null;
|
|
233
|
+
if (relationsRaw.allowed !== undefined) {
|
|
234
|
+
allowed = [];
|
|
235
|
+
if (!Array.isArray(relationsRaw.allowed))
|
|
236
|
+
problems.push(m.allowedPairs(where));
|
|
237
|
+
else {
|
|
238
|
+
for (const pair of relationsRaw.allowed) {
|
|
239
|
+
const [from, to] = Array.isArray(pair) ? pair : [];
|
|
240
|
+
const known = (k) => k === "*" || (typeof k === "string" && kinds.has(k));
|
|
241
|
+
if (!known(from) || !known(to)) {
|
|
242
|
+
problems.push(m.unknownPair(where, JSON.stringify(pair)));
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
245
|
+
allowed.push([from, to]);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
const tools = (Array.isArray(value.tools) ? value.tools : [...kinds].map((kind) => ({ kind }))).flatMap((raw) => {
|
|
250
|
+
const spec = isObject(raw) ? raw : {};
|
|
251
|
+
const kind = typeof spec.kind === "string" ? spec.kind : "";
|
|
252
|
+
if (!kinds.has(kind)) {
|
|
253
|
+
problems.push(m.unknownTool(where, kind));
|
|
254
|
+
return [];
|
|
255
|
+
}
|
|
256
|
+
return [{ kind, label: typeof spec.label === "string" ? spec.label : elements[kind].label }];
|
|
257
|
+
});
|
|
258
|
+
const relationsWhere = m.relationsWhere(where);
|
|
259
|
+
const definition = {
|
|
260
|
+
type,
|
|
261
|
+
title: typeof value.title === "string" && value.title.trim() !== "" ? value.title : type,
|
|
262
|
+
description: typeof value.description === "string" ? value.description : null,
|
|
263
|
+
plugin,
|
|
264
|
+
layout: { mode, algorithm, direction },
|
|
265
|
+
elements,
|
|
266
|
+
relations: {
|
|
267
|
+
allowed,
|
|
268
|
+
properties: readProperties(relationsRaw.properties, relationsWhere, problems),
|
|
269
|
+
style: readStyle(relationsRaw.style, relationsWhere, problems),
|
|
270
|
+
},
|
|
271
|
+
tools,
|
|
272
|
+
};
|
|
273
|
+
return { definition: problems.length === 0 ? definition : null, problems };
|
|
274
|
+
}
|
|
275
|
+
/** Whether a relation between two kinds is allowed by a type (`null` kinds are built-in ones). */
|
|
276
|
+
export function relationAllowed(definition, from, to) {
|
|
277
|
+
const allowed = definition.relations.allowed;
|
|
278
|
+
if (allowed === null)
|
|
279
|
+
return true;
|
|
280
|
+
return allowed.some(([a, b]) => (a === "*" || a === from) && (b === "*" || b === to));
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=diagram-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagram-types.js","sourceRoot":"","sources":["../src/diagram-types.ts"],"names":[],"mappings":"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"}
|
package/dist/diff.d.ts
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { type Locale } from "@meltemi/diagrams-i18n";
|
|
2
|
+
import type { Document } from "./types.js";
|
|
3
|
+
export type ChangeKind = "added" | "removed" | "renamed" | "changed";
|
|
4
|
+
export type ChangeSubject = "diagram" | "element" | "relation" | "model" | "entity" | "story" | "scene" | "theme" | "export";
|
|
5
|
+
/** One difference between two versions. */
|
|
6
|
+
export interface ModelChange {
|
|
7
|
+
readonly kind: ChangeKind;
|
|
8
|
+
readonly subject: ChangeSubject;
|
|
9
|
+
/** The diagram, model or story the change is in; null for the blocks of a file. */
|
|
10
|
+
readonly scope: string | null;
|
|
11
|
+
/** The id after the change; the former id for removals. */
|
|
12
|
+
readonly id: string;
|
|
13
|
+
/** Renames: the id before. */
|
|
14
|
+
readonly from: string | null;
|
|
15
|
+
/** The text people read: an element's label, a diagram's title. */
|
|
16
|
+
readonly label: string | null;
|
|
17
|
+
/** What changed, as facts that `describeChange` words in a language. */
|
|
18
|
+
readonly facts: readonly ChangeFact[];
|
|
19
|
+
/** The facts in English, such as `label "API" → "API Gateway"` or `moved`. */
|
|
20
|
+
readonly details: readonly string[];
|
|
21
|
+
}
|
|
22
|
+
/** One thing that changed, which `describeFact` words in a language. */
|
|
23
|
+
export type ChangeFact =
|
|
24
|
+
/** A text written in the source: `label "API" → "API Gateway"`. */
|
|
25
|
+
{
|
|
26
|
+
readonly fact: "text";
|
|
27
|
+
readonly field: string;
|
|
28
|
+
readonly before: string | null;
|
|
29
|
+
readonly after: string | null;
|
|
30
|
+
}
|
|
31
|
+
/** A value of the language: `kind node → decision`, `preset none → slide`. */
|
|
32
|
+
| {
|
|
33
|
+
readonly fact: "value";
|
|
34
|
+
readonly field: string;
|
|
35
|
+
readonly before: string | null;
|
|
36
|
+
readonly after: string | null;
|
|
37
|
+
}
|
|
38
|
+
/** The classes applied, in order. */
|
|
39
|
+
| {
|
|
40
|
+
readonly fact: "classes";
|
|
41
|
+
readonly before: readonly string[];
|
|
42
|
+
readonly after: readonly string[];
|
|
43
|
+
}
|
|
44
|
+
/** A part that changed, without details. */
|
|
45
|
+
| {
|
|
46
|
+
readonly fact: "changed";
|
|
47
|
+
readonly part: ChangedPart;
|
|
48
|
+
}
|
|
49
|
+
/** A new state. */
|
|
50
|
+
| {
|
|
51
|
+
readonly fact: "state";
|
|
52
|
+
readonly state: ChangeState;
|
|
53
|
+
}
|
|
54
|
+
/** An element moved between groups; `to` is null out of every group. */
|
|
55
|
+
| {
|
|
56
|
+
readonly fact: "group";
|
|
57
|
+
readonly from: string | null;
|
|
58
|
+
readonly to: string | null;
|
|
59
|
+
}
|
|
60
|
+
/** An entity moved to another parent; null is the model's root. */
|
|
61
|
+
| {
|
|
62
|
+
readonly fact: "parent";
|
|
63
|
+
readonly to: string | null;
|
|
64
|
+
} | {
|
|
65
|
+
readonly fact: "scenario";
|
|
66
|
+
readonly id: string;
|
|
67
|
+
readonly added: boolean;
|
|
68
|
+
} | {
|
|
69
|
+
readonly fact: "duration";
|
|
70
|
+
readonly before: number;
|
|
71
|
+
readonly after: number;
|
|
72
|
+
}
|
|
73
|
+
/** The kind or type of what was added or removed, as written. */
|
|
74
|
+
| {
|
|
75
|
+
readonly fact: "kind";
|
|
76
|
+
readonly kind: string;
|
|
77
|
+
};
|
|
78
|
+
/** Parts of a change described without details. */
|
|
79
|
+
export type ChangedPart = "description" | "style" | "effects" | "canvas" | "layers" | "includedEntities" | "constraints" | "transition" | "actions" | "assumption" | "ends";
|
|
80
|
+
/** States a change can leave something in. */
|
|
81
|
+
export type ChangeState = "external" | "notExternal" | "placed" | "unplaced" | "moved" | "resized" | "twoWay" | "oneWay" | "async" | "sync" | "confirmed" | "assumed" | "rerouted" | "labelMoved" | "messagesReordered" | "scenesReordered";
|
|
82
|
+
/**
|
|
83
|
+
* The semantic changes from one version of a document to another: diagrams, their elements and
|
|
84
|
+
* relations, models and their entities, stories and their scenes, themes and export profiles.
|
|
85
|
+
*/
|
|
86
|
+
export declare function diffDocuments(before: Document, after: Document): ModelChange[];
|
|
87
|
+
/** One line per change, such as `~ element api: label "API" → "API Gateway"`. */
|
|
88
|
+
export declare function describeChange(c: ModelChange, locale?: Locale): string;
|
|
89
|
+
/** One fact in a language, by default the interface's: `label "API" → "API Gateway"`, `moved`. */
|
|
90
|
+
export declare function describeFact(fact: ChangeFact, locale?: Locale): string;
|
|
91
|
+
//# sourceMappingURL=diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"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"}
|