@coral-viz/language 0.2.3 → 0.2.4
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 +18 -0
- package/dist/diagnostics.d.ts +9 -0
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +4 -0
- package/dist/diagnostics.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +403 -38
- package/dist/parser/index.js.map +1 -1
- package/dist/printer/index.d.ts.map +1 -1
- package/dist/printer/index.js +177 -104
- package/dist/printer/index.js.map +1 -1
- package/dist/strings.d.ts.map +1 -1
- package/dist/strings.js +13 -6
- package/dist/strings.js.map +1 -1
- package/dist/structured.d.ts +5 -0
- package/dist/structured.d.ts.map +1 -0
- package/dist/structured.js +67 -0
- package/dist/structured.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,3 +3,21 @@
|
|
|
3
3
|
Portable Coral DSL parsing, deterministic printing, and Mermaid, DOT, and
|
|
4
4
|
PlantUML import. See the [Coral repository](https://github.com/coreyt/coral)
|
|
5
5
|
for usage and release documentation.
|
|
6
|
+
|
|
7
|
+
The 0.2.4 surface preserves JSON-safe GraphIR data with additive structured
|
|
8
|
+
clauses while retaining the readable 0.2.3 syntax:
|
|
9
|
+
|
|
10
|
+
```coral
|
|
11
|
+
@graph {"id":"checkout","metadata":{"tags":["prod"]}}
|
|
12
|
+
|
|
13
|
+
"custom/type" "API" data {"dimensions":{"height":80,"width":160},"ports":[{"id":"out","side":"EAST"}]} {
|
|
14
|
+
rules: ["authenticated", {"region":"us-east-1"}]
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
api -> db as writes data {"sourcePort":"out","targetPort":"in","style":{"routing":"orthogonal"}}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
`printWithDiagnostics` reports derived source information, reserved properties,
|
|
21
|
+
non-JSON runtime values, and other excluded data rather than dropping it
|
|
22
|
+
silently. The Tree-sitter grammar supports editor tooling; the portable
|
|
23
|
+
TypeScript parser remains the runtime parser.
|
package/dist/diagnostics.d.ts
CHANGED
|
@@ -19,6 +19,11 @@ export interface SourcePosition {
|
|
|
19
19
|
column: number;
|
|
20
20
|
offset: number;
|
|
21
21
|
}
|
|
22
|
+
/** Exact half-open source range in UTF-16 code units. */
|
|
23
|
+
export interface DiagnosticRange {
|
|
24
|
+
readonly start: SourcePosition;
|
|
25
|
+
readonly end: SourcePosition;
|
|
26
|
+
}
|
|
22
27
|
/** The IR element a loss attaches to, when one is known. */
|
|
23
28
|
export interface DiagnosticSubject {
|
|
24
29
|
kind: 'node' | 'edge' | 'graph';
|
|
@@ -34,6 +39,8 @@ export interface Diagnostic {
|
|
|
34
39
|
code: string;
|
|
35
40
|
message: string;
|
|
36
41
|
position?: SourcePosition;
|
|
42
|
+
/** Exact half-open range when both boundaries are known. */
|
|
43
|
+
range?: DiagnosticRange;
|
|
37
44
|
/** Verbatim source slice that was dropped or degraded. */
|
|
38
45
|
source?: string;
|
|
39
46
|
subject?: DiagnosticSubject;
|
|
@@ -49,6 +56,7 @@ export interface Diagnostic {
|
|
|
49
56
|
*/
|
|
50
57
|
export interface ParseDiagnostic extends Diagnostic, ParseError {
|
|
51
58
|
position: SourcePosition;
|
|
59
|
+
range?: DiagnosticRange;
|
|
52
60
|
}
|
|
53
61
|
/** Options for constructing a single parse diagnostic. */
|
|
54
62
|
export interface ParseDiagnosticInput {
|
|
@@ -56,6 +64,7 @@ export interface ParseDiagnosticInput {
|
|
|
56
64
|
code: string;
|
|
57
65
|
message: string;
|
|
58
66
|
position: SourcePosition;
|
|
67
|
+
range?: DiagnosticRange;
|
|
59
68
|
source?: string;
|
|
60
69
|
subject?: DiagnosticSubject;
|
|
61
70
|
hint?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4DAA4D;AAC5D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAChC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAgB,SAAQ,UAAU,EAAE,UAAU;IAC7D,QAAQ,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,yDAAyD;AACzD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;CAC9B;AAED,4DAA4D;AAC5D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAChC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAgB,SAAQ,UAAU,EAAE,UAAU;IAC7D,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,eAAe,CAkB5E;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,UAAU,CAE/E;AAWD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,eAAe,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,CAWxF"}
|
package/dist/diagnostics.js
CHANGED
|
@@ -19,6 +19,10 @@ export function parseDiagnostic(input) {
|
|
|
19
19
|
code: input.code,
|
|
20
20
|
message: input.message,
|
|
21
21
|
position,
|
|
22
|
+
...(input.range !== undefined ? { range: Object.freeze({
|
|
23
|
+
start: Object.freeze({ ...input.range.start }),
|
|
24
|
+
end: Object.freeze({ ...input.range.end }),
|
|
25
|
+
}) } : {}),
|
|
22
26
|
line: position.line,
|
|
23
27
|
column: position.column,
|
|
24
28
|
offset: position.offset,
|
package/dist/diagnostics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAyEH;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3B,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ;QACR,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;gBACrD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC9C,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;aAC3C,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACV,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,eAAe,CAAC,KAAmC;IACjE,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,+CAA+C;AAC/C,SAAS,gBAAgB,CAAC,CAAkB,EAAE,CAAkB;IAC9D,OAAO,CACL,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI;QACjC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM;QACrC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CACtC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,WAA8B,EAAE,KAAe;IACzE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAEpC,OAAO;QACL,OAAO;QACP,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,MAAM,EAAE,MAAiC;QACzC,WAAW,EAAE,OAAuC;KACrD,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* @coral-viz/language - Coral DSL parser and printer
|
|
3
3
|
*/
|
|
4
4
|
export { parse, labelToId } from './parser/index.js';
|
|
5
|
+
export { unescapeString } from './strings.js';
|
|
5
6
|
export { print, printWithDiagnostics, prettyPrint, type PrintOptions, type PrintResult, type FormatOptions } from './printer/index.js';
|
|
6
7
|
export { parseMermaid, type MermaidParseOptions } from './formats/mermaid.js';
|
|
7
8
|
export { parseDot, type DotParseOptions } from './formats/dot.js';
|
|
8
9
|
export { parsePlantUml, type PlantUmlParseOptions } from './formats/plantuml.js';
|
|
9
|
-
export { parseDiagnostic, printDiagnostic, finishParse, type Diagnostic, type ParseDiagnostic, type ParseDiagnosticInput, type DiagnosticSeverity, type DiagnosticSubject, type SourcePosition, } from './diagnostics.js';
|
|
10
|
+
export { parseDiagnostic, printDiagnostic, finishParse, type Diagnostic, type ParseDiagnostic, type ParseDiagnosticInput, type DiagnosticSeverity, type DiagnosticSubject, type SourcePosition, type DiagnosticRange, } from './diagnostics.js';
|
|
10
11
|
export type { GraphIR, GraphNode, GraphEdge, Port, PortSide, Dimensions, Position, EdgeStyle, LayoutOptions, SpacingOptions, NodeLayoutOptions, GraphMetadata, SourceInfo, SourceRange, Comment, ParseOptions, ParseResult, ParseError, } from './types.js';
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGvI,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGjF,OAAO,EACL,eAAe,EACf,eAAe,EACf,WAAW,EACX,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,OAAO,EACP,SAAS,EACT,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,SAAS,EACT,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,WAAW,EACX,OAAO,EACP,YAAY,EACZ,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS;AACT,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS;AACT,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,UAAU;AACV,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAA2D,MAAM,oBAAoB,CAAC;AAEvI,mBAAmB;AACnB,OAAO,EAAE,YAAY,EAA4B,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAwB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAA6B,MAAM,uBAAuB,CAAC;AAEjF,cAAc;AACd,OAAO,EACL,eAAe,EACf,eAAe,EACf,WAAW,GAQZ,MAAM,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAIV,YAAY,EACZ,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAA+B,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAIV,YAAY,EACZ,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAA+B,SAAS,EAAE,MAAM,WAAW,CAAC;AAUnE;;GAEG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,CA2C7E;AA4zBD,OAAO,EAAE,SAAS,EAAE,CAAC"}
|