@diagrammo/dgmo 0.47.0 → 0.48.1
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/advanced.js +11 -11
- package/dist/auto.js +16 -16
- package/dist/auto.mjs +41 -12
- package/dist/block.js +4 -4
- package/dist/{chunk-FNB3PNGF.js → chunk-7DTWEFUE.js} +3 -3
- package/dist/{chunk-2DXMZRWJ.js → chunk-B65G5DNL.js} +8 -1
- package/dist/{chunk-RZCF2VVM.js → chunk-B7JUCQUA.js} +3 -1
- package/dist/{chunk-DU7W62N5.js → chunk-FANX6UJR.js} +3 -3
- package/dist/{chunk-6FZYCKXB.js → chunk-HSH73DP6.js} +2 -2
- package/dist/{chunk-P4RH4OSP.js → chunk-ILKORZ3H.js} +2 -2
- package/dist/{chunk-Y5QGVTVC.js → chunk-JTSMEYIZ.js} +7 -3
- package/dist/{chunk-RCERWOJR.js → chunk-ODZVHU3R.js} +1 -2
- package/dist/{chunk-DZAQBW35.js → chunk-SGZYXELT.js} +3 -7
- package/dist/{chunk-CUVHQHZ7.js → chunk-THXCFRTU.js} +3 -3
- package/dist/{chunk-IH6ZMVQ5.js → chunk-UC7TFHUM.js} +29 -11
- package/dist/{chunk-EMS2SK26.js → chunk-ZBWMSD5N.js} +3 -1
- package/dist/cli.cjs +15 -15
- package/dist/{dgmo-router-DZCIDUO5.js → dgmo-router-X35VLZLM.js} +3 -3
- package/dist/element.js +16 -16
- package/dist/element.mjs +41 -12
- package/dist/{flowchart-renderer-ZAEOL4DX.js → flowchart-renderer-SNDSII4D.js} +2 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +4 -4
- package/dist/{parser-FUSKFGZN.js → parser-2EWECDSA.js} +2 -2
- package/dist/{renderer-UWA5XS74.js → renderer-4JHRUBE6.js} +3 -3
- package/dist/{renderer-WZRREQ2P.js → renderer-5MYBMBYO.js} +2 -2
- package/dist/{renderer-TOCOVLHS.js → renderer-B2OMQIQG.js} +3 -3
- package/dist/{renderer-2XQQQ6QR.js → renderer-N43WR5GV.js} +3 -3
- package/dist/{renderer-T7YKC5VP.js → renderer-ZRNG54CW.js} +3 -3
- package/dist/{state-renderer-RFYHSP4K.js → state-renderer-B4DQBM6M.js} +2 -2
- package/package.json +23 -71
- package/dist/advanced.cjs +0 -71648
- package/dist/advanced.d.cts +0 -5719
- package/dist/auto.cjs +0 -70648
- package/dist/auto.d.cts +0 -54
- package/dist/block.cjs +0 -70208
- package/dist/block.d.cts +0 -115
- package/dist/editor.cjs +0 -526
- package/dist/editor.d.cts +0 -26
- package/dist/element.cjs +0 -70530
- package/dist/element.d.cts +0 -62
- package/dist/highlight.cjs +0 -852
- package/dist/highlight.d.cts +0 -49
- package/dist/index.cjs +0 -70491
- package/dist/index.d.cts +0 -160
- package/dist/pert.cjs +0 -325
- package/dist/pert.d.cts +0 -559
- package/dist/themes-1-CuKpeH.d.cts +0 -908
- package/src/advanced.ts +0 -873
- package/src/arc/parser.ts +0 -15
- package/src/arc/renderer.ts +0 -633
- package/src/auto/index.ts +0 -621
- package/src/auto/shared.ts +0 -370
- package/src/auto/styles.ts +0 -73
- package/src/block/layout.ts +0 -198
- package/src/block/parser.ts +0 -427
- package/src/block/renderer.ts +0 -484
- package/src/block/types.ts +0 -67
- package/src/boxes-and-lines/collapse.ts +0 -96
- package/src/boxes-and-lines/focus.ts +0 -257
- package/src/boxes-and-lines/label-placement.ts +0 -339
- package/src/boxes-and-lines/layout-grouped.ts +0 -912
- package/src/boxes-and-lines/layout-layered.ts +0 -722
- package/src/boxes-and-lines/layout-search.ts +0 -1678
- package/src/boxes-and-lines/layout.ts +0 -398
- package/src/boxes-and-lines/parser.ts +0 -1181
- package/src/boxes-and-lines/renderer.ts +0 -1465
- package/src/boxes-and-lines/types.ts +0 -66
- package/src/c4/layout.ts +0 -2441
- package/src/c4/parser.ts +0 -1158
- package/src/c4/renderer.ts +0 -2008
- package/src/c4/types.ts +0 -89
- package/src/chart-type-registry.ts +0 -529
- package/src/chart-types.ts +0 -225
- package/src/chart.ts +0 -685
- package/src/charts-d3/bar.ts +0 -338
- package/src/charts-d3/chord.ts +0 -140
- package/src/charts-d3/function.ts +0 -147
- package/src/charts-d3/funnel.ts +0 -104
- package/src/charts-d3/heatmap.ts +0 -145
- package/src/charts-d3/index.ts +0 -337
- package/src/charts-d3/interactions.ts +0 -477
- package/src/charts-d3/line.ts +0 -344
- package/src/charts-d3/mount.ts +0 -151
- package/src/charts-d3/pie.ts +0 -117
- package/src/charts-d3/polar.ts +0 -89
- package/src/charts-d3/radar.ts +0 -0
- package/src/charts-d3/sankey.ts +0 -0
- package/src/charts-d3/scatter.ts +0 -185
- package/src/charts-d3/shared.ts +0 -208
- package/src/class/layout.ts +0 -326
- package/src/class/parser.ts +0 -635
- package/src/class/renderer.ts +0 -793
- package/src/class/types.ts +0 -58
- package/src/cli-banner.ts +0 -106
- package/src/cli.ts +0 -1080
- package/src/colors-diagnostics.ts +0 -35
- package/src/colors.ts +0 -379
- package/src/completion-types.ts +0 -27
- package/src/completion.ts +0 -2668
- package/src/cycle/layout.ts +0 -1026
- package/src/cycle/parser.ts +0 -387
- package/src/cycle/renderer.ts +0 -653
- package/src/cycle/types.ts +0 -101
- package/src/d3.ts +0 -1434
- package/src/data-chart-parser.ts +0 -1007
- package/src/dgmo-router.ts +0 -296
- package/src/diagnostics-registry.ts +0 -108
- package/src/diagnostics.ts +0 -0
- package/src/dimensions.ts +0 -20
- package/src/directives-registry.ts +0 -396
- package/src/editor/dgmo.grammar +0 -76
- package/src/editor/dgmo.grammar.d.ts +0 -2
- package/src/editor/dgmo.grammar.js +0 -18
- package/src/editor/dgmo.grammar.terms.d.ts +0 -5
- package/src/editor/dgmo.grammar.terms.js +0 -35
- package/src/editor/highlight-api.ts +0 -596
- package/src/editor/highlight.ts +0 -36
- package/src/editor/index.ts +0 -27
- package/src/editor/keywords.ts +0 -128
- package/src/editor/tokens.ts +0 -30
- package/src/element/index.ts +0 -432
- package/src/embed/css.ts +0 -312
- package/src/embed/escape.ts +0 -15
- package/src/embed/index.ts +0 -280
- package/src/er/classify.ts +0 -228
- package/src/er/layout.ts +0 -530
- package/src/er/parser.ts +0 -750
- package/src/er/renderer.ts +0 -725
- package/src/er/types.ts +0 -52
- package/src/error-card.ts +0 -269
- package/src/event-line/diagnostics.ts +0 -117
- package/src/event-line/parser.ts +0 -643
- package/src/event-line/renderer.ts +0 -1742
- package/src/event-line/types.ts +0 -74
- package/src/fonts.ts +0 -3
- package/src/gantt/calculator.ts +0 -979
- package/src/gantt/parser.ts +0 -1641
- package/src/gantt/renderer.ts +0 -3787
- package/src/gantt/resolver.ts +0 -172
- package/src/gantt/types.ts +0 -206
- package/src/graph/diagnostics.ts +0 -64
- package/src/graph/edge-spline.ts +0 -29
- package/src/graph/flowchart-parser.ts +0 -759
- package/src/graph/flowchart-renderer.ts +0 -817
- package/src/graph/layout.ts +0 -472
- package/src/graph/notes.ts +0 -21
- package/src/graph/state-collapse.ts +0 -78
- package/src/graph/state-parser.ts +0 -574
- package/src/graph/state-renderer.ts +0 -653
- package/src/graph/types.ts +0 -65
- package/src/index.ts +0 -261
- package/src/infra/compute.ts +0 -1385
- package/src/infra/layout.ts +0 -888
- package/src/infra/parser.ts +0 -1234
- package/src/infra/renderer.ts +0 -2534
- package/src/infra/roles.ts +0 -75
- package/src/infra/types.ts +0 -216
- package/src/infra/validation.ts +0 -201
- package/src/journey-map/layout.ts +0 -490
- package/src/journey-map/parser.ts +0 -557
- package/src/journey-map/renderer.ts +0 -1580
- package/src/journey-map/types.ts +0 -47
- package/src/kanban/mutations.ts +0 -175
- package/src/kanban/parser.ts +0 -509
- package/src/kanban/renderer.ts +0 -1449
- package/src/kanban/types.ts +0 -39
- package/src/label-layout.ts +0 -368
- package/src/map/colorize.ts +0 -54
- package/src/map/completion.ts +0 -316
- package/src/map/context-labels.ts +0 -609
- package/src/map/data/PROVENANCE.json +0 -1
- package/src/map/data/README.md +0 -40
- package/src/map/data/airport-collisions.json +0 -1
- package/src/map/data/airports.json +0 -1
- package/src/map/data/gazetteer.json +0 -1
- package/src/map/data/lakes.json +0 -1
- package/src/map/data/mountain-ranges.json +0 -1
- package/src/map/data/na-lakes.json +0 -1
- package/src/map/data/na-land.json +0 -1
- package/src/map/data/region-names.json +0 -1
- package/src/map/data/rivers.json +0 -1
- package/src/map/data/types.ts +0 -121
- package/src/map/data/us-states.json +0 -1
- package/src/map/data/water-bodies.json +0 -1
- package/src/map/data/world-coarse.json +0 -1
- package/src/map/data/world-detail.json +0 -1
- package/src/map/diagnostics.ts +0 -134
- package/src/map/dimensions.ts +0 -150
- package/src/map/geo-query.ts +0 -295
- package/src/map/geo.ts +0 -438
- package/src/map/invert.ts +0 -111
- package/src/map/layout.ts +0 -5069
- package/src/map/legend-band.ts +0 -127
- package/src/map/load-data.ts +0 -186
- package/src/map/parser.ts +0 -783
- package/src/map/renderer.ts +0 -1445
- package/src/map/resolved-types.ts +0 -160
- package/src/map/resolver.ts +0 -1146
- package/src/map/types.ts +0 -194
- package/src/mindmap/collapse.ts +0 -67
- package/src/mindmap/layout.ts +0 -649
- package/src/mindmap/parser.ts +0 -430
- package/src/mindmap/renderer.ts +0 -637
- package/src/mindmap/text-wrap.ts +0 -218
- package/src/mindmap/types.ts +0 -56
- package/src/org/collapse.ts +0 -151
- package/src/org/layout.ts +0 -1262
- package/src/org/parser.ts +0 -519
- package/src/org/renderer.ts +0 -866
- package/src/org/resolver.ts +0 -636
- package/src/palettes/atlas.ts +0 -77
- package/src/palettes/blueprint.ts +0 -73
- package/src/palettes/catppuccin.ts +0 -84
- package/src/palettes/color-utils.ts +0 -443
- package/src/palettes/index.ts +0 -67
- package/src/palettes/nord.ts +0 -67
- package/src/palettes/registry.ts +0 -114
- package/src/palettes/slate.ts +0 -73
- package/src/palettes/tidewater.ts +0 -73
- package/src/palettes/tokyo-night.ts +0 -86
- package/src/palettes/types.ts +0 -88
- package/src/pert/analyzer.ts +0 -1183
- package/src/pert/diagnostics.ts +0 -110
- package/src/pert/index.ts +0 -43
- package/src/pert/internal.ts +0 -252
- package/src/pert/layout.ts +0 -971
- package/src/pert/monte-carlo.ts +0 -446
- package/src/pert/parser.ts +0 -1606
- package/src/pert/renderer.ts +0 -4009
- package/src/pert/share-normalize.ts +0 -62
- package/src/pert/types.ts +0 -604
- package/src/pyramid/parser.ts +0 -185
- package/src/pyramid/renderer.ts +0 -768
- package/src/pyramid/types.ts +0 -28
- package/src/quadrant/parser.ts +0 -18
- package/src/quadrant/renderer.ts +0 -638
- package/src/raci/diagnostics.ts +0 -213
- package/src/raci/index.ts +0 -23
- package/src/raci/mutations.ts +0 -321
- package/src/raci/parser.ts +0 -699
- package/src/raci/renderer.ts +0 -1627
- package/src/raci/types.ts +0 -82
- package/src/raci/variants.ts +0 -320
- package/src/render.ts +0 -268
- package/src/ring/parser.ts +0 -212
- package/src/ring/renderer.ts +0 -490
- package/src/ring/types.ts +0 -27
- package/src/sequence/collapse.ts +0 -174
- package/src/sequence/parser.ts +0 -1596
- package/src/sequence/participant-inference.ts +0 -152
- package/src/sequence/renderer.ts +0 -3168
- package/src/sequence/tag-resolution.ts +0 -164
- package/src/sharing.ts +0 -211
- package/src/sitemap/collapse.ts +0 -100
- package/src/sitemap/layout.ts +0 -925
- package/src/sitemap/parser.ts +0 -755
- package/src/sitemap/renderer.ts +0 -828
- package/src/sitemap/types.ts +0 -42
- package/src/slope/parser.ts +0 -18
- package/src/slope/renderer.ts +0 -378
- package/src/swimlane/diagnostics.ts +0 -94
- package/src/swimlane/layout.ts +0 -597
- package/src/swimlane/parser.ts +0 -613
- package/src/swimlane/renderer.ts +0 -681
- package/src/swimlane/types.ts +0 -151
- package/src/tech-radar/interactive.ts +0 -1129
- package/src/tech-radar/layout.ts +0 -197
- package/src/tech-radar/parser.ts +0 -436
- package/src/tech-radar/renderer.ts +0 -1239
- package/src/tech-radar/shared.ts +0 -151
- package/src/tech-radar/types.ts +0 -86
- package/src/themes.ts +0 -22
- package/src/timeline/parser.ts +0 -472
- package/src/timeline/renderer.ts +0 -3024
- package/src/timeline/types.ts +0 -33
- package/src/timeline/viz-parser.ts +0 -21
- package/src/treemap/diagnostics.ts +0 -62
- package/src/treemap/layout-radial.ts +0 -233
- package/src/treemap/layout.ts +0 -189
- package/src/treemap/parser.ts +0 -463
- package/src/treemap/renderer-radial.ts +0 -438
- package/src/treemap/renderer.ts +0 -572
- package/src/treemap/treemap-shared.ts +0 -309
- package/src/treemap/types.ts +0 -60
- package/src/utils/arrow-markers.ts +0 -51
- package/src/utils/arrows-diagnostics.ts +0 -62
- package/src/utils/arrows.ts +0 -227
- package/src/utils/brand.ts +0 -61
- package/src/utils/card.ts +0 -183
- package/src/utils/collapse-engine/tree-edges.ts +0 -115
- package/src/utils/collapse-engine/tree.ts +0 -117
- package/src/utils/d3-helpers.ts +0 -219
- package/src/utils/d3-types.ts +0 -9
- package/src/utils/description-helpers.ts +0 -38
- package/src/utils/duration.ts +0 -312
- package/src/utils/export-container.ts +0 -41
- package/src/utils/expr-eval.ts +0 -27
- package/src/utils/fit-canvas.ts +0 -64
- package/src/utils/hover-styles.ts +0 -673
- package/src/utils/inline-markdown.ts +0 -96
- package/src/utils/legend-constants.ts +0 -48
- package/src/utils/legend-d3.ts +0 -618
- package/src/utils/legend-integration.ts +0 -107
- package/src/utils/legend-layout.ts +0 -776
- package/src/utils/legend-svg.ts +0 -214
- package/src/utils/legend-types.ts +0 -272
- package/src/utils/name-normalize.ts +0 -163
- package/src/utils/note-box/constants.ts +0 -25
- package/src/utils/note-box/index.ts +0 -11
- package/src/utils/note-box/metrics.ts +0 -90
- package/src/utils/note-box/svg.ts +0 -331
- package/src/utils/notes/bounds.ts +0 -30
- package/src/utils/notes/build.ts +0 -131
- package/src/utils/notes/index.ts +0 -18
- package/src/utils/notes/model.ts +0 -19
- package/src/utils/notes/parse.ts +0 -131
- package/src/utils/notes/place.ts +0 -177
- package/src/utils/notes/resolve.ts +0 -88
- package/src/utils/number-format.ts +0 -36
- package/src/utils/parsing.ts +0 -953
- package/src/utils/reserved-key-registry.ts +0 -239
- package/src/utils/safe-href.ts +0 -38
- package/src/utils/scaling.ts +0 -97
- package/src/utils/svg-embed.ts +0 -251
- package/src/utils/tag-groups.ts +0 -607
- package/src/utils/text-measure.ts +0 -122
- package/src/utils/time-ticks.ts +0 -253
- package/src/utils/title-constants.ts +0 -24
- package/src/utils/visual-conventions.ts +0 -61
- package/src/utils/wrapped-desc.ts +0 -87
- package/src/venn/parser.ts +0 -18
- package/src/venn/renderer.ts +0 -1047
- package/src/version-control/diagnostics.ts +0 -67
- package/src/version-control/parser.ts +0 -544
- package/src/version-control/renderer.ts +0 -724
- package/src/version-control/types.ts +0 -100
- package/src/visualizations/parse.ts +0 -1560
- package/src/visualizations/types.ts +0 -262
- package/src/wireframe/layout.ts +0 -479
- package/src/wireframe/parser.ts +0 -1114
- package/src/wireframe/renderer.ts +0 -1318
- package/src/wireframe/types.ts +0 -110
- package/src/wordcloud/parser.ts +0 -18
- package/src/wordcloud/renderer.ts +0 -357
package/dist/index.d.cts
DELETED
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import { ab as DiagnosticSpec, a as PaletteConfig, J as Theme, C as CompactViewState, D as DgmoError } from './themes-1-CuKpeH.cjs';
|
|
2
|
-
export { f as ChartTypeMeta, h as DgmoSeverity, ac as DiagnosticParams, ad as EmitOptions, j as Gazetteer, k as GazetteerEntry, l as MapCompletionOptions, M as MapData, o as MapLocationMatch, p as MapPlaceCompletion, s as MapRegionCompletion, P as PaletteColors, w as RegionName, x as RegionNames, N as chartTypes, O as completeMapPlaces, Q as completeMapRegions, ae as emit, X as formatDgmoError, _ as getPalette, a4 as palettes, af as resolvePaletteOrFallback, a8 as searchMapLocations, aa as themes, a5 as validate } from './themes-1-CuKpeH.cjs';
|
|
3
|
-
|
|
4
|
-
declare function getMinDimensions(content: string): {
|
|
5
|
-
width: number;
|
|
6
|
-
height: number;
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Make an SVG produced by `@diagrammo/dgmo`'s static `render()` suitable for
|
|
11
|
-
* responsive inline embedding in any host (Obsidian, remark/markdown, web
|
|
12
|
-
* pages):
|
|
13
|
-
*
|
|
14
|
-
* - dgmo renders diagrams inside a fixed export canvas (e.g.
|
|
15
|
-
* `viewBox="0 0 1200 800"`), with content often occupying only a fraction
|
|
16
|
-
* of it. We compute a tight content bounding box from element coordinates
|
|
17
|
-
* and set the root `viewBox` to bbox+padding, so the diagram's intrinsic
|
|
18
|
-
* aspect ratio matches its CONTENT — no dead space above/below or beside it.
|
|
19
|
-
* - Ensure the root `<svg>` has a `viewBox` so it scales responsively.
|
|
20
|
-
* - Strip fixed `width="N"` / `height="N"` so CSS (e.g. `width:100%;
|
|
21
|
-
* height:auto`, or an aspect-ratio derived from the tight viewBox) controls
|
|
22
|
-
* sizing.
|
|
23
|
-
* - Remove any inline `background:` from the root style so the page
|
|
24
|
-
* background shows through.
|
|
25
|
-
*
|
|
26
|
-
* This is intentionally a string transform, not a DOM `getBBox()` step: dgmo
|
|
27
|
-
* can dual-render light/dark SVGs where one is hidden by color-mode CSS, and
|
|
28
|
-
* `getBBox()` returns 0 for the hidden copy. Parsing coordinates from the
|
|
29
|
-
* markup measures both copies reliably and works server-side (Node).
|
|
30
|
-
*/
|
|
31
|
-
declare function normalizeSvgForEmbed(input: string): string;
|
|
32
|
-
/**
|
|
33
|
-
* Parse the content bounding box of a normalized embed SVG, if one can be
|
|
34
|
-
* derived. Returns `null` when no usable coordinates are found (e.g. an empty
|
|
35
|
-
* diagram). Useful for hosts that want to set an explicit `aspect-ratio` from
|
|
36
|
-
* the tight viewBox.
|
|
37
|
-
*/
|
|
38
|
-
declare function getEmbedSvgViewBox(svg: string): {
|
|
39
|
-
x: number;
|
|
40
|
-
y: number;
|
|
41
|
-
width: number;
|
|
42
|
-
height: number;
|
|
43
|
-
} | null;
|
|
44
|
-
|
|
45
|
-
interface MountD3Opts {
|
|
46
|
-
theme?: 'light' | 'dark' | 'transparent';
|
|
47
|
-
palette?: string;
|
|
48
|
-
/** Forwarded to the interaction adapter: source-line navigation on click. */
|
|
49
|
-
onNavigate?: (line: number) => void;
|
|
50
|
-
mutedColor?: string;
|
|
51
|
-
surface?: string;
|
|
52
|
-
text?: string;
|
|
53
|
-
}
|
|
54
|
-
interface MountedD3Chart {
|
|
55
|
-
/** Re-render with new content and/or theme/palette; re-attaches interactions. */
|
|
56
|
-
update: (content: string, opts?: Partial<MountD3Opts>) => Promise<void>;
|
|
57
|
-
/** Emphasize the chart element on the given source line (editor cursor sync);
|
|
58
|
-
* pass null to clear. */
|
|
59
|
-
highlight: (line: number | null) => void;
|
|
60
|
-
/** Tear down listeners + overlays and clear the container. */
|
|
61
|
-
destroy: () => void;
|
|
62
|
-
}
|
|
63
|
-
declare function mountD3DataChart(container: HTMLElement, content: string, opts?: MountD3Opts): MountedD3Chart;
|
|
64
|
-
|
|
65
|
-
interface DataChartInteractionOpts {
|
|
66
|
-
onNavigate?: (line: number) => void;
|
|
67
|
-
mutedColor?: string;
|
|
68
|
-
surface?: string;
|
|
69
|
-
text?: string;
|
|
70
|
-
}
|
|
71
|
-
interface DataChartController {
|
|
72
|
-
/** Remove all listeners + overlays. */
|
|
73
|
-
destroy: () => void;
|
|
74
|
-
/** Emphasize the chart element(s) on the given source line (editor cursor
|
|
75
|
-
* sync); pass null to clear. No-op while the pointer is actively hovering. */
|
|
76
|
-
highlight: (line: number | null) => void;
|
|
77
|
-
}
|
|
78
|
-
declare function attachDataChartInteractions(svg: SVGSVGElement, opts?: DataChartInteractionOpts): DataChartController;
|
|
79
|
-
|
|
80
|
-
/** All data-chart types the hand-built renderers currently cover. */
|
|
81
|
-
declare const D3_DATA_CHART_TYPES: Set<string>;
|
|
82
|
-
declare function supportsD3DataChart(type: string): boolean;
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* The full diagnostic catalog, sorted by code. Every coded diagnostic
|
|
86
|
-
* dgmo can emit — its severity, owning chart type, canonical message,
|
|
87
|
-
* fix hint, and a triggering example. This is the enumerable source of
|
|
88
|
-
* truth for the CLI `diagnostics` subcommand, the console error-review
|
|
89
|
-
* surface, MCP, and the language-spec catalog.
|
|
90
|
-
*/
|
|
91
|
-
declare function listDiagnosticCodes(): DiagnosticSpec[];
|
|
92
|
-
/** Look up a single spec by its code, or `undefined` if not cataloged. */
|
|
93
|
-
declare function getDiagnosticSpec(code: string): DiagnosticSpec | undefined;
|
|
94
|
-
|
|
95
|
-
interface RenderOptions {
|
|
96
|
-
theme?: Theme;
|
|
97
|
-
palette?: PaletteConfig;
|
|
98
|
-
/**
|
|
99
|
-
* How to handle parse errors:
|
|
100
|
-
* 'svg' — render an inline error SVG (default)
|
|
101
|
-
* 'silent' — return empty svg + diagnostics; caller handles UI
|
|
102
|
-
* 'throw' — throw an Error with the diagnostics
|
|
103
|
-
*/
|
|
104
|
-
onError?: 'svg' | 'silent' | 'throw';
|
|
105
|
-
/**
|
|
106
|
-
* Pre-applied interactive view state — collapsed sections/columns,
|
|
107
|
-
* active swimlane tag-group, etc. Used to render a specific view
|
|
108
|
-
* non-interactively (server-side render, share-link decode).
|
|
109
|
-
*/
|
|
110
|
-
viewState?: CompactViewState;
|
|
111
|
-
}
|
|
112
|
-
interface RenderResult {
|
|
113
|
-
svg: string;
|
|
114
|
-
diagnostics: DgmoError[];
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Render DGMO source to an SVG string.
|
|
118
|
-
*
|
|
119
|
-
* @example
|
|
120
|
-
* ```ts
|
|
121
|
-
* import { render, palettes, themes } from '@diagrammo/dgmo';
|
|
122
|
-
*
|
|
123
|
-
* const { svg } = await render(text, {
|
|
124
|
-
* palette: palettes.catppuccin,
|
|
125
|
-
* theme: themes.dark,
|
|
126
|
-
* });
|
|
127
|
-
* document.getElementById('chart').innerHTML = svg;
|
|
128
|
-
* ```
|
|
129
|
-
*/
|
|
130
|
-
declare function render(text: string, options?: RenderOptions): Promise<RenderResult>;
|
|
131
|
-
|
|
132
|
-
interface EncodeDiagramUrlOptions {
|
|
133
|
-
baseUrl?: string;
|
|
134
|
-
palette?: PaletteConfig;
|
|
135
|
-
theme?: Theme;
|
|
136
|
-
filename?: string;
|
|
137
|
-
/**
|
|
138
|
-
* Initial view state to embed in the URL — re-applied when the link is
|
|
139
|
-
* decoded so recipients open the diagram in the same configuration.
|
|
140
|
-
*/
|
|
141
|
-
viewState?: CompactViewState;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Encode DGMO text into a shareable URL. Returns null if the compressed
|
|
145
|
-
* payload exceeds the 8 KB URL limit.
|
|
146
|
-
*/
|
|
147
|
-
declare function encodeDiagramUrl(text: string, options?: EncodeDiagramUrlOptions): string | null;
|
|
148
|
-
interface DecodedDiagramUrl {
|
|
149
|
-
text: string;
|
|
150
|
-
palette?: PaletteConfig;
|
|
151
|
-
theme?: Theme;
|
|
152
|
-
filename?: string;
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Decode a share URL back into DGMO text plus optional palette/theme/filename.
|
|
156
|
-
* Returns null if the URL contains no valid DGMO payload.
|
|
157
|
-
*/
|
|
158
|
-
declare function decodeDiagramUrl(url: string): DecodedDiagramUrl | null;
|
|
159
|
-
|
|
160
|
-
export { CompactViewState, D3_DATA_CHART_TYPES, type DataChartInteractionOpts, type DecodedDiagramUrl, DgmoError, DiagnosticSpec, type EncodeDiagramUrlOptions, type MountD3Opts, type MountedD3Chart, PaletteConfig, type RenderOptions, type RenderResult, Theme, attachDataChartInteractions, decodeDiagramUrl, encodeDiagramUrl, getDiagnosticSpec, getEmbedSvgViewBox, getMinDimensions, listDiagnosticCodes, mountD3DataChart, normalizeSvgForEmbed, render, supportsD3DataChart };
|
package/dist/pert.cjs
DELETED
|
@@ -1,325 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/pert/index.ts
|
|
21
|
-
var pert_exports = {};
|
|
22
|
-
__export(pert_exports, {
|
|
23
|
-
buildSimulationContext: () => buildSimulationContext,
|
|
24
|
-
mulberry32: () => mulberry32,
|
|
25
|
-
sampleBetaPert: () => sampleBetaPert,
|
|
26
|
-
simulateCanonical: () => simulateCanonical,
|
|
27
|
-
simulateFast: () => simulateFast
|
|
28
|
-
});
|
|
29
|
-
module.exports = __toCommonJS(pert_exports);
|
|
30
|
-
|
|
31
|
-
// src/pert/internal.ts
|
|
32
|
-
var UNIT_TO_DAYS_LOCAL = {
|
|
33
|
-
min: 1 / (60 * 24),
|
|
34
|
-
h: 1 / 24,
|
|
35
|
-
d: 1,
|
|
36
|
-
bd: 1,
|
|
37
|
-
// PERT has no calendar; bd ≈ d for analytical purposes
|
|
38
|
-
w: 7,
|
|
39
|
-
m: 30,
|
|
40
|
-
q: 90,
|
|
41
|
-
y: 365,
|
|
42
|
-
s: 14
|
|
43
|
-
// sprint (14 calendar days) — not seconds
|
|
44
|
-
};
|
|
45
|
-
function unitToDays(unit) {
|
|
46
|
-
return UNIT_TO_DAYS_LOCAL[unit];
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// src/pert/monte-carlo.ts
|
|
50
|
-
function lagDays(lag) {
|
|
51
|
-
return lag === null ? 0 : lag.amount * unitToDays(lag.unit);
|
|
52
|
-
}
|
|
53
|
-
function mulberry32(seed) {
|
|
54
|
-
let s = seed >>> 0;
|
|
55
|
-
return () => {
|
|
56
|
-
s = s + 1831565813 >>> 0;
|
|
57
|
-
let t = s;
|
|
58
|
-
t = Math.imul(t ^ t >>> 15, t | 1);
|
|
59
|
-
t ^= t + Math.imul(t ^ t >>> 7, t | 61);
|
|
60
|
-
return ((t ^ t >>> 14) >>> 0) / 4294967296;
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
function standardNormal(rng) {
|
|
64
|
-
let u = 0;
|
|
65
|
-
let v = 0;
|
|
66
|
-
while (u === 0) u = rng();
|
|
67
|
-
while (v === 0) v = rng();
|
|
68
|
-
return Math.sqrt(-2 * Math.log(u)) * Math.cos(2 * Math.PI * v);
|
|
69
|
-
}
|
|
70
|
-
function gamma(shape, rng) {
|
|
71
|
-
if (shape < 1) {
|
|
72
|
-
const u = rng();
|
|
73
|
-
return gamma(shape + 1, rng) * Math.pow(u, 1 / shape);
|
|
74
|
-
}
|
|
75
|
-
const d = shape - 1 / 3;
|
|
76
|
-
const c = 1 / Math.sqrt(9 * d);
|
|
77
|
-
while (true) {
|
|
78
|
-
let x;
|
|
79
|
-
let v;
|
|
80
|
-
do {
|
|
81
|
-
x = standardNormal(rng);
|
|
82
|
-
v = 1 + c * x;
|
|
83
|
-
} while (v <= 0);
|
|
84
|
-
v = v * v * v;
|
|
85
|
-
const u = rng();
|
|
86
|
-
if (u < 1 - 0.0331 * x * x * x * x) return d * v;
|
|
87
|
-
if (Math.log(u) < x * x / 2 + d * (1 - v + Math.log(v))) return d * v;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
function sampleBeta(alpha, beta, rng) {
|
|
91
|
-
const x = gamma(alpha, rng);
|
|
92
|
-
const y = gamma(beta, rng);
|
|
93
|
-
return x / (x + y);
|
|
94
|
-
}
|
|
95
|
-
function sampleBetaPert(o, m, p, rng) {
|
|
96
|
-
if (o === p) return m;
|
|
97
|
-
const range = p - o;
|
|
98
|
-
const alpha = 1 + 4 * (m - o) / range;
|
|
99
|
-
const beta = 1 + 4 * (p - m) / range;
|
|
100
|
-
return o + sampleBeta(alpha, beta, rng) * range;
|
|
101
|
-
}
|
|
102
|
-
function simulate(resolved, expanded, _predecessors, _successors, topo, terminals, poisoned, opts) {
|
|
103
|
-
const rng = mulberry32(opts.seed);
|
|
104
|
-
const expById = /* @__PURE__ */ new Map();
|
|
105
|
-
for (const e of expanded) expById.set(e.id, e);
|
|
106
|
-
const completionTimes = new Array(opts.trials);
|
|
107
|
-
const criticalityCount = /* @__PURE__ */ new Map();
|
|
108
|
-
for (const id of topo) criticalityCount.set(id, 0);
|
|
109
|
-
const pathCount = /* @__PURE__ */ new Map();
|
|
110
|
-
const pathById = /* @__PURE__ */ new Map();
|
|
111
|
-
const incomingEdges = /* @__PURE__ */ new Map();
|
|
112
|
-
for (const id of topo) incomingEdges.set(id, []);
|
|
113
|
-
for (const e of resolved.edges) incomingEdges.get(e.target)?.push(e);
|
|
114
|
-
const es = /* @__PURE__ */ new Map();
|
|
115
|
-
const ef = /* @__PURE__ */ new Map();
|
|
116
|
-
const predOnLongestPath = /* @__PURE__ */ new Map();
|
|
117
|
-
for (let trial = 0; trial < opts.trials; trial++) {
|
|
118
|
-
for (const id of topo) {
|
|
119
|
-
const exp = expById.get(id);
|
|
120
|
-
let duration;
|
|
121
|
-
if (!exp || poisoned.has(id)) {
|
|
122
|
-
duration = 0;
|
|
123
|
-
} else if (exp.o === exp.p) {
|
|
124
|
-
duration = exp.m;
|
|
125
|
-
} else {
|
|
126
|
-
duration = sampleBetaPert(exp.o, exp.m, exp.p, rng);
|
|
127
|
-
}
|
|
128
|
-
let esLower = 0;
|
|
129
|
-
let efLower = -Infinity;
|
|
130
|
-
let bestPred = null;
|
|
131
|
-
let bestPredVal = -Infinity;
|
|
132
|
-
for (const edge of incomingEdges.get(id) ?? []) {
|
|
133
|
-
const aEs = es.get(edge.source) ?? 0;
|
|
134
|
-
const aEf = ef.get(edge.source) ?? 0;
|
|
135
|
-
const lag = lagDays(edge.lag);
|
|
136
|
-
let candES = -Infinity;
|
|
137
|
-
let candEF = -Infinity;
|
|
138
|
-
switch (edge.type) {
|
|
139
|
-
case "FS":
|
|
140
|
-
candES = aEf + lag;
|
|
141
|
-
break;
|
|
142
|
-
case "SS":
|
|
143
|
-
candES = aEs + lag;
|
|
144
|
-
break;
|
|
145
|
-
case "FF":
|
|
146
|
-
candEF = aEf + lag;
|
|
147
|
-
break;
|
|
148
|
-
case "SF":
|
|
149
|
-
candEF = aEs + lag;
|
|
150
|
-
break;
|
|
151
|
-
}
|
|
152
|
-
if (candES > esLower) esLower = candES;
|
|
153
|
-
if (candEF > efLower) efLower = candEF;
|
|
154
|
-
const contribution = Math.max(candES, candEF - duration);
|
|
155
|
-
if (contribution > bestPredVal) {
|
|
156
|
-
bestPredVal = contribution;
|
|
157
|
-
bestPred = edge.source;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
let esVal = esLower;
|
|
161
|
-
let efVal = esVal + duration;
|
|
162
|
-
if (efLower > efVal) {
|
|
163
|
-
efVal = efLower;
|
|
164
|
-
esVal = efVal - duration;
|
|
165
|
-
}
|
|
166
|
-
es.set(id, esVal);
|
|
167
|
-
ef.set(id, efVal);
|
|
168
|
-
predOnLongestPath.set(id, bestPred);
|
|
169
|
-
}
|
|
170
|
-
let endEf = 0;
|
|
171
|
-
let endId = terminals[0] ?? null;
|
|
172
|
-
for (const id of topo) {
|
|
173
|
-
const e = ef.get(id) ?? 0;
|
|
174
|
-
if (e > endEf) {
|
|
175
|
-
endEf = e;
|
|
176
|
-
endId = id;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
completionTimes[trial] = endEf;
|
|
180
|
-
if (endId !== null) {
|
|
181
|
-
const path = [];
|
|
182
|
-
let cur = endId;
|
|
183
|
-
while (cur !== null) {
|
|
184
|
-
path.unshift(cur);
|
|
185
|
-
criticalityCount.set(cur, (criticalityCount.get(cur) ?? 0) + 1);
|
|
186
|
-
cur = predOnLongestPath.get(cur) ?? null;
|
|
187
|
-
}
|
|
188
|
-
const key = path.join("\0");
|
|
189
|
-
pathCount.set(key, (pathCount.get(key) ?? 0) + 1);
|
|
190
|
-
if (!pathById.has(key)) pathById.set(key, path);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
completionTimes.sort((a, b) => a - b);
|
|
194
|
-
const pct = (frac) => {
|
|
195
|
-
const idx = Math.min(
|
|
196
|
-
completionTimes.length - 1,
|
|
197
|
-
Math.max(0, Math.floor(frac * completionTimes.length))
|
|
198
|
-
);
|
|
199
|
-
return completionTimes[idx] ?? 0;
|
|
200
|
-
};
|
|
201
|
-
const minDurationDays = completionTimes[0] ?? 0;
|
|
202
|
-
const maxDurationDays = completionTimes[completionTimes.length - 1] ?? 0;
|
|
203
|
-
let modalKey = "";
|
|
204
|
-
let modalCount = -1;
|
|
205
|
-
for (const [key, count] of pathCount) {
|
|
206
|
-
if (count > modalCount) {
|
|
207
|
-
modalCount = count;
|
|
208
|
-
modalKey = key;
|
|
209
|
-
} else if (count === modalCount) {
|
|
210
|
-
const a = pathById.get(modalKey) ?? [];
|
|
211
|
-
const b = pathById.get(key) ?? [];
|
|
212
|
-
const va = pathVariance(a, expById);
|
|
213
|
-
const vb = pathVariance(b, expById);
|
|
214
|
-
if (vb > va) {
|
|
215
|
-
modalKey = key;
|
|
216
|
-
} else if (vb === va && key.localeCompare(modalKey) < 0) {
|
|
217
|
-
modalKey = key;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
const criticalityByActivity = {};
|
|
222
|
-
for (const id of topo) {
|
|
223
|
-
criticalityByActivity[id] = (criticalityCount.get(id) ?? 0) / opts.trials;
|
|
224
|
-
}
|
|
225
|
-
return {
|
|
226
|
-
trials: opts.trials,
|
|
227
|
-
seed: opts.seed,
|
|
228
|
-
p50: pct(0.5),
|
|
229
|
-
p80: pct(0.8),
|
|
230
|
-
p95: pct(0.95),
|
|
231
|
-
p16: pct(0.16),
|
|
232
|
-
p84: pct(0.84),
|
|
233
|
-
criticalityByActivity,
|
|
234
|
-
modalCriticalPath: pathById.get(modalKey) ?? [],
|
|
235
|
-
// Analyzer populates this after MC returns by running the
|
|
236
|
-
// deterministic per-activity tornado pass. Empty here so the
|
|
237
|
-
// type contract is satisfied even in scrubber/fast paths that
|
|
238
|
-
// never compute swings.
|
|
239
|
-
tornadoSwings: [],
|
|
240
|
-
minDurationDays,
|
|
241
|
-
maxDurationDays
|
|
242
|
-
};
|
|
243
|
-
}
|
|
244
|
-
function pathVariance(path, expById) {
|
|
245
|
-
let sum = 0;
|
|
246
|
-
for (const id of path) {
|
|
247
|
-
const e = expById.get(id);
|
|
248
|
-
if (!e) continue;
|
|
249
|
-
const sigma = (e.p - e.o) / 6;
|
|
250
|
-
sum += sigma * sigma;
|
|
251
|
-
}
|
|
252
|
-
return sum;
|
|
253
|
-
}
|
|
254
|
-
function buildSimulationContext(resolved) {
|
|
255
|
-
const predecessors = /* @__PURE__ */ new Map();
|
|
256
|
-
const successors = /* @__PURE__ */ new Map();
|
|
257
|
-
for (const r of resolved.activities) {
|
|
258
|
-
predecessors.set(r.activity.id, []);
|
|
259
|
-
successors.set(r.activity.id, []);
|
|
260
|
-
}
|
|
261
|
-
for (const e of resolved.edges) {
|
|
262
|
-
successors.get(e.source)?.push(e.target);
|
|
263
|
-
predecessors.get(e.target)?.push(e.source);
|
|
264
|
-
}
|
|
265
|
-
const inDegree = /* @__PURE__ */ new Map();
|
|
266
|
-
for (const r of resolved.activities) {
|
|
267
|
-
inDegree.set(r.activity.id, predecessors.get(r.activity.id).length);
|
|
268
|
-
}
|
|
269
|
-
const queue = [];
|
|
270
|
-
for (const [id, deg] of inDegree) if (deg === 0) queue.push(id);
|
|
271
|
-
const topo = [];
|
|
272
|
-
while (queue.length > 0) {
|
|
273
|
-
const id = queue.shift();
|
|
274
|
-
topo.push(id);
|
|
275
|
-
for (const next of successors.get(id) ?? []) {
|
|
276
|
-
const deg = (inDegree.get(next) ?? 0) - 1;
|
|
277
|
-
inDegree.set(next, deg);
|
|
278
|
-
if (deg === 0) queue.push(next);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
const terminals = [];
|
|
282
|
-
for (const r of resolved.activities) {
|
|
283
|
-
if ((successors.get(r.activity.id) ?? []).length === 0) {
|
|
284
|
-
terminals.push(r.activity.id);
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
const poisoned = /* @__PURE__ */ new Set();
|
|
288
|
-
for (const r of resolved.activities) {
|
|
289
|
-
if (r.activity.duration === null) {
|
|
290
|
-
const stack = [r.activity.id];
|
|
291
|
-
while (stack.length > 0) {
|
|
292
|
-
const id = stack.pop();
|
|
293
|
-
if (poisoned.has(id)) continue;
|
|
294
|
-
poisoned.add(id);
|
|
295
|
-
for (const next of successors.get(id) ?? []) stack.push(next);
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
return { predecessors, successors, topo, terminals, poisoned };
|
|
300
|
-
}
|
|
301
|
-
function simulateCanonical(resolved, expanded, opts) {
|
|
302
|
-
const ctx = buildSimulationContext(resolved);
|
|
303
|
-
return simulate(
|
|
304
|
-
resolved,
|
|
305
|
-
expanded,
|
|
306
|
-
ctx.predecessors,
|
|
307
|
-
ctx.successors,
|
|
308
|
-
ctx.topo,
|
|
309
|
-
ctx.terminals,
|
|
310
|
-
ctx.poisoned,
|
|
311
|
-
{ trials: opts.trials, seed: opts.seed }
|
|
312
|
-
);
|
|
313
|
-
}
|
|
314
|
-
function simulateFast(resolved, expanded, opts) {
|
|
315
|
-
return simulateCanonical(resolved, expanded, opts);
|
|
316
|
-
}
|
|
317
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
318
|
-
0 && (module.exports = {
|
|
319
|
-
buildSimulationContext,
|
|
320
|
-
mulberry32,
|
|
321
|
-
sampleBetaPert,
|
|
322
|
-
simulateCanonical,
|
|
323
|
-
simulateFast
|
|
324
|
-
});
|
|
325
|
-
//# sourceMappingURL=pert.cjs.map
|