@danielsimonjr/sciengjs 0.8.0 → 0.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.
Files changed (62) hide show
  1. package/README.md +25 -3
  2. package/dist/errors.d.ts +2 -0
  3. package/dist/errors.js +4 -0
  4. package/dist/errors.js.map +1 -1
  5. package/dist/graph/backend-pdf.js +3 -2
  6. package/dist/graph/backend-pdf.js.map +1 -1
  7. package/dist/graph/backend-png.js +3 -2
  8. package/dist/graph/backend-png.js.map +1 -1
  9. package/dist/graph/backend-svg.js +3 -2
  10. package/dist/graph/backend-svg.js.map +1 -1
  11. package/dist/graph/dot.d.ts +0 -2
  12. package/dist/graph/dot.js +0 -4
  13. package/dist/graph/dot.js.map +1 -1
  14. package/dist/graph/text.d.ts +12 -0
  15. package/dist/graph/text.js +21 -0
  16. package/dist/graph/text.js.map +1 -0
  17. package/dist/mermaid/backend-pdf.js +2 -1
  18. package/dist/mermaid/backend-pdf.js.map +1 -1
  19. package/dist/mermaid/backend-png.js +2 -1
  20. package/dist/mermaid/backend-png.js.map +1 -1
  21. package/dist/mermaid/backend-svg.js +2 -1
  22. package/dist/mermaid/backend-svg.js.map +1 -1
  23. package/dist/mermaid/class.js +3 -7
  24. package/dist/mermaid/class.js.map +1 -1
  25. package/dist/mermaid/common.d.ts +0 -10
  26. package/dist/mermaid/common.js +2 -16
  27. package/dist/mermaid/common.js.map +1 -1
  28. package/dist/mermaid/sequence-layout.js +1 -1
  29. package/dist/mermaid/sequence-layout.js.map +1 -1
  30. package/dist/mermaid/sequence.js +2 -1
  31. package/dist/mermaid/sequence.js.map +1 -1
  32. package/dist/mermaid/state.js +3 -1
  33. package/dist/mermaid/state.js.map +1 -1
  34. package/dist/registry.js +3 -0
  35. package/dist/registry.js.map +1 -1
  36. package/dist/sysml/backend-pdf.d.ts +3 -0
  37. package/dist/sysml/backend-pdf.js +10 -0
  38. package/dist/sysml/backend-pdf.js.map +1 -0
  39. package/dist/sysml/backend-png.d.ts +6 -0
  40. package/dist/sysml/backend-png.js +19 -0
  41. package/dist/sysml/backend-png.js.map +1 -0
  42. package/dist/sysml/backend-svg.d.ts +3 -0
  43. package/dist/sysml/backend-svg.js +8 -0
  44. package/dist/sysml/backend-svg.js.map +1 -0
  45. package/dist/sysml/index.d.ts +8 -0
  46. package/dist/sysml/index.js +9 -0
  47. package/dist/sysml/index.js.map +1 -0
  48. package/dist/sysml/parse.d.ts +99 -0
  49. package/dist/sysml/parse.js +480 -0
  50. package/dist/sysml/parse.js.map +1 -0
  51. package/dist/sysml/render.d.ts +7 -0
  52. package/dist/sysml/render.js +11 -0
  53. package/dist/sysml/render.js.map +1 -0
  54. package/dist/sysml/tokens.d.ts +14 -0
  55. package/dist/sysml/tokens.js +93 -0
  56. package/dist/sysml/tokens.js.map +1 -0
  57. package/dist/sysml/views.d.ts +16 -0
  58. package/dist/sysml/views.js +156 -0
  59. package/dist/sysml/views.js.map +1 -0
  60. package/dist/version.d.ts +1 -1
  61. package/dist/version.js +1 -1
  62. package/package.json +106 -102
@@ -0,0 +1,16 @@
1
+ import { type SysmlModel } from "./parse.ts";
2
+ /** The views of the design: block definition, internal block and requirements. */
3
+ export type SysmlView = "bdd" | "ibd" | "requirements";
4
+ /** The options of a SysML render after the check. */
5
+ export interface SysmlOptions {
6
+ view: SysmlView;
7
+ root: string | undefined;
8
+ lenient: boolean;
9
+ }
10
+ /**
11
+ * Reads the options `view`, `root` and `lenient`. Another key, an unknown view, `ibd` without `root`, and `root` with
12
+ * another view reject with E_INPUT. An undefined value counts as an absent key.
13
+ */
14
+ export declare function readSysmlOptions(options: Record<string, unknown>): SysmlOptions;
15
+ /** Builds the DOT source of one view of a parsed model. */
16
+ export declare function sysmlToDot(model: SysmlModel, options: SysmlOptions): string;
@@ -0,0 +1,156 @@
1
+ import { RenderError } from "../errors.js";
2
+ import { escapeDot, escapeRecord } from "../graph/text.js";
3
+ import { baseChain } from "./parse.js";
4
+ const VIEWS = ["bdd", "ibd", "requirements"];
5
+ /**
6
+ * Reads the options `view`, `root` and `lenient`. Another key, an unknown view, `ibd` without `root`, and `root` with
7
+ * another view reject with E_INPUT. An undefined value counts as an absent key.
8
+ */
9
+ export function readSysmlOptions(options) {
10
+ const out = { view: "bdd", root: undefined, lenient: false };
11
+ for (const [key, value] of Object.entries(options)) {
12
+ if (value === undefined)
13
+ continue;
14
+ if (key === "lenient") {
15
+ if (typeof value !== "boolean")
16
+ throw new RenderError("E_INPUT", "option lenient must be true or false");
17
+ out.lenient = value;
18
+ }
19
+ else if (key === "view") {
20
+ if (!VIEWS.includes(value))
21
+ throw new RenderError("E_INPUT", "option view must be bdd, ibd or requirements");
22
+ out.view = value;
23
+ }
24
+ else if (key === "root") {
25
+ if (typeof value !== "string")
26
+ throw new RenderError("E_INPUT", "option root must be the name of a part def");
27
+ out.root = value;
28
+ }
29
+ else {
30
+ throw new RenderError("E_INPUT", `sysml takes no option ${key}`);
31
+ }
32
+ }
33
+ if (out.view === "ibd" && out.root === undefined)
34
+ throw new RenderError("E_INPUT", "the ibd view needs the option root");
35
+ if (out.view !== "ibd" && out.root !== undefined)
36
+ throw new RenderError("E_INPUT", "the option root is only for the ibd view");
37
+ return out;
38
+ }
39
+ /** Builds the DOT source of one view of a parsed model. */
40
+ export function sysmlToDot(model, options) {
41
+ const out = ["digraph sysml {"];
42
+ if (options.view === "bdd")
43
+ bdd(model, out);
44
+ else if (options.view === "ibd")
45
+ ibd(model, options.root, out);
46
+ else
47
+ requirements(model, out);
48
+ out.push("}");
49
+ return out.join("\n") + "\n";
50
+ }
51
+ const q = (text) => `"${escapeDot(text)}"`;
52
+ function attributeText(a) {
53
+ return `${a.name}${a.type === undefined ? "" : ` : ${a.type}`}${a.value === undefined ? "" : ` = ${a.value}`}`;
54
+ }
55
+ /** A record label: the head, then one compartment for each non-empty list of lines. */
56
+ function record(head, ...compartments) {
57
+ const fields = [head, ...compartments.filter((c) => c.length > 0).map((c) => c.map((l) => `${escapeRecord(l)}\\l`).join(""))];
58
+ return `{${fields.join("|")}}`;
59
+ }
60
+ function defHead(kind, name) {
61
+ return `${kind}\\n${escapeRecord(name)}`;
62
+ }
63
+ function bdd(model, out) {
64
+ out.push(" rankdir=TB;", " node [shape=record];");
65
+ for (const def of model.partDefs) {
66
+ const label = record(defHead("part def", def.name), def.attributes.map(attributeText), def.ports.map((p) => `port ${p.name} : ${p.type}`));
67
+ out.push(` ${q(def.name)} [label="${label}"];`);
68
+ }
69
+ const plain = (kind, def) => {
70
+ out.push(` ${q(def.name)} [label="${record(defHead(kind, def.name), def.attributes.map(attributeText))}"];`);
71
+ };
72
+ for (const def of model.portDefs)
73
+ plain("port def", def);
74
+ for (const def of model.interfaceDefs)
75
+ plain("interface def", def);
76
+ for (const def of model.partDefs) {
77
+ for (const part of def.parts) {
78
+ const name = part.multiplicity === undefined ? part.name : `${part.name} [${part.multiplicity}]`;
79
+ out.push(` ${q(def.name)} -> ${q(part.type)} [dir=both, arrowtail=diamond, arrowhead=none, headlabel=${q(name)}];`);
80
+ }
81
+ if (def.base !== undefined)
82
+ out.push(` ${q(def.name)} -> ${q(def.base)} [arrowhead=empty];`);
83
+ }
84
+ }
85
+ function chain(model, def) {
86
+ return baseChain(model.partDefs, def);
87
+ }
88
+ function ibd(model, rootName, out) {
89
+ const root = model.partDefs.find((d) => d.name === rootName);
90
+ if (root === undefined)
91
+ throw new RenderError("E_INPUT", `the option root: ${rootName} names no part def`);
92
+ const defs = chain(model, root);
93
+ out.push(" rankdir=LR;", " subgraph cluster_root {", ` label=${q(root.name)};`);
94
+ for (const part of defs.flatMap((d) => d.parts)) {
95
+ const type = model.partDefs.find((d) => d.name === part.type);
96
+ const ports = chain(model, type).flatMap((d) => d.ports).map((p) => `<${p.name}> ${escapeRecord(p.name)}`);
97
+ const head = escapeRecord(`${part.name} : ${part.type}${part.multiplicity === undefined ? "" : ` [${part.multiplicity}]`}`);
98
+ const label = ports.length === 0 ? `{${head}}` : `{${head}|{${ports.join("|")}}}`;
99
+ out.push(` ${q(`part:${part.name}`)} [shape=record, label="${label}"];`);
100
+ }
101
+ for (const port of defs.flatMap((d) => d.ports)) {
102
+ out.push(` ${q(`port:${port.name}`)} [shape=box, label=${q(`${port.name} : ${port.type}`)}];`);
103
+ }
104
+ out.push(" }");
105
+ const end = (e) => e.part === undefined ? q(`port:${e.port}`) : `${q(`part:${e.part}`)}:${q(e.port)}`;
106
+ for (const c of defs.flatMap((d) => d.connections)) {
107
+ const label = c.name === undefined ? "" : `, label=${q(`${c.name} : ${c.def}`)}`;
108
+ out.push(` ${end(c.from)} -> ${end(c.to)} [dir=none${label}];`);
109
+ }
110
+ }
111
+ function requirements(model, out) {
112
+ out.push(" rankdir=TB;");
113
+ const id = (address) => q(`req:${address}`);
114
+ const node = (address, label) => {
115
+ out.push(` ${id(address)} [shape=record, label="${label}"];`);
116
+ };
117
+ const edges = [];
118
+ const usage = (r, owner) => {
119
+ const head = defHead("requirement", r.def === undefined ? r.name : `${r.name} : ${r.def}`);
120
+ node(r.address, record(head, r.attributes.map(attributeText)));
121
+ if (owner !== undefined)
122
+ edges.push(` ${id(owner)} -> ${id(r.address)} [dir=both, arrowtail=odot, arrowhead=none];`);
123
+ if (r.def !== undefined)
124
+ edges.push(` ${id(r.address)} -> ${id(r.def)} [style=dashed, arrowhead=normal];`);
125
+ for (const child of r.children)
126
+ usage(child, r.address);
127
+ };
128
+ const def = (d) => {
129
+ node(d.name, record(defHead("requirement def", d.name), d.attributes.map(attributeText)));
130
+ if (d.base !== undefined)
131
+ edges.push(` ${id(d.name)} -> ${id(d.base)} [arrowhead=empty];`);
132
+ for (const child of d.children)
133
+ usage(child, d.name);
134
+ };
135
+ model.requirementDefs.forEach(def);
136
+ model.requirements.forEach((r) => usage(r, undefined));
137
+ const seen = new Set();
138
+ for (const s of model.satisfies) {
139
+ const element = q(`elem:${s.path}`);
140
+ if (!seen.has(s.path)) {
141
+ seen.add(s.path);
142
+ const [defName, partName] = s.path.split(".");
143
+ if (partName === undefined) {
144
+ out.push(` ${element} [shape=record, label="${record(defHead("part def", defName))}"];`);
145
+ }
146
+ else {
147
+ const owner = model.partDefs.find((d) => d.name === defName);
148
+ const part = chain(model, owner).flatMap((d) => d.parts).find((p) => p.name === partName);
149
+ out.push(` ${element} [shape=box, label=${q(`${part.name} : ${part.type}`)}];`);
150
+ }
151
+ }
152
+ edges.push(` ${element} -> ${id(s.requirement)} [style=dashed, arrowhead=open, label="<<satisfy>>"];`);
153
+ }
154
+ out.push(...edges);
155
+ }
156
+ //# sourceMappingURL=views.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/sysml/views.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const ENGINE_VERSION = "0.8.0";
1
+ export declare const ENGINE_VERSION = "0.9.0";
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Generated by scripts/prepare-build.mjs from package.json. Do not edit this file by hand.
2
- export const ENGINE_VERSION = "0.8.0";
2
+ export const ENGINE_VERSION = "0.9.0";
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,102 +1,106 @@
1
- {
2
- "name": "@danielsimonjr/sciengjs",
3
- "version": "0.8.0",
4
- "private": false,
5
- "description": "A local rendering engine for science and engineering diagrams, documents and models",
6
- "license": "MIT",
7
- "type": "module",
8
- "main": "./dist/index.js",
9
- "types": "./dist/index.d.ts",
10
- "sideEffects": false,
11
- "exports": {
12
- ".": {
13
- "types": "./dist/index.d.ts",
14
- "default": "./dist/index.js"
15
- },
16
- "./graph": {
17
- "types": "./dist/graph/index.d.ts",
18
- "default": "./dist/graph/index.js"
19
- },
20
- "./raster": {
21
- "types": "./dist/raster/index.d.ts",
22
- "default": "./dist/raster/index.js"
23
- },
24
- "./browser": {
25
- "types": "./dist/browser/index.d.ts",
26
- "default": "./dist/browser/index.js"
27
- },
28
- "./mermaid": {
29
- "types": "./dist/mermaid/index.d.ts",
30
- "default": "./dist/mermaid/index.js"
31
- },
32
- "./math": {
33
- "types": "./dist/math/index.d.ts",
34
- "default": "./dist/math/index.js"
35
- },
36
- "./plot": {
37
- "types": "./dist/plot/index.d.ts",
38
- "default": "./dist/plot/index.js"
39
- },
40
- "./html": {
41
- "types": "./dist/html/index.d.ts",
42
- "default": "./dist/html/index.js"
43
- },
44
- "./mesh": {
45
- "types": "./dist/mesh/index.d.ts",
46
- "default": "./dist/mesh/index.js"
47
- },
48
- "./package.json": "./package.json"
49
- },
50
- "files": [
51
- "dist",
52
- "assets",
53
- "THIRD_PARTY_NOTICES.md",
54
- "README.md",
55
- "LICENSE"
56
- ],
57
- "scripts": {
58
- "build": "node scripts/prepare-build.mjs && tsc -p tsconfig.build.json",
59
- "typecheck": "tsc --noEmit",
60
- "test": "bun test",
61
- "smoke": "node test/smoke/smoke.mjs",
62
- "clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
63
- "test:node": "node --test test/node/worker.node.mjs test/node/eval-render.node.mjs test/node/worker-execargv.node.mjs test/node/math.node.mjs test/node/mesh.node.mjs"
64
- },
65
- "keywords": [
66
- "graphviz",
67
- "mermaid",
68
- "latex",
69
- "tikz",
70
- "svg",
71
- "diagram",
72
- "rendering"
73
- ],
74
- "repository": {
75
- "type": "git",
76
- "url": "git+https://github.com/danielsimonjr/sciengjs.git"
77
- },
78
- "bugs": {
79
- "url": "https://github.com/danielsimonjr/sciengjs/issues"
80
- },
81
- "homepage": "https://github.com/danielsimonjr/sciengjs#readme",
82
- "engines": {
83
- "node": ">=22"
84
- },
85
- "packageManager": "bun@1.4.4",
86
- "devDependencies": {
87
- "@types/bun": "^1.4.4",
88
- "@types/node": "^22",
89
- "mermaid": "11.17.2",
90
- "plotly.js-dist-min": "4.2.0",
91
- "three": "0.187.0",
92
- "typescript": "^7.0.2"
93
- },
94
- "dependencies": {
95
- "@mathjax/src": "4.1.3",
96
- "@resvg/resvg-wasm": "2.6.2",
97
- "@viz-js/viz": "3.31.0",
98
- "manifold-3d": "3.2.1",
99
- "occt-import-js": "0.0.23",
100
- "parse5": "8.1.0"
101
- }
102
- }
1
+ {
2
+ "name": "@danielsimonjr/sciengjs",
3
+ "version": "0.9.0",
4
+ "private": false,
5
+ "description": "A local rendering engine for science and engineering diagrams, documents and models",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "main": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "sideEffects": false,
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "default": "./dist/index.js"
15
+ },
16
+ "./graph": {
17
+ "types": "./dist/graph/index.d.ts",
18
+ "default": "./dist/graph/index.js"
19
+ },
20
+ "./raster": {
21
+ "types": "./dist/raster/index.d.ts",
22
+ "default": "./dist/raster/index.js"
23
+ },
24
+ "./browser": {
25
+ "types": "./dist/browser/index.d.ts",
26
+ "default": "./dist/browser/index.js"
27
+ },
28
+ "./mermaid": {
29
+ "types": "./dist/mermaid/index.d.ts",
30
+ "default": "./dist/mermaid/index.js"
31
+ },
32
+ "./math": {
33
+ "types": "./dist/math/index.d.ts",
34
+ "default": "./dist/math/index.js"
35
+ },
36
+ "./plot": {
37
+ "types": "./dist/plot/index.d.ts",
38
+ "default": "./dist/plot/index.js"
39
+ },
40
+ "./html": {
41
+ "types": "./dist/html/index.d.ts",
42
+ "default": "./dist/html/index.js"
43
+ },
44
+ "./mesh": {
45
+ "types": "./dist/mesh/index.d.ts",
46
+ "default": "./dist/mesh/index.js"
47
+ },
48
+ "./sysml": {
49
+ "types": "./dist/sysml/index.d.ts",
50
+ "default": "./dist/sysml/index.js"
51
+ },
52
+ "./package.json": "./package.json"
53
+ },
54
+ "files": [
55
+ "dist",
56
+ "assets",
57
+ "THIRD_PARTY_NOTICES.md",
58
+ "README.md",
59
+ "LICENSE"
60
+ ],
61
+ "scripts": {
62
+ "build": "node scripts/prepare-build.mjs && tsc -p tsconfig.build.json",
63
+ "typecheck": "tsc --noEmit",
64
+ "test": "bun test",
65
+ "smoke": "node test/smoke/smoke.mjs",
66
+ "clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
67
+ "test:node": "node --test test/node/worker.node.mjs test/node/eval-render.node.mjs test/node/worker-execargv.node.mjs test/node/math.node.mjs test/node/mesh.node.mjs"
68
+ },
69
+ "keywords": [
70
+ "graphviz",
71
+ "mermaid",
72
+ "latex",
73
+ "tikz",
74
+ "svg",
75
+ "diagram",
76
+ "rendering"
77
+ ],
78
+ "repository": {
79
+ "type": "git",
80
+ "url": "git+https://github.com/danielsimonjr/sciengjs.git"
81
+ },
82
+ "bugs": {
83
+ "url": "https://github.com/danielsimonjr/sciengjs/issues"
84
+ },
85
+ "homepage": "https://github.com/danielsimonjr/sciengjs#readme",
86
+ "engines": {
87
+ "node": ">=22"
88
+ },
89
+ "packageManager": "bun@1.4.4",
90
+ "devDependencies": {
91
+ "@types/bun": "^1.4.4",
92
+ "@types/node": "^22",
93
+ "mermaid": "11.17.2",
94
+ "plotly.js-dist-min": "4.2.0",
95
+ "three": "0.187.0",
96
+ "typescript": "^7.0.2"
97
+ },
98
+ "dependencies": {
99
+ "@mathjax/src": "4.1.3",
100
+ "@resvg/resvg-wasm": "2.6.2",
101
+ "@viz-js/viz": "3.31.0",
102
+ "manifold-3d": "3.2.1",
103
+ "occt-import-js": "0.0.23",
104
+ "parse5": "8.1.0"
105
+ }
106
+ }