@mp3wizard/figma-console-mcp 1.23.1 โ†’ 1.25.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/README.md CHANGED
@@ -788,7 +788,7 @@ The architecture supports adding new apps with minimal boilerplate โ€” each app
788
788
 
789
789
  ## ๐Ÿ›ค๏ธ Roadmap
790
790
 
791
- **Current Status:** v1.17.0 (Stable) - Production-ready with FigJam + Slides support, Cloud Write Relay, Design System Kit, WebSocket-only connectivity, smart multi-file tracking, 100+ tools, Comments API, and MCP Apps
791
+ **Current Status:** v1.23.0 (Stable) - Production-ready with version history & time-series awareness, FigJam + Slides support, Cloud Write Relay, Design System Kit, WebSocket-only connectivity, smart multi-file tracking, 100+ tools, Comments API, and MCP Apps
792
792
 
793
793
  **Recent Releases:**
794
794
  - [x] **v1.17.0** - Figma Slides Support: 15 new tools for managing presentations โ€” slides, transitions, content, reordering, and navigation. Inspired by Toni Haidamous (PR #11).
@@ -79,10 +79,15 @@ const MAX_SCAN_PAGES = 20;
79
79
  const FIGMA_PAGE_SIZE_MAX = 50;
80
80
  // Tool-level cap on max_versions; design brief ยง4.
81
81
  const MAX_VERSIONS_HARD_CAP = 200;
82
- // ============================================================================
83
- // Tool Registration
84
- // ============================================================================
85
- export function registerVersionTools(server, getFigmaAPI, getCurrentUrl, _options, getCurrentSelectedNodeIds) {
82
+ export function registerVersionTools(server, getFigmaAPI, getCurrentUrl, _options, getCurrentSelectedNodeIds,
83
+ /**
84
+ * v1.25.0: optional metadata-change buffer reader. When wired (local mode),
85
+ * the diff engine consults this to surface description/annotation edits
86
+ * that Figma REST doesn't expose. In cloud mode (no plugin buffer
87
+ * available), this stays undefined and the diff just doesn't surface
88
+ * those edits โ€” but scope_coverage still tells callers about the gap.
89
+ */
90
+ getMetadataChanges) {
86
91
  // Helper: read the current Figma selection as a list of node IDs, or null
87
92
  // if no selection getter is wired (cloud mode) or selection is empty.
88
93
  const readSelection = () => {
@@ -91,6 +96,13 @@ export function registerVersionTools(server, getFigmaAPI, getCurrentUrl, _option
91
96
  const ids = getCurrentSelectedNodeIds();
92
97
  return ids && ids.length > 0 ? ids : null;
93
98
  };
99
+ // v1.25.0: convert an ISO8601 timestamp to Unix ms. Tolerates missing input.
100
+ const toUnixMs = (iso) => {
101
+ if (!iso)
102
+ return null;
103
+ const t = Date.parse(iso);
104
+ return Number.isFinite(t) ? t : null;
105
+ };
94
106
  // -----------------------------------------------------------------------
95
107
  // Tool: figma_get_file_versions
96
108
  // -----------------------------------------------------------------------
@@ -435,14 +447,80 @@ export function registerVersionTools(server, getFigmaAPI, getCurrentUrl, _option
435
447
  }
436
448
  const fromMeta = extractFileMeta(fromFile.data, from_version);
437
449
  const toMeta = extractFileMeta(toFile.data, to_version);
450
+ // v1.25.0: query the plugin metadata buffer for description/annotation
451
+ // changes within the diff's time window. The buffer is only populated
452
+ // when the Desktop Bridge plugin was connected during the edit โ€” so
453
+ // edits made offline (or before this MCP session started) won't appear.
454
+ // That limit is surfaced in scope_coverage + notes.
455
+ const fromMs = toUnixMs(fromMeta.last_modified) ?? undefined;
456
+ const toMs = toUnixMs(toMeta.last_modified) ?? Date.now();
457
+ let bufferedMetadata = [];
458
+ let metadataBufferAvailable = false;
459
+ let unscopedMetadataChanges = [];
460
+ if (getMetadataChanges) {
461
+ metadataBufferAvailable = true;
462
+ try {
463
+ bufferedMetadata = getMetadataChanges({
464
+ fileKey,
465
+ since: fromMs,
466
+ until: toMs,
467
+ });
468
+ }
469
+ catch (e) {
470
+ logger.warn({ err: e }, "Metadata buffer lookup failed; continuing without metadata changes");
471
+ bufferedMetadata = [];
472
+ }
473
+ }
474
+ // Attach buffer entries to the scoped node diffs whose id matches.
475
+ // Entries that don't match any scoped id surface separately so the
476
+ // caller can still see "the buffer has 3 description edits on nodes
477
+ // you didn't ask about" instead of dropping them on the floor.
478
+ if (bufferedMetadata.length > 0) {
479
+ const scopedById = new Map(scoped.map((n) => [n.node_id, n]));
480
+ const consumed = new Set();
481
+ for (const entry of bufferedMetadata) {
482
+ const target = scopedById.get(entry.node_id);
483
+ if (target) {
484
+ (target.metadata_changes ??= []).push({
485
+ field: entry.field,
486
+ new_value: entry.new_value,
487
+ timestamp: entry.timestamp,
488
+ source: "plugin_buffer",
489
+ });
490
+ target.change_count += 1;
491
+ consumed.add(entry);
492
+ }
493
+ }
494
+ unscopedMetadataChanges = bufferedMetadata.filter((e) => !consumed.has(e));
495
+ }
438
496
  const notes = [];
439
- if (!component_ids || component_ids.length === 0) {
497
+ const hasScopedNodes = !!(component_ids && component_ids.length > 0);
498
+ if (!hasScopedNodes) {
440
499
  notes.push("Only page-structure diff returned. Pass component_ids to get per-component analysis (added/removed children, property changes, binding changes), or have a node selected in Figma when you call.");
441
500
  }
442
501
  if (usedSelection) {
443
502
  notes.push(`Auto-scoped to ${component_ids?.length ?? 0} node(s) from the current Figma selection. Pass component_ids explicitly to override.`);
444
503
  }
504
+ // Always-on coverage warnings โ€” the failure mode we're guarding against is
505
+ // the user (or an AI client) believing "no changes found" means "nothing
506
+ // changed," when in fact the change is in a category this tool doesn't
507
+ // track. Better to be loud about limits than silently miss real edits.
508
+ if (hasScopedNodes) {
509
+ notes.push("Component-scoped diff covers the canonical components only. INSTANCES of these components placed elsewhere on the canvas (documentation examples, hero frames, mockups) are NOT diffed. For forensic per-session edits including instance changes, use figma_get_design_changes. To diff a specific instance, pass its node ID explicitly.");
510
+ }
511
+ notes.push("Raw layout/visual properties are NOT tracked. This includes layoutSizingHorizontal/Vertical (hug vs. fill), primaryAxisSizingMode/counterAxisSizingMode, raw paddings/widths/cornerRadius when not bound to a variable, and unbound fills/strokes/effects. This tool surfaces structural deltas (children, property defs, name, description) and variable-BINDING deltas only.");
445
512
  notes.push("Variable VALUE history is not retrievable from Figma REST API. Variable definition value changes between these versions are not represented; only binding-reference changes on scoped nodes are detected.");
513
+ // v1.25.0: surface metadata-buffer state. Either "tracked via plugin buffer"
514
+ // (and any limits) or "not tracked at all" (cloud mode / plugin absent).
515
+ if (metadataBufferAvailable) {
516
+ notes.push("Description and annotation changes ARE tracked when the Desktop Bridge plugin was connected during the edit. They appear under each node's metadata_changes[]. Edits made while the plugin was disconnected (or before this MCP session started) WON'T appear in the buffer โ€” the diff will silently miss them.");
517
+ if (bufferedMetadata.length === 0) {
518
+ notes.push("No description or annotation changes were captured by the plugin buffer in this version window. Either no such edits happened, or they occurred while the plugin was disconnected.");
519
+ }
520
+ }
521
+ else {
522
+ notes.push("Description and annotation changes are NOT being tracked โ€” no metadata buffer is wired (typically cloud mode without an active Desktop Bridge connection). For description/annotation visibility, use local mode with the plugin running.");
523
+ }
446
524
  if (fetchErrors.length > 0) {
447
525
  notes.push(`Failed to fetch ${fetchErrors.length} of ${component_ids?.length ?? 0} requested nodes โ€” see _fetch_errors.`);
448
526
  }
@@ -452,7 +530,7 @@ export function registerVersionTools(server, getFigmaAPI, getCurrentUrl, _option
452
530
  from: fromMeta,
453
531
  to: toMeta,
454
532
  page_structure: pageDiff,
455
- scoped_nodes: component_ids && component_ids.length > 0 ? scoped : undefined,
533
+ scoped_nodes: hasScopedNodes ? scoped : undefined,
456
534
  summary: {
457
535
  page_changes: pageDiff.summary.added + pageDiff.summary.removed + pageDiff.summary.renamed,
458
536
  scoped_nodes_requested: component_ids?.length ?? 0,
@@ -462,6 +540,72 @@ export function registerVersionTools(server, getFigmaAPI, getCurrentUrl, _option
462
540
  api_calls_made: apiCalls,
463
541
  cache_hits: cacheHits,
464
542
  },
543
+ // scope_coverage is an always-on, machine-readable summary of what the
544
+ // diff DID and DID NOT examine. AI clients should check this before
545
+ // concluding "nothing else changed." See notes[] for prose warnings.
546
+ scope_coverage: {
547
+ page_structure_diffed: true,
548
+ component_ids_diffed: component_ids ?? [],
549
+ max_depth: 2,
550
+ /**
551
+ * v1.25.0: metadata-buffer state. When the plugin is connected
552
+ * during edits, description/annotation changes ARE tracked.
553
+ * `metadata_buffer.available: false` means the diff is REST-only
554
+ * and description/annotation edits are invisible.
555
+ */
556
+ metadata_buffer: {
557
+ available: metadataBufferAvailable,
558
+ entries_in_window: bufferedMetadata.length,
559
+ entries_matched_to_scoped_nodes: bufferedMetadata.length - unscopedMetadataChanges.length,
560
+ entries_outside_scope: unscopedMetadataChanges.length,
561
+ },
562
+ tracks: [
563
+ "page structure (added/removed/renamed pages)",
564
+ "component children (added/removed)",
565
+ "componentPropertyDefinitions (added/removed/type/default)",
566
+ "name and description changes on scoped nodes",
567
+ "variable binding references on scoped nodes",
568
+ ...(metadataBufferAvailable
569
+ ? [
570
+ "component descriptions via plugin session buffer (when plugin connected during edit)",
571
+ "Dev Mode annotations via plugin session buffer (when plugin connected during edit)",
572
+ ]
573
+ : []),
574
+ ],
575
+ does_not_track: [
576
+ "instances of components on the canvas (unless passed as component_ids)",
577
+ "raw layout properties (layoutSizingHorizontal/Vertical, unbound paddings/widths)",
578
+ "raw visual properties (cornerRadius, unbound fills/strokes/effects, opacity)",
579
+ "variable VALUE changes (Figma REST does not expose this)",
580
+ "style content changes (only style add/remove via component reachability)",
581
+ ...(metadataBufferAvailable
582
+ ? [
583
+ "description/annotation edits made while the Desktop Bridge plugin was disconnected",
584
+ ]
585
+ : [
586
+ "component descriptions (Figma REST omits them; no plugin buffer wired in this mode)",
587
+ "Dev Mode annotations (Figma REST omits them; no plugin buffer wired in this mode)",
588
+ ]),
589
+ "canvas frame edits outside scoped components",
590
+ ],
591
+ complementary_tools: [
592
+ "figma_get_design_changes โ€” forensic per-session edits including raw property changes on instances",
593
+ "figma_get_variables โ€” current variable state (no history available)",
594
+ "figma_get_styles โ€” current style state",
595
+ "figma_get_component โ€” live description and annotation state for a single node",
596
+ ],
597
+ },
598
+ unscoped_metadata_changes: unscopedMetadataChanges.length > 0
599
+ ? unscopedMetadataChanges.map((e) => ({
600
+ node_id: e.node_id,
601
+ node_name: e.node_name,
602
+ node_type: e.node_type,
603
+ field: e.field,
604
+ new_value: e.new_value,
605
+ timestamp: e.timestamp,
606
+ source: "plugin_buffer",
607
+ }))
608
+ : undefined,
465
609
  notes,
466
610
  _fetch_errors: fetchErrors.length > 0 ? fetchErrors : undefined,
467
611
  };
@@ -550,7 +694,7 @@ export function registerVersionTools(server, getFigmaAPI, getCurrentUrl, _option
550
694
  // -----------------------------------------------------------------------
551
695
  // Tool: figma_diff_versions
552
696
  // -----------------------------------------------------------------------
553
- server.tool("figma_diff_versions", "Diff two versions of a Figma file. Always returns a cheap page-structure diff (added/removed/renamed pages, 2 API calls). Pass component_ids to additionally get per-node deep diffs at depth=2 (added/removed children, name/description changes, componentPropertyDefinitions changes for COMPONENT_SETs, boundVariables deltas) โ€” costs 2 API calls per scoped node. Use 'current' for to_version to diff against HEAD. NOTE: variable VALUE history is not retrievable from Figma REST and is not represented in this diff.", {
697
+ server.tool("figma_diff_versions", "Diff two versions of a Figma file. Always returns a cheap page-structure diff (added/removed/renamed pages, 2 API calls). Pass component_ids to additionally get per-node deep diffs at depth=2 (added/removed children, name/description changes, componentPropertyDefinitions changes for COMPONENT_SETs, boundVariables deltas) โ€” costs 2 API calls per scoped node. Use 'current' for to_version to diff against HEAD. v1.25.0: when the Desktop Bridge plugin is connected, description and Dev Mode annotation changes are ALSO tracked via a session buffer and surfaced under `scoped_nodes[].metadata_changes[]` and `unscoped_metadata_changes[]` โ€” Figma REST omits these from version snapshots so they're otherwise invisible. STILL NOT tracked: instances of components on the canvas, raw layout properties (layoutSizingHorizontal/Vertical, unbound paddings/widths), raw visual properties (cornerRadius, unbound fills), variable VALUE changes, style content, and metadata edits made while the plugin was disconnected. See `scope_coverage` and `notes[]` for the full coverage map and complementary tools.", {
554
698
  fileUrl: z
555
699
  .string()
556
700
  .url()
@@ -335,6 +335,34 @@ export class FigmaWebSocketServer extends EventEmitter {
335
335
  }
336
336
  this.emit('documentChange', { fileKey: found?.fileKey ?? null, ...message.data });
337
337
  }
338
+ // v1.25.0: buffer description/annotation changes for the specific file.
339
+ // These are the diff-engine blind spots that Figma REST doesn't expose;
340
+ // the diff engine consults this buffer when correlating to a version
341
+ // range, so changes made while the plugin was connected become visible.
342
+ if (message.type === 'METADATA_CHANGE' && message.data) {
343
+ const found = this.findClientByWs(ws);
344
+ if (found) {
345
+ const changes = Array.isArray(message.data.changes) ? message.data.changes : [];
346
+ for (const c of changes) {
347
+ if (!c || typeof c.node_id !== 'string' || !c.field)
348
+ continue;
349
+ const entry = {
350
+ node_id: c.node_id,
351
+ node_name: c.node_name ?? null,
352
+ node_type: c.node_type ?? null,
353
+ field: c.field === 'annotations' ? 'annotations' : 'description',
354
+ new_value: c.new_value,
355
+ timestamp: typeof c.timestamp === 'number' ? c.timestamp : Date.now(),
356
+ };
357
+ found.client.metadataChanges.push(entry);
358
+ if (found.client.metadataChanges.length > this.documentChangeBufferSize) {
359
+ found.client.metadataChanges.shift();
360
+ }
361
+ }
362
+ found.client.lastActivity = Date.now();
363
+ }
364
+ this.emit('metadataChange', { fileKey: found?.fileKey ?? null, changes: message.data.changes });
365
+ }
338
366
  // Track selection changes โ€” user interaction makes this the active file
339
367
  if (message.type === 'SELECTION_CHANGE' && message.data) {
340
368
  const found = this.findClientByWs(ws);
@@ -436,6 +464,7 @@ export class FigmaWebSocketServer extends EventEmitter {
436
464
  },
437
465
  selection: existing?.selection || null,
438
466
  documentChanges: existing?.documentChanges || [],
467
+ metadataChanges: existing?.metadataChanges || [],
439
468
  consoleLogs: existing?.consoleLogs || [],
440
469
  lastActivity: Date.now(),
441
470
  lastPongAt: Date.now(),
@@ -661,6 +690,49 @@ export class FigmaWebSocketServer extends EventEmitter {
661
690
  client.documentChanges = [];
662
691
  return count;
663
692
  }
693
+ /**
694
+ * v1.25.0: Get buffered description/annotation change events for a file.
695
+ *
696
+ * Used by `figma_diff_versions` to surface changes that Figma REST doesn't
697
+ * expose. The diff engine passes a time window (from-version โ†’ to-version
698
+ * `last_modified` timestamps converted to Unix ms) and optional scoping by
699
+ * node IDs.
700
+ *
701
+ * Defaults to the active file if `fileKey` is omitted.
702
+ */
703
+ getMetadataChanges(options) {
704
+ const fileKey = options?.fileKey ?? this._activeFileKey;
705
+ if (!fileKey)
706
+ return [];
707
+ const client = this.clients.get(fileKey);
708
+ if (!client)
709
+ return [];
710
+ let filtered = [...client.metadataChanges];
711
+ if (options?.since !== undefined) {
712
+ filtered = filtered.filter((e) => e.timestamp >= options.since);
713
+ }
714
+ if (options?.until !== undefined) {
715
+ filtered = filtered.filter((e) => e.timestamp <= options.until);
716
+ }
717
+ if (options?.nodeIds && options.nodeIds.length > 0) {
718
+ const set = new Set(options.nodeIds);
719
+ filtered = filtered.filter((e) => set.has(e.node_id));
720
+ }
721
+ return filtered;
722
+ }
723
+ /**
724
+ * v1.25.0: Clear metadata-change buffer for the active file.
725
+ */
726
+ clearMetadataChanges() {
727
+ if (!this._activeFileKey)
728
+ return 0;
729
+ const client = this.clients.get(this._activeFileKey);
730
+ if (!client)
731
+ return 0;
732
+ const count = client.metadataChanges.length;
733
+ client.metadataChanges = [];
734
+ return count;
735
+ }
664
736
  /**
665
737
  * Get console logs from the active file with optional filtering
666
738
  */
@@ -70,7 +70,7 @@ export class FigmaConsoleMCPv3 extends McpAgent {
70
70
  super(...arguments);
71
71
  this.server = new McpServer({
72
72
  name: "Figma Console MCP",
73
- version: "1.23.0",
73
+ version: "1.25.0",
74
74
  });
75
75
  this.browserManager = null;
76
76
  this.consoleMonitor = null;
@@ -1058,7 +1058,7 @@ export default {
1058
1058
  });
1059
1059
  const statelessServer = new McpServer({
1060
1060
  name: "Figma Console MCP",
1061
- version: "1.23.0",
1061
+ version: "1.25.0",
1062
1062
  });
1063
1063
  // ================================================================
1064
1064
  // Cloud Write Relay โ€” Pairing Tool (stateless /mcp path)
@@ -1694,7 +1694,7 @@ export default {
1694
1694
  return new Response(JSON.stringify({
1695
1695
  status: "healthy",
1696
1696
  service: "Figma Console MCP",
1697
- version: "1.23.0",
1697
+ version: "1.25.0",
1698
1698
  endpoints: {
1699
1699
  mcp: ["/sse", "/mcp"],
1700
1700
  oauth_mcp_spec: ["/.well-known/oauth-authorization-server", "/authorize", "/token", "/oauth/register"],
@@ -86,6 +86,18 @@ export interface NodeChildSummary {
86
86
  name: string;
87
87
  type: string;
88
88
  }
89
+ /**
90
+ * v1.25.0: a metadata-only change captured via the Plugin API session buffer.
91
+ * Surfaces description/annotation edits that Figma REST doesn't expose in
92
+ * version snapshots. Populated when the diff time window overlaps with
93
+ * buffered plugin events; absent/empty otherwise.
94
+ */
95
+ export interface MetadataChange {
96
+ field: "description" | "annotations";
97
+ new_value: any;
98
+ timestamp: number;
99
+ source: "plugin_buffer";
100
+ }
89
101
  export interface NodeDiff {
90
102
  node_id: string;
91
103
  node_name: string;
@@ -102,6 +114,8 @@ export interface NodeDiff {
102
114
  children_removed: NodeChildSummary[];
103
115
  component_properties: ComponentPropertyDefDiff | null;
104
116
  binding_changes: BindingChange[];
117
+ /** v1.25.0: description/annotation changes captured via plugin session buffer */
118
+ metadata_changes?: MetadataChange[];
105
119
  change_count: number;
106
120
  notes: string[];
107
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"diff-engine.d.ts","sourceRoot":"","sources":["../../../src/core/diff/diff-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff-engine.d.ts","sourceRoot":"","sources":["../../../src/core/diff/diff-engine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"diff-engine.js","sourceRoot":"","sources":["../../../src/core/diff/diff-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff-engine.js","sourceRoot":"","sources":["../../../src/core/diff/diff-engine.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,36 @@ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
24
24
  import type { FigmaAPI } from "./figma-api.js";
25
25
  /** Test-only: clears the module-scoped snapshot cache so unit tests see fresh state. */
26
26
  export declare function _clearVersionSnapshotCacheForTesting(): void;
27
+ /**
28
+ * v1.25.0: a description/annotation change captured by the Desktop Bridge
29
+ * plugin's documentchange listener. The diff engine queries this buffer to
30
+ * surface metadata changes that Figma REST omits from version snapshots.
31
+ *
32
+ * Filtered by file key, time window (Unix ms), and optionally node IDs.
33
+ */
34
+ export interface MetadataChangeBufferEntry {
35
+ node_id: string;
36
+ node_name: string | null;
37
+ node_type: string | null;
38
+ field: "description" | "annotations";
39
+ new_value: any;
40
+ timestamp: number;
41
+ }
42
+ export type GetMetadataChanges = (options: {
43
+ fileKey?: string;
44
+ since?: number;
45
+ until?: number;
46
+ nodeIds?: string[];
47
+ }) => MetadataChangeBufferEntry[];
27
48
  export declare function registerVersionTools(server: McpServer, getFigmaAPI: () => Promise<FigmaAPI>, getCurrentUrl: () => string | null, _options?: {
28
49
  isRemoteMode?: boolean;
29
- }, getCurrentSelectedNodeIds?: () => string[] | null): void;
50
+ }, getCurrentSelectedNodeIds?: () => string[] | null,
51
+ /**
52
+ * v1.25.0: optional metadata-change buffer reader. When wired (local mode),
53
+ * the diff engine consults this to surface description/annotation edits
54
+ * that Figma REST doesn't expose. In cloud mode (no plugin buffer
55
+ * available), this stays undefined and the diff just doesn't surface
56
+ * those edits โ€” but scope_coverage still tells callers about the gap.
57
+ */
58
+ getMetadataChanges?: GetMetadataChanges): void;
30
59
  //# sourceMappingURL=version-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version-tools.d.ts","sourceRoot":"","sources":["../../src/core/version-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAsB/C,wFAAwF;AACxF,wBAAgB,oCAAoC,IAAI,IAAI,CAE3D;AAuFD,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,EACpC,aAAa,EAAE,MAAM,MAAM,GAAG,IAAI,EAClC,QAAQ,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,EACrC,yBAAyB,CAAC,EAAE,MAAM,MAAM,EAAE,GAAG,IAAI,GAC/C,IAAI,CAqhCN"}
1
+ {"version":3,"file":"version-tools.d.ts","sourceRoot":"","sources":["../../src/core/version-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAsB/C,wFAAwF;AACxF,wBAAgB,oCAAoC,IAAI,IAAI,CAE3D;AAuFD;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,aAAa,GAAG,aAAa,CAAC;IACrC,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,KAAK,yBAAyB,EAAE,CAAC;AAElC,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,EACpC,aAAa,EAAE,MAAM,MAAM,GAAG,IAAI,EAClC,QAAQ,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,EACrC,yBAAyB,CAAC,EAAE,MAAM,MAAM,EAAE,GAAG,IAAI;AACjD;;;;;;GAMG;AACH,kBAAkB,CAAC,EAAE,kBAAkB,GACrC,IAAI,CA4qCN"}