@substrat-run/model-view 0.2.53 → 0.4.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/dist/concept.d.ts +117 -0
- package/dist/concept.d.ts.map +1 -0
- package/dist/concept.js +367 -0
- package/dist/concept.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { EmittedLifecycle, EmittedModel } from '@substrat-run/contracts';
|
|
2
|
+
/**
|
|
3
|
+
* `spec/concept.md`, split by owner (#2362).
|
|
4
|
+
*
|
|
5
|
+
* A concept document is the readable description of a vertical for the people who own it,
|
|
6
|
+
* and nothing used to keep it in step with the code: the entity model in prose drifted the
|
|
7
|
+
* first time an agent added a field. So three of its sections are GENERATED, between
|
|
8
|
+
* markers, from the artifacts of record, and everything around them is authored:
|
|
9
|
+
*
|
|
10
|
+
* ```
|
|
11
|
+
* <!-- substrat:roles --> roles and permissions (PERMISSIONS.md, from `lint:permissions`)
|
|
12
|
+
* <!-- substrat:entities --> a Mermaid `erDiagram` (model.json)
|
|
13
|
+
* <!-- substrat:processes --> a Mermaid `stateDiagram-v2` per declared lifecycle (model.json)
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* Each region is closed by `<!-- /substrat:<name> -->`. The markers stay; the text between
|
|
17
|
+
* them is rewritten whole by {@link syncConcept}, so a hand edit inside one is overwritten
|
|
18
|
+
* and a stale one is caught by comparing {@link syncConcept}'s output with the file.
|
|
19
|
+
*
|
|
20
|
+
* Pure and deterministic: no clock, no path, no ordering that depends on declaration
|
|
21
|
+
* order — entities, states and roles are sorted — so the same inputs give byte-identical
|
|
22
|
+
* output on every run. Reading the files is the caller's half (the CLI, `lint:concept`).
|
|
23
|
+
* Like the rest of this package it imports no `node:*`, so it runs in a browser bundle too.
|
|
24
|
+
*/
|
|
25
|
+
/** The generated regions, in the order a concept document carries them. */
|
|
26
|
+
export declare const CONCEPT_SECTIONS: readonly ['roles', 'entities', 'processes'];
|
|
27
|
+
export type ConceptSection = (typeof CONCEPT_SECTIONS)[number];
|
|
28
|
+
/** What the generated regions are rendered from. */
|
|
29
|
+
export interface ConceptInputs {
|
|
30
|
+
/** The vertical's emitted `model.json`. */
|
|
31
|
+
readonly model: EmittedModel;
|
|
32
|
+
/**
|
|
33
|
+
* The vertical's checked-in `PERMISSIONS.md` text, when it has one. Absent for a project
|
|
34
|
+
* that has not run `lint:permissions` yet, which renders a note instead of an empty table.
|
|
35
|
+
*/
|
|
36
|
+
readonly permissionsMd?: string;
|
|
37
|
+
}
|
|
38
|
+
/** The parts of a `PERMISSIONS.md` a concept document shows. */
|
|
39
|
+
export interface PermissionsView {
|
|
40
|
+
readonly roles: readonly {
|
|
41
|
+
readonly role: string;
|
|
42
|
+
readonly keys: readonly string[];
|
|
43
|
+
}[];
|
|
44
|
+
readonly entityGrants: readonly {
|
|
45
|
+
readonly entityType: string;
|
|
46
|
+
readonly keys: readonly string[];
|
|
47
|
+
}[];
|
|
48
|
+
readonly descriptions: ReadonlyMap<string, string>;
|
|
49
|
+
/**
|
|
50
|
+
* Operation → the keys it declares it checks and what the check narrows to (#2384). An
|
|
51
|
+
* operation with no declared key has `keys: []` and `declared: false`. `undefined` when the
|
|
52
|
+
* file has no Operations section — one emitted before it existed — never "no operations".
|
|
53
|
+
*/
|
|
54
|
+
readonly operations?: ReadonlyMap<string, OperationCheckView>;
|
|
55
|
+
/**
|
|
56
|
+
* Set when the Operations heading is there but its table is not the emitter's — the same shapes
|
|
57
|
+
* the bump classifier ranks major ({@link operationsTableProblem}). `operations` is then absent.
|
|
58
|
+
*/
|
|
59
|
+
readonly operationsUnreadable?: string;
|
|
60
|
+
/**
|
|
61
|
+
* Modules registered as a bare manifest, whose operations are therefore not known: their
|
|
62
|
+
* operations are missing from `operations` because nothing could list them, not because there
|
|
63
|
+
* are none. Present (possibly empty) whenever `operations` is.
|
|
64
|
+
*/
|
|
65
|
+
readonly operationsUnknownFor?: readonly string[];
|
|
66
|
+
}
|
|
67
|
+
/** One row of `PERMISSIONS.md`'s Operations section. */
|
|
68
|
+
export interface OperationCheckView {
|
|
69
|
+
readonly keys: readonly string[];
|
|
70
|
+
readonly checkedOn: string;
|
|
71
|
+
readonly declared: boolean;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* A `PERMISSIONS.md` that is not the artifact `lint:permissions` writes: a section this reader
|
|
75
|
+
* depends on is gone. Refusing beats rendering "no roles" for a file whose layout moved.
|
|
76
|
+
*/
|
|
77
|
+
export declare class PermissionsFormatError extends Error {
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* The modules whose operations the section says are NOT known (#2384): each registered as a bare
|
|
81
|
+
* manifest, with no operation map to read. Sorted; empty when the line is absent. Shared by both
|
|
82
|
+
* readers, like {@link operationsTableProblem}.
|
|
83
|
+
*/
|
|
84
|
+
export declare function operationsUnknownFor(section: string): string[];
|
|
85
|
+
/**
|
|
86
|
+
* Why an Operations section's table is not the one `lint:permissions` writes, or `undefined` when
|
|
87
|
+
* it is (#2384). `section` is the text under the heading. The ONE judgement both readers make —
|
|
88
|
+
* this package's `parsePermissions` and the CLI's bump classifier — so `substrat plan` never renders
|
|
89
|
+
* a table the classifier ranks major as unreadable.
|
|
90
|
+
*/
|
|
91
|
+
export declare function operationsTableProblem(section: string): string | undefined;
|
|
92
|
+
/**
|
|
93
|
+
* Read the registry (§1), roles (§2) and entity-narrowed grant shapes (§4) out of a
|
|
94
|
+
* `PERMISSIONS.md`. That file is `lint:permissions`' artifact of record, CI-gated against the
|
|
95
|
+
* running code, so reading it keeps this package free of the verticals it describes.
|
|
96
|
+
*/
|
|
97
|
+
export declare function parsePermissions(md: string): PermissionsView;
|
|
98
|
+
/**
|
|
99
|
+
* The entity model as a Mermaid `erDiagram` block — the `entities` region of a concept document,
|
|
100
|
+
* and each side of `substrat plan`'s before/after view, so both read with one alias scheme.
|
|
101
|
+
*/
|
|
102
|
+
export declare function entityDiagram(model: EmittedModel): string;
|
|
103
|
+
/** One declared lifecycle as a `### <entity>` heading over a Mermaid `stateDiagram-v2` block. */
|
|
104
|
+
export declare function lifecycleDiagram(entity: string, lc: EmittedLifecycle): string;
|
|
105
|
+
/** A concept document whose markers cannot be read: one region missing, doubled or mis-ordered. */
|
|
106
|
+
export declare class ConceptMarkerError extends Error {
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Rewrite the generated regions of a concept document. Everything outside the markers is
|
|
110
|
+
* returned untouched, byte for byte. Throws {@link ConceptMarkerError} when a region is
|
|
111
|
+
* missing, doubled or unclosed — a sync that quietly skipped one would print green for a
|
|
112
|
+
* section it never wrote.
|
|
113
|
+
*/
|
|
114
|
+
export declare function syncConcept(markdown: string, inputs: ConceptInputs): string;
|
|
115
|
+
/** The `## …Decisions log…` section's text — what an author appends to on every model change. */
|
|
116
|
+
export declare function decisionsLog(markdown: string): string | undefined;
|
|
117
|
+
//# sourceMappingURL=concept.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concept.d.ts","sourceRoot":"","sources":["../src/concept.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,2EAA2E;AAC3E,eAAO,MAAM,gBAAgB,YAAI,OAAO,EAAE,UAAU,EAAE,WAAW,CAAU,CAAC;AAC5E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAK/D,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,gEAAgE;AAChE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IACvF,QAAQ,CAAC,YAAY,EAAE,SAAS;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IACpG,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC9D;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnD;AAED,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAQD;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;CAAG;AAyBpD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAG9D;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAc1E;AAmBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,CA0C5D;AAiGD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CA2BzD;AAED,iGAAiG;AACjG,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,GAAG,MAAM,CAc7E;AAoBD,mGAAmG;AACnG,qBAAa,kBAAmB,SAAQ,KAAK;CAAG;AAchD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CAa3E;AAED,iGAAiG;AACjG,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMjE"}
|
package/dist/concept.js
ADDED
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `spec/concept.md`, split by owner (#2362).
|
|
3
|
+
*
|
|
4
|
+
* A concept document is the readable description of a vertical for the people who own it,
|
|
5
|
+
* and nothing used to keep it in step with the code: the entity model in prose drifted the
|
|
6
|
+
* first time an agent added a field. So three of its sections are GENERATED, between
|
|
7
|
+
* markers, from the artifacts of record, and everything around them is authored:
|
|
8
|
+
*
|
|
9
|
+
* ```
|
|
10
|
+
* <!-- substrat:roles --> roles and permissions (PERMISSIONS.md, from `lint:permissions`)
|
|
11
|
+
* <!-- substrat:entities --> a Mermaid `erDiagram` (model.json)
|
|
12
|
+
* <!-- substrat:processes --> a Mermaid `stateDiagram-v2` per declared lifecycle (model.json)
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* Each region is closed by `<!-- /substrat:<name> -->`. The markers stay; the text between
|
|
16
|
+
* them is rewritten whole by {@link syncConcept}, so a hand edit inside one is overwritten
|
|
17
|
+
* and a stale one is caught by comparing {@link syncConcept}'s output with the file.
|
|
18
|
+
*
|
|
19
|
+
* Pure and deterministic: no clock, no path, no ordering that depends on declaration
|
|
20
|
+
* order — entities, states and roles are sorted — so the same inputs give byte-identical
|
|
21
|
+
* output on every run. Reading the files is the caller's half (the CLI, `lint:concept`).
|
|
22
|
+
* Like the rest of this package it imports no `node:*`, so it runs in a browser bundle too.
|
|
23
|
+
*/
|
|
24
|
+
/** The generated regions, in the order a concept document carries them. */
|
|
25
|
+
export const CONCEPT_SECTIONS = ['roles', 'entities', 'processes'];
|
|
26
|
+
const open = (s) => `<!-- substrat:${s} -->`;
|
|
27
|
+
const close = (s) => `<!-- /substrat:${s} -->`;
|
|
28
|
+
/** Split one markdown table row on its unescaped pipes. */
|
|
29
|
+
function cells(line) {
|
|
30
|
+
const body = line.trim().replace(/^\|/, '').replace(/\|$/, '');
|
|
31
|
+
return body.split(/(?<!\\)\|/).map((c) => c.trim().replace(/\\\|/g, '|'));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* A `PERMISSIONS.md` that is not the artifact `lint:permissions` writes: a section this reader
|
|
35
|
+
* depends on is gone. Refusing beats rendering "no roles" for a file whose layout moved.
|
|
36
|
+
*/
|
|
37
|
+
export class PermissionsFormatError extends Error {
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The table rows under the `## <n>. <title>` heading whose title starts with `title`, header and
|
|
41
|
+
* rule dropped; `undefined` when no such section exists. Found by TITLE, never by number:
|
|
42
|
+
* `permission-diff` numbers everything after §3 by which sections a vertical has, so §4 is the
|
|
43
|
+
* grant shapes in one file and the schedules in the next.
|
|
44
|
+
*/
|
|
45
|
+
function tableUnder(md, title) {
|
|
46
|
+
const lines = md.split('\n');
|
|
47
|
+
const at = lines.findIndex((l) => new RegExp(`^## \\d+\\.\\s+${title}\\b`).test(l));
|
|
48
|
+
if (at < 0)
|
|
49
|
+
return undefined;
|
|
50
|
+
const rows = [];
|
|
51
|
+
for (const line of lines.slice(at + 1)) {
|
|
52
|
+
if (line.startsWith('## '))
|
|
53
|
+
break;
|
|
54
|
+
if (line.trim().startsWith('|'))
|
|
55
|
+
rows.push(cells(line));
|
|
56
|
+
}
|
|
57
|
+
return rows.slice(2);
|
|
58
|
+
}
|
|
59
|
+
const OPERATIONS_HEADER = ['Operation', 'Key', 'Checked on', 'Declared by'];
|
|
60
|
+
const NO_OPERATIONS = '_No module here registers an operation._';
|
|
61
|
+
const UNKNOWN_LINE = /^Operations not readable for (.+): registered as a bare manifest, so its operations are not known here\.$/m;
|
|
62
|
+
/**
|
|
63
|
+
* The modules whose operations the section says are NOT known (#2384): each registered as a bare
|
|
64
|
+
* manifest, with no operation map to read. Sorted; empty when the line is absent. Shared by both
|
|
65
|
+
* readers, like {@link operationsTableProblem}.
|
|
66
|
+
*/
|
|
67
|
+
export function operationsUnknownFor(section) {
|
|
68
|
+
const m = UNKNOWN_LINE.exec(section);
|
|
69
|
+
return m ? [...m[1].matchAll(/`([^`]+)`/g)].map((x) => x[1]).sort() : [];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Why an Operations section's table is not the one `lint:permissions` writes, or `undefined` when
|
|
73
|
+
* it is (#2384). `section` is the text under the heading. The ONE judgement both readers make —
|
|
74
|
+
* this package's `parsePermissions` and the CLI's bump classifier — so `substrat plan` never renders
|
|
75
|
+
* a table the classifier ranks major as unreadable.
|
|
76
|
+
*/
|
|
77
|
+
export function operationsTableProblem(section) {
|
|
78
|
+
const lines = section.split('\n').map((l) => l.trim()).filter((l) => l.startsWith('|'));
|
|
79
|
+
if (lines.length === 0) {
|
|
80
|
+
if (section.includes(NO_OPERATIONS) || operationsUnknownFor(section).length > 0)
|
|
81
|
+
return undefined;
|
|
82
|
+
return 'no table, and no line saying there are no operations or whose are not known';
|
|
83
|
+
}
|
|
84
|
+
const split = (l) => l.replace(/^\|/, '').replace(/(?<!\\)\|$/, '').split(/(?<!\\)\|/).map((c) => c.trim());
|
|
85
|
+
const header = split(lines[0]);
|
|
86
|
+
if (header.join('|') !== OPERATIONS_HEADER.join('|'))
|
|
87
|
+
return `its header is not | ${OPERATIONS_HEADER.join(' | ')} |`;
|
|
88
|
+
if (lines.length < 2 || !split(lines[1]).every((c) => /^:?-+:?$/.test(c)))
|
|
89
|
+
return 'its header has no separator row';
|
|
90
|
+
const bad = lines.slice(2).find((l) => split(l).length !== OPERATIONS_HEADER.length);
|
|
91
|
+
if (bad !== undefined)
|
|
92
|
+
return `a row has ${split(bad).length} cells, not ${OPERATIONS_HEADER.length}`;
|
|
93
|
+
if (lines.length === 2)
|
|
94
|
+
return 'its table has no rows';
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
/** The text under the `## <n>. <title>` heading, up to the next `## `; `undefined` when absent. */
|
|
98
|
+
function sectionUnder(md, title) {
|
|
99
|
+
const lines = md.split('\n');
|
|
100
|
+
const at = lines.findIndex((l) => new RegExp(`^## \\d+\\.\\s+${title}\\b`).test(l));
|
|
101
|
+
if (at < 0)
|
|
102
|
+
return undefined;
|
|
103
|
+
const end = lines.findIndex((l, i) => i > at && l.startsWith('## '));
|
|
104
|
+
return lines.slice(at + 1, end < 0 ? undefined : end).join('\n');
|
|
105
|
+
}
|
|
106
|
+
const unquote = (s) => s.replace(/`/g, '');
|
|
107
|
+
const keysOf = (cell) => cell
|
|
108
|
+
.split(',')
|
|
109
|
+
.map((k) => unquote(k).trim())
|
|
110
|
+
.filter((k) => k !== '' && !k.startsWith('—'));
|
|
111
|
+
/**
|
|
112
|
+
* Read the registry (§1), roles (§2) and entity-narrowed grant shapes (§4) out of a
|
|
113
|
+
* `PERMISSIONS.md`. That file is `lint:permissions`' artifact of record, CI-gated against the
|
|
114
|
+
* running code, so reading it keeps this package free of the verticals it describes.
|
|
115
|
+
*/
|
|
116
|
+
export function parsePermissions(md) {
|
|
117
|
+
const registry = tableUnder(md, 'Registry');
|
|
118
|
+
const roleRows = tableUnder(md, 'Roles');
|
|
119
|
+
if ((registry === undefined || roleRows === undefined) && !/^## No permission surface/m.test(md)) {
|
|
120
|
+
throw new PermissionsFormatError(`PERMISSIONS.md has no "${registry === undefined ? 'Registry' : 'Roles'}" section — regenerate it with \`pnpm lint:permissions\``);
|
|
121
|
+
}
|
|
122
|
+
const descriptions = new Map();
|
|
123
|
+
for (const [key, description] of registry ?? []) {
|
|
124
|
+
if (key && description)
|
|
125
|
+
descriptions.set(unquote(key), description);
|
|
126
|
+
}
|
|
127
|
+
const roles = (roleRows ?? [])
|
|
128
|
+
.map(([role, keys]) => ({ role: unquote(role ?? ''), keys: keysOf(keys ?? '') }))
|
|
129
|
+
.filter((r) => r.role !== '');
|
|
130
|
+
const entityGrants = (tableUnder(md, 'Entity-narrowed grant shapes') ?? [])
|
|
131
|
+
.map(([entityType, keys]) => ({ entityType: unquote(entityType ?? ''), keys: keysOf(keys ?? '') }))
|
|
132
|
+
.filter((g) => g.entityType !== '');
|
|
133
|
+
const opSection = sectionUnder(md, 'Operations');
|
|
134
|
+
const operationsUnreadable = opSection === undefined ? undefined : operationsTableProblem(opSection);
|
|
135
|
+
if (operationsUnreadable !== undefined)
|
|
136
|
+
return { roles, entityGrants, descriptions, operationsUnreadable };
|
|
137
|
+
const opRows = tableUnder(md, 'Operations');
|
|
138
|
+
const operations = opRows === undefined
|
|
139
|
+
? undefined
|
|
140
|
+
: new Map(opRows
|
|
141
|
+
// A row an older kernel's binder left "not readable" says nothing about the operation:
|
|
142
|
+
// left out, as if unlisted, rather than read as "not declared".
|
|
143
|
+
.filter(([op, keys = '']) => op !== undefined && op.startsWith('`') && !/not readable/.test(keys))
|
|
144
|
+
.map(([op, keys = '', checkedOn = '']) => {
|
|
145
|
+
// A cell of prose ("— checked in code, not declared —") names no key; its commas are not a list.
|
|
146
|
+
const prose = keys.trim().startsWith('—');
|
|
147
|
+
return [unquote(op ?? ''), { keys: prose ? [] : keysOf(keys), checkedOn, declared: !/not declared/.test(keys) }];
|
|
148
|
+
}));
|
|
149
|
+
return {
|
|
150
|
+
roles,
|
|
151
|
+
entityGrants,
|
|
152
|
+
descriptions,
|
|
153
|
+
...(operations === undefined ? {} : { operations, operationsUnknownFor: operationsUnknownFor(opSection ?? '') }),
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
const bySort = (xs, by) => [...xs].sort((a, b) => (by(a) < by(b) ? -1 : by(a) > by(b) ? 1 : 0));
|
|
157
|
+
const escapeCell = (s) => s.replace(/\|/g, '\\|').replace(/\n/g, ' ');
|
|
158
|
+
function renderKeys(keys, descriptions) {
|
|
159
|
+
if (keys.length === 0)
|
|
160
|
+
return '—';
|
|
161
|
+
return bySort(keys, (k) => k)
|
|
162
|
+
.map((k) => {
|
|
163
|
+
const d = descriptions.get(k);
|
|
164
|
+
return d ? `\`${k}\` — ${escapeCell(d)}` : `\`${k}\``;
|
|
165
|
+
})
|
|
166
|
+
.join('<br>');
|
|
167
|
+
}
|
|
168
|
+
function renderRoles({ permissionsMd }) {
|
|
169
|
+
if (permissionsMd === undefined) {
|
|
170
|
+
return '_No `PERMISSIONS.md` beside `model.json`, so no roles are listed. A vertical in the Substrat repository gets one from `pnpm lint:permissions`; a scaffolded project has no such command yet, so describe its roles in prose until it has._';
|
|
171
|
+
}
|
|
172
|
+
const view = parsePermissions(permissionsMd);
|
|
173
|
+
const out = [];
|
|
174
|
+
if (view.roles.length === 0) {
|
|
175
|
+
out.push('_No roles are defined._');
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
out.push('| Role | What they can do |', '| --- | --- |');
|
|
179
|
+
for (const r of bySort(view.roles, (x) => x.role)) {
|
|
180
|
+
out.push(`| \`${r.role}\` | ${renderKeys(r.keys, view.descriptions)} |`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
if (view.entityGrants.length > 0) {
|
|
184
|
+
out.push('', 'Shared one record at a time, without a role:', '', '| Record | What the person it is shared with can do |', '| --- | --- |');
|
|
185
|
+
for (const g of bySort(view.entityGrants, (x) => x.entityType)) {
|
|
186
|
+
out.push(`| \`${g.entityType}\` | ${renderKeys(g.keys, view.descriptions)} |`);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return out.join('\n');
|
|
190
|
+
}
|
|
191
|
+
/** A JSON Schema property's type, as an ER diagram attribute type (a single word). */
|
|
192
|
+
function attributeType(schema) {
|
|
193
|
+
const s = (schema ?? {});
|
|
194
|
+
const types = new Set();
|
|
195
|
+
if (typeof s.type === 'string')
|
|
196
|
+
types.add(s.type);
|
|
197
|
+
if (Array.isArray(s.anyOf)) {
|
|
198
|
+
for (const branch of s.anyOf) {
|
|
199
|
+
const t = branch?.type;
|
|
200
|
+
if (typeof t === 'string' && t !== 'null')
|
|
201
|
+
types.add(t);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
if (types.size !== 1)
|
|
205
|
+
return 'json';
|
|
206
|
+
const [t] = [...types];
|
|
207
|
+
return t === 'integer' ? 'number' : t === 'array' || t === 'object' ? 'json' : (t ?? 'json');
|
|
208
|
+
}
|
|
209
|
+
/** Mermaid's escape for a double quote inside a quoted label. */
|
|
210
|
+
const label = (text) => `"${text.replace(/"/g, '#quot;').replace(/\s+/g, ' ')}"`;
|
|
211
|
+
const PLAIN_ATTRIBUTE = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
212
|
+
const ATTRIBUTE_KEYWORD = /^(PK|FK|UK)$/i;
|
|
213
|
+
/**
|
|
214
|
+
* An id Mermaid accepts for each field, distinct within the entity. A field that is already a
|
|
215
|
+
* plain word keeps its name (claimed first, so no other field can take it); the rest are made
|
|
216
|
+
* into words and suffixed `_2`, `_3`… on a clash, in sorted order so the result is stable. The
|
|
217
|
+
* real name rides along as the attribute's quoted comment whenever the id differs from it.
|
|
218
|
+
*/
|
|
219
|
+
function attributeNames(fields) {
|
|
220
|
+
const out = new Map();
|
|
221
|
+
const taken = new Set();
|
|
222
|
+
const sorted = [...fields].sort();
|
|
223
|
+
for (const f of sorted) {
|
|
224
|
+
if (PLAIN_ATTRIBUTE.test(f) && !ATTRIBUTE_KEYWORD.test(f)) {
|
|
225
|
+
out.set(f, f);
|
|
226
|
+
taken.add(f);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
for (const f of sorted) {
|
|
230
|
+
if (out.has(f))
|
|
231
|
+
continue;
|
|
232
|
+
let base = f.replace(/[^A-Za-z0-9_]/g, '_');
|
|
233
|
+
if (!/^[A-Za-z_]/.test(base))
|
|
234
|
+
base = `f_${base}`;
|
|
235
|
+
if (ATTRIBUTE_KEYWORD.test(base))
|
|
236
|
+
base = `${base}_`;
|
|
237
|
+
let id = base;
|
|
238
|
+
for (let n = 2; taken.has(id); n++)
|
|
239
|
+
id = `${base}_${n}`;
|
|
240
|
+
out.set(f, id);
|
|
241
|
+
taken.add(id);
|
|
242
|
+
}
|
|
243
|
+
return out;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* The entity model as a Mermaid `erDiagram` block — the `entities` region of a concept document,
|
|
247
|
+
* and each side of `substrat plan`'s before/after view, so both read with one alias scheme.
|
|
248
|
+
*/
|
|
249
|
+
export function entityDiagram(model) {
|
|
250
|
+
const names = Object.keys(model.entities).sort();
|
|
251
|
+
if (names.length === 0)
|
|
252
|
+
return '_No entities are declared._';
|
|
253
|
+
// Every box is an alias with the real name as its label, so a name with a hyphen, a space or a
|
|
254
|
+
// quote — or one Mermaid reads as a key word — is still the diagram that was meant.
|
|
255
|
+
const known = new Set(names);
|
|
256
|
+
const parents = new Set();
|
|
257
|
+
for (const name of names)
|
|
258
|
+
for (const p of model.entities[name]?.parents ?? [])
|
|
259
|
+
if (!known.has(p))
|
|
260
|
+
parents.add(p);
|
|
261
|
+
const alias = new Map([...names, ...[...parents].sort()].map((n, i) => [n, `e${i + 1}`]));
|
|
262
|
+
const edges = [];
|
|
263
|
+
const nodes = [];
|
|
264
|
+
for (const name of names) {
|
|
265
|
+
const e = model.entities[name];
|
|
266
|
+
if (!e)
|
|
267
|
+
continue;
|
|
268
|
+
for (const parent of [...(e.parents ?? [])].sort())
|
|
269
|
+
edges.push(` ${alias.get(parent)} ||--o{ ${alias.get(name)} : has`);
|
|
270
|
+
const props = (e.fields.properties ?? {});
|
|
271
|
+
const pk = new Set(e.primaryKey ?? ['id']);
|
|
272
|
+
const ids = attributeNames(Object.keys(props));
|
|
273
|
+
const attrs = [...ids.keys()].sort().map((f) => {
|
|
274
|
+
const id = ids.get(f);
|
|
275
|
+
return ` ${attributeType(props[f])} ${id}${pk.has(f) ? ' PK' : ''}${id === f ? '' : ` ${label(f)}`}`;
|
|
276
|
+
});
|
|
277
|
+
nodes.push(` ${alias.get(name)}[${label(name)}] {`, ...attrs, ' }');
|
|
278
|
+
}
|
|
279
|
+
// A parent no entity declares (the platform's `owner`, say) still gets its edge, as a bare box.
|
|
280
|
+
for (const x of [...parents].sort())
|
|
281
|
+
nodes.push(` ${alias.get(x)}[${label(x)}] {`, ' }');
|
|
282
|
+
return ['```mermaid', 'erDiagram', ...edges, ...nodes, '```'].join('\n');
|
|
283
|
+
}
|
|
284
|
+
/** One declared lifecycle as a `### <entity>` heading over a Mermaid `stateDiagram-v2` block. */
|
|
285
|
+
export function lifecycleDiagram(entity, lc) {
|
|
286
|
+
const states = lc.states;
|
|
287
|
+
// A state is any value of the field's enum, so its spelling is not Mermaid's to restrict:
|
|
288
|
+
// `in-progress` is a parse error as an id. Each is declared once, as an alias with its name as the label.
|
|
289
|
+
const names = [...new Set([lc.initial, ...Object.keys(states), ...Object.values(states).flatMap((d) => Object.values(d.on ?? {}))])].sort();
|
|
290
|
+
const id = new Map(names.map((n, i) => [n, `s${i + 1}`]));
|
|
291
|
+
const lines = ['stateDiagram-v2', ...names.map((n) => ` state ${label(n)} as ${id.get(n)}`), ` [*] --> ${id.get(lc.initial)}`];
|
|
292
|
+
for (const state of Object.keys(states).sort()) {
|
|
293
|
+
const def = states[state] ?? {};
|
|
294
|
+
const targets = Object.entries(def.on ?? {}).sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));
|
|
295
|
+
for (const [op, target] of targets)
|
|
296
|
+
lines.push(` ${id.get(state)} --> ${id.get(target)} : ${op.replace(/\s+/g, ' ')}`);
|
|
297
|
+
if (def.terminal || targets.length === 0)
|
|
298
|
+
lines.push(` ${id.get(state)} --> [*]`);
|
|
299
|
+
}
|
|
300
|
+
return [`### ${entity}`, '', `Moves through its \`${lc.field}\`.`, '', '```mermaid', ...lines, '```'].join('\n');
|
|
301
|
+
}
|
|
302
|
+
function renderProcesses({ model }) {
|
|
303
|
+
const lifecycles = model.lifecycles ?? {};
|
|
304
|
+
const entities = Object.keys(lifecycles).sort();
|
|
305
|
+
if (entities.length === 0)
|
|
306
|
+
return '_No lifecycle is declared: nothing here moves through stages._';
|
|
307
|
+
return entities
|
|
308
|
+
.map((entity) => {
|
|
309
|
+
const lc = lifecycles[entity];
|
|
310
|
+
return lc ? lifecycleDiagram(entity, lc) : '';
|
|
311
|
+
})
|
|
312
|
+
.join('\n\n');
|
|
313
|
+
}
|
|
314
|
+
const RENDER = {
|
|
315
|
+
roles: renderRoles,
|
|
316
|
+
entities: ({ model }) => entityDiagram(model),
|
|
317
|
+
processes: renderProcesses,
|
|
318
|
+
};
|
|
319
|
+
/** A concept document whose markers cannot be read: one region missing, doubled or mis-ordered. */
|
|
320
|
+
export class ConceptMarkerError extends Error {
|
|
321
|
+
}
|
|
322
|
+
/** Where a region's body sits in the text: between the end of its open marker and the start of its close. */
|
|
323
|
+
function regionOf(md, section) {
|
|
324
|
+
const o = open(section);
|
|
325
|
+
const c = close(section);
|
|
326
|
+
const from = md.indexOf(o);
|
|
327
|
+
if (from < 0)
|
|
328
|
+
throw new ConceptMarkerError(`no ${o} marker`);
|
|
329
|
+
if (md.indexOf(o, from + 1) >= 0)
|
|
330
|
+
throw new ConceptMarkerError(`${o} appears more than once`);
|
|
331
|
+
const to = md.indexOf(c, from);
|
|
332
|
+
if (to < 0)
|
|
333
|
+
throw new ConceptMarkerError(`${o} is never closed — add ${c} after it`);
|
|
334
|
+
return { from: from + o.length, to };
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Rewrite the generated regions of a concept document. Everything outside the markers is
|
|
338
|
+
* returned untouched, byte for byte. Throws {@link ConceptMarkerError} when a region is
|
|
339
|
+
* missing, doubled or unclosed — a sync that quietly skipped one would print green for a
|
|
340
|
+
* section it never wrote.
|
|
341
|
+
*/
|
|
342
|
+
export function syncConcept(markdown, inputs) {
|
|
343
|
+
let out = markdown;
|
|
344
|
+
for (const section of CONCEPT_SECTIONS) {
|
|
345
|
+
let region;
|
|
346
|
+
try {
|
|
347
|
+
region = regionOf(out, section);
|
|
348
|
+
}
|
|
349
|
+
catch (err) {
|
|
350
|
+
if (err instanceof ConceptMarkerError)
|
|
351
|
+
throw new ConceptMarkerError(`concept.md: ${err.message}`);
|
|
352
|
+
throw err;
|
|
353
|
+
}
|
|
354
|
+
out = `${out.slice(0, region.from)}\n\n${RENDER[section](inputs)}\n\n${out.slice(region.to)}`;
|
|
355
|
+
}
|
|
356
|
+
return out;
|
|
357
|
+
}
|
|
358
|
+
/** The `## …Decisions log…` section's text — what an author appends to on every model change. */
|
|
359
|
+
export function decisionsLog(markdown) {
|
|
360
|
+
const lines = markdown.split('\n');
|
|
361
|
+
const at = lines.findIndex((l) => /^##\s+(\d+\.\s*)?decisions log\b/i.test(l));
|
|
362
|
+
if (at < 0)
|
|
363
|
+
return undefined;
|
|
364
|
+
const end = lines.findIndex((l, i) => i > at && /^##\s/.test(l));
|
|
365
|
+
return lines.slice(at + 1, end < 0 ? undefined : end).join('\n');
|
|
366
|
+
}
|
|
367
|
+
//# sourceMappingURL=concept.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concept.js","sourceRoot":"","sources":["../src/concept.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -40,4 +40,5 @@ export declare function parseModel(parsed: unknown, sourceLabel: string): Emitte
|
|
|
40
40
|
export declare function layerDepths(entities: Record<string, EmittedEntity>): Map<string, number>;
|
|
41
41
|
/** Render the whole view. Pure — reading and writing files is the caller's half. */
|
|
42
42
|
export declare function renderModelHtml(model: EmittedModel, opts: ModelViewSource): string;
|
|
43
|
+
export * from './concept.js';
|
|
43
44
|
//# 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,OAAO,KAAK,EAAE,aAAa,EAAoB,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE7F;;;;;;;;;;;;GAYG;AAEH,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B;gFAC4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,YAAY,CA2D7E;AA+BD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAcxF;AAyND,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,GAAG,MAAM,CA8BlF"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAoB,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE7F;;;;;;;;;;;;GAYG;AAEH,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B;gFAC4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,YAAY,CA2D7E;AA+BD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAcxF;AAyND,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,GAAG,MAAM,CA8BlF;AACD,cAAc,cAAc,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":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@substrat-run/model-view",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Render an emitted Substrat model.json as one self-contained HTML page — the ER diagram, the entity cards, the declared lifecycles",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
"dist"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@substrat-run/contracts": "0.
|
|
25
|
+
"@substrat-run/contracts": "0.151.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/node": "^22.20.5",
|
|
29
29
|
"typescript": "^7.0.0",
|
|
30
|
-
"vitest": "^5.0.
|
|
30
|
+
"vitest": "^5.0.5"
|
|
31
31
|
},
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "public"
|