@diagrammo/dgmo 0.32.0 → 0.33.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 (57) hide show
  1. package/.cursorrules +7 -2
  2. package/.github/copilot-instructions.md +7 -2
  3. package/.windsurfrules +7 -2
  4. package/SKILL.md +7 -2
  5. package/dist/advanced.cjs +981 -170
  6. package/dist/advanced.d.cts +35 -1
  7. package/dist/advanced.d.ts +35 -1
  8. package/dist/advanced.js +980 -170
  9. package/dist/auto.cjs +915 -171
  10. package/dist/auto.js +93 -93
  11. package/dist/auto.mjs +915 -171
  12. package/dist/cli.cjs +136 -134
  13. package/dist/index.cjs +981 -170
  14. package/dist/index.d.cts +35 -1
  15. package/dist/index.d.ts +35 -1
  16. package/dist/index.js +980 -170
  17. package/docs/ai-integration.md +7 -2
  18. package/docs/language-reference.md +55 -24
  19. package/package.json +2 -2
  20. package/src/advanced.ts +6 -1
  21. package/src/boxes-and-lines/layout-grouped.ts +909 -0
  22. package/src/boxes-and-lines/layout-search.ts +18 -1
  23. package/src/boxes-and-lines/parser.ts +3 -2
  24. package/src/c4/layout.ts +2 -1
  25. package/src/c4/parser.ts +3 -2
  26. package/src/c4/renderer.ts +3 -2
  27. package/src/cli.ts +68 -0
  28. package/src/er/parser.ts +2 -1
  29. package/src/er/renderer.ts +2 -1
  30. package/src/gantt/parser.ts +3 -5
  31. package/src/gantt/renderer.ts +7 -6
  32. package/src/index.ts +6 -1
  33. package/src/infra/parser.ts +2 -1
  34. package/src/infra/renderer.ts +4 -3
  35. package/src/journey-map/parser.ts +27 -8
  36. package/src/journey-map/renderer.ts +26 -9
  37. package/src/kanban/parser.ts +4 -3
  38. package/src/kanban/renderer.ts +6 -5
  39. package/src/map/completion.ts +116 -0
  40. package/src/map/layout.ts +4 -3
  41. package/src/map/parser.ts +3 -2
  42. package/src/mindmap/parser.ts +4 -3
  43. package/src/mindmap/renderer.ts +2 -1
  44. package/src/org/layout.ts +3 -2
  45. package/src/org/parser.ts +3 -2
  46. package/src/org/renderer.ts +5 -4
  47. package/src/pert/parser.ts +3 -2
  48. package/src/sequence/renderer.ts +10 -12
  49. package/src/sequence/tag-resolution.ts +2 -1
  50. package/src/sitemap/layout.ts +3 -2
  51. package/src/sitemap/parser.ts +36 -2
  52. package/src/sitemap/renderer.ts +12 -6
  53. package/src/timeline/renderer.ts +4 -3
  54. package/src/utils/legend-d3.ts +4 -3
  55. package/src/utils/legend-svg.ts +3 -2
  56. package/src/utils/tag-groups.ts +28 -7
  57. package/src/visualizations/parse.ts +2 -1
package/dist/index.d.cts CHANGED
@@ -369,6 +369,40 @@ interface MapCompletionOptions {
369
369
  * Pure + deterministic. Empty/blank query → `[]` (the caller gates min length).
370
370
  */
371
371
  declare function completeMapPlaces(query: string, gazetteer: Gazetteer, opts?: MapCompletionOptions): MapPlaceCompletion[];
372
+ /** A POI search hit — a city or airport the resolver can resolve, with the
373
+ * exact `token` to paste into DGMO (a `poi`/route endpoint). Powers the CLI
374
+ * `dgmo map search` command and the MCP `lookup_map_location` tool, so authors
375
+ * (and AI agents) can DISCOVER valid place tokens instead of guessing — e.g.
376
+ * learn that "New York" must be `New York City` and that `JFK` is bundled. */
377
+ interface MapLocationMatch {
378
+ /** Canonical display name (cities) or full airport name. */
379
+ readonly name: string;
380
+ /** Exact text to use in DGMO. Cities: the name, ISO-qualified when ambiguous
381
+ * (`Portland US-OR`). Airports: the upper-case IATA code (`JFK`). */
382
+ readonly token: string;
383
+ readonly kind: 'city' | 'airport';
384
+ readonly iso: string;
385
+ readonly sub?: string;
386
+ /** City population (0 for airports). */
387
+ readonly pop: number;
388
+ /** Human detail, e.g. `US-OR · 652,503` or `Airport · John F Kennedy Intl`. */
389
+ readonly detail: string;
390
+ }
391
+ /**
392
+ * Substring-search cities + airports for a discovery surface (CLI / MCP), so an
393
+ * author can find the exact token the resolver expects. Unlike
394
+ * {@link completeMapPlaces} (prefix-only, editor type-ahead), this matches
395
+ * anywhere in a city name OR an airport code/name, so "york" finds
396
+ * `New York City` and "kennedy" finds `JFK`.
397
+ *
398
+ * Ranking: exact-name (or exact-IATA) → prefix → substring; within a tier,
399
+ * cities by population desc (deterministic index tie-break), cities before
400
+ * airports. Pure + deterministic. Empty query → `[]`.
401
+ */
402
+ declare function searchMapLocations(query: string, gazetteer: Gazetteer, opts?: {
403
+ readonly limit?: number;
404
+ readonly airports?: AirportData;
405
+ }): MapLocationMatch[];
372
406
  interface MapRegionCompletion {
373
407
  /** Display name = insert text (the resolver disambiguates cross-layer
374
408
  * collisions like Georgia by map scope, §24B.8). */
@@ -495,4 +529,4 @@ interface DecodedDiagramUrl {
495
529
  */
496
530
  declare function decodeDiagramUrl(url: string): DecodedDiagramUrl | null;
497
531
 
498
- export { type ChartTypeMeta, type CompactViewState, type DecodedDiagramUrl, type DgmoError, type DgmoSeverity, type EncodeDiagramUrlOptions, type Gazetteer, type GazetteerEntry, type MapCompletionOptions, type MapData, type MapPlaceCompletion, type MapRegionCompletion, type PaletteColors, type PaletteConfig, type RegionName, type RegionNames, type RenderOptions, type RenderResult, type Theme, chartTypes, completeMapPlaces, completeMapRegions, decodeDiagramUrl, encodeDiagramUrl, formatDgmoError, getEmbedSvgViewBox, getMinDimensions, getPalette, normalizeSvgForEmbed, palettes, render, resolvePaletteOrFallback, themes, parseDgmo as validate };
532
+ export { type ChartTypeMeta, type CompactViewState, type DecodedDiagramUrl, type DgmoError, type DgmoSeverity, type EncodeDiagramUrlOptions, type Gazetteer, type GazetteerEntry, type MapCompletionOptions, type MapData, type MapLocationMatch, type MapPlaceCompletion, type MapRegionCompletion, type PaletteColors, type PaletteConfig, type RegionName, type RegionNames, type RenderOptions, type RenderResult, type Theme, chartTypes, completeMapPlaces, completeMapRegions, decodeDiagramUrl, encodeDiagramUrl, formatDgmoError, getEmbedSvgViewBox, getMinDimensions, getPalette, normalizeSvgForEmbed, palettes, render, resolvePaletteOrFallback, searchMapLocations, themes, parseDgmo as validate };
package/dist/index.d.ts CHANGED
@@ -369,6 +369,40 @@ interface MapCompletionOptions {
369
369
  * Pure + deterministic. Empty/blank query → `[]` (the caller gates min length).
370
370
  */
371
371
  declare function completeMapPlaces(query: string, gazetteer: Gazetteer, opts?: MapCompletionOptions): MapPlaceCompletion[];
372
+ /** A POI search hit — a city or airport the resolver can resolve, with the
373
+ * exact `token` to paste into DGMO (a `poi`/route endpoint). Powers the CLI
374
+ * `dgmo map search` command and the MCP `lookup_map_location` tool, so authors
375
+ * (and AI agents) can DISCOVER valid place tokens instead of guessing — e.g.
376
+ * learn that "New York" must be `New York City` and that `JFK` is bundled. */
377
+ interface MapLocationMatch {
378
+ /** Canonical display name (cities) or full airport name. */
379
+ readonly name: string;
380
+ /** Exact text to use in DGMO. Cities: the name, ISO-qualified when ambiguous
381
+ * (`Portland US-OR`). Airports: the upper-case IATA code (`JFK`). */
382
+ readonly token: string;
383
+ readonly kind: 'city' | 'airport';
384
+ readonly iso: string;
385
+ readonly sub?: string;
386
+ /** City population (0 for airports). */
387
+ readonly pop: number;
388
+ /** Human detail, e.g. `US-OR · 652,503` or `Airport · John F Kennedy Intl`. */
389
+ readonly detail: string;
390
+ }
391
+ /**
392
+ * Substring-search cities + airports for a discovery surface (CLI / MCP), so an
393
+ * author can find the exact token the resolver expects. Unlike
394
+ * {@link completeMapPlaces} (prefix-only, editor type-ahead), this matches
395
+ * anywhere in a city name OR an airport code/name, so "york" finds
396
+ * `New York City` and "kennedy" finds `JFK`.
397
+ *
398
+ * Ranking: exact-name (or exact-IATA) → prefix → substring; within a tier,
399
+ * cities by population desc (deterministic index tie-break), cities before
400
+ * airports. Pure + deterministic. Empty query → `[]`.
401
+ */
402
+ declare function searchMapLocations(query: string, gazetteer: Gazetteer, opts?: {
403
+ readonly limit?: number;
404
+ readonly airports?: AirportData;
405
+ }): MapLocationMatch[];
372
406
  interface MapRegionCompletion {
373
407
  /** Display name = insert text (the resolver disambiguates cross-layer
374
408
  * collisions like Georgia by map scope, §24B.8). */
@@ -495,4 +529,4 @@ interface DecodedDiagramUrl {
495
529
  */
496
530
  declare function decodeDiagramUrl(url: string): DecodedDiagramUrl | null;
497
531
 
498
- export { type ChartTypeMeta, type CompactViewState, type DecodedDiagramUrl, type DgmoError, type DgmoSeverity, type EncodeDiagramUrlOptions, type Gazetteer, type GazetteerEntry, type MapCompletionOptions, type MapData, type MapPlaceCompletion, type MapRegionCompletion, type PaletteColors, type PaletteConfig, type RegionName, type RegionNames, type RenderOptions, type RenderResult, type Theme, chartTypes, completeMapPlaces, completeMapRegions, decodeDiagramUrl, encodeDiagramUrl, formatDgmoError, getEmbedSvgViewBox, getMinDimensions, getPalette, normalizeSvgForEmbed, palettes, render, resolvePaletteOrFallback, themes, parseDgmo as validate };
532
+ export { type ChartTypeMeta, type CompactViewState, type DecodedDiagramUrl, type DgmoError, type DgmoSeverity, type EncodeDiagramUrlOptions, type Gazetteer, type GazetteerEntry, type MapCompletionOptions, type MapData, type MapLocationMatch, type MapPlaceCompletion, type MapRegionCompletion, type PaletteColors, type PaletteConfig, type RegionName, type RegionNames, type RenderOptions, type RenderResult, type Theme, chartTypes, completeMapPlaces, completeMapRegions, decodeDiagramUrl, encodeDiagramUrl, formatDgmoError, getEmbedSvgViewBox, getMinDimensions, getPalette, normalizeSvgForEmbed, palettes, render, resolvePaletteOrFallback, searchMapLocations, themes, parseDgmo as validate };