@graph-ir/core 0.2.0 → 0.2.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.
Files changed (40) hide show
  1. package/README.md +15 -2
  2. package/dist/canonical-types.d.ts +207 -0
  3. package/dist/canonical-types.d.ts.map +1 -0
  4. package/dist/canonical-types.js +3 -0
  5. package/dist/canonical-types.js.map +1 -0
  6. package/dist/generation/id-generator.d.ts.map +1 -1
  7. package/dist/generation/id-generator.js +16 -10
  8. package/dist/generation/id-generator.js.map +1 -1
  9. package/dist/index.d.ts +2 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/output/types.d.ts.map +1 -1
  14. package/dist/schemas/graph-ir.schema.json +327 -271
  15. package/dist/skills/diff.d.ts +4 -0
  16. package/dist/skills/diff.d.ts.map +1 -1
  17. package/dist/skills/diff.js +93 -11
  18. package/dist/skills/diff.js.map +1 -1
  19. package/dist/skills/migrate.d.ts +13 -18
  20. package/dist/skills/migrate.d.ts.map +1 -1
  21. package/dist/skills/migrate.js +224 -247
  22. package/dist/skills/migrate.js.map +1 -1
  23. package/dist/skills/visualize.d.ts.map +1 -1
  24. package/dist/skills/visualize.js +29 -5
  25. package/dist/skills/visualize.js.map +1 -1
  26. package/dist/testing/diff.d.ts +1 -1
  27. package/dist/testing/diff.d.ts.map +1 -1
  28. package/dist/testing/diff.js +23 -19
  29. package/dist/testing/diff.js.map +1 -1
  30. package/dist/types.d.ts +12 -214
  31. package/dist/types.d.ts.map +1 -1
  32. package/dist/types.js +3 -2
  33. package/dist/types.js.map +1 -1
  34. package/dist/validation/ir-validator.d.ts +27 -44
  35. package/dist/validation/ir-validator.d.ts.map +1 -1
  36. package/dist/validation/ir-validator.js +481 -294
  37. package/dist/validation/ir-validator.js.map +1 -1
  38. package/dist/validation/validator.d.ts.map +1 -1
  39. package/package.json +9 -4
  40. package/specification.json +9 -0
package/README.md CHANGED
@@ -18,8 +18,21 @@ const result = validateIR(graphIR, { strict: true });
18
18
  console.log(new PrettyFormatter().format(result));
19
19
  ```
20
20
 
21
- The Graph-IR document schema and the npm package have independent versions.
22
- This package release is `0.2.0`; its current Graph-IR schema is `1.0.0`.
21
+ The GraphIR document schema and npm package have independent versions. This
22
+ package release is `0.2.1`; its authored schema is `2.0.0`.
23
+
24
+ Schema 2.0 separates authored intent from resolved layout. It adds first-class
25
+ edge descriptions, node/edge label placement, spatial constraints, and
26
+ identified route intent. Positions and dimensions in GraphIR are authored exact
27
+ geometry. Generated routes and measured/computed geometry belong in a separate
28
+ layout result.
29
+
30
+ This is a coordinated pre-1.0 breaking release. `routingPoints` and
31
+ `algorithmOptions` are no longer authored GraphIR fields. Use `migrateIR`
32
+ for conservative 1.x migration; ambiguous geometry requires an explicit loss
33
+ policy.
34
+
35
+ The schema is available through the `@graph-ir/core/schema` export.
23
36
 
24
37
  ## License
25
38
 
@@ -0,0 +1,207 @@
1
+ /** Canonical authored GraphIR schema 2.0.0 declarations. */
2
+ export interface GraphIR {
3
+ version: '2.0.0';
4
+ id: string;
5
+ name?: string;
6
+ nodes: GraphNode[];
7
+ edges: GraphEdge[];
8
+ constraints?: SpatialConstraint[];
9
+ metadata?: GraphMetadata;
10
+ layoutOptions?: LayoutOptions;
11
+ }
12
+ export interface GraphNode {
13
+ id: string;
14
+ type: string;
15
+ label?: string;
16
+ description?: string;
17
+ symbol?: string;
18
+ variant?: string;
19
+ properties?: Record<string, unknown>;
20
+ children?: GraphNode[];
21
+ /** Must match the immediate enclosing node. Root nodes omit this field. */
22
+ parent?: string;
23
+ ports?: Port[];
24
+ /** Authored fixed outer size, never a measured layout result. */
25
+ dimensions?: Dimensions;
26
+ /** Authored exact position; nested values are parent-content-box-local. */
27
+ position?: Position;
28
+ /** A pin fixes the authored position in its declared coordinate frame. */
29
+ pinned?: boolean;
30
+ labelPlacement?: NodeLabelPlacement;
31
+ layoutOptions?: NodeLayoutOptions;
32
+ sourceInfo?: SourceInfo;
33
+ }
34
+ export interface GraphEdge {
35
+ id: string;
36
+ source: string;
37
+ target: string;
38
+ sourcePort?: string;
39
+ targetPort?: string;
40
+ type?: string;
41
+ label?: string;
42
+ description?: string;
43
+ labelPlacement?: EdgeLabelPlacement;
44
+ routeIntent?: RouteIntent;
45
+ properties?: Record<string, unknown>;
46
+ style?: EdgeStyle;
47
+ sourceInfo?: SourceInfo;
48
+ }
49
+ export type PlacementSide = 'above' | 'below' | 'left' | 'right' | 'center';
50
+ export interface NodeLabelPlacement {
51
+ side: PlacementSide;
52
+ offset?: number;
53
+ }
54
+ export interface EdgeLabelPlacement {
55
+ side: PlacementSide;
56
+ at?: number;
57
+ offset?: number;
58
+ }
59
+ export type ConstraintStrength = 'required' | 'preferred';
60
+ export type ConstraintAlignment = 'start' | 'center' | 'end';
61
+ export type ConstraintNodeReference = {
62
+ kind: 'node';
63
+ nodeId: string;
64
+ };
65
+ export type BoundaryScope = {
66
+ kind: 'graph';
67
+ } | {
68
+ kind: 'node';
69
+ nodeId: string;
70
+ };
71
+ export interface ConstraintBase {
72
+ id: string;
73
+ strength?: ConstraintStrength;
74
+ sourceInfo?: SourceInfo;
75
+ }
76
+ export interface RelativeConstraint extends ConstraintBase {
77
+ kind: 'relative';
78
+ subject: ConstraintNodeReference;
79
+ relation: 'above' | 'below' | 'left-of' | 'right-of';
80
+ target: ConstraintNodeReference;
81
+ gap?: number;
82
+ alignment?: ConstraintAlignment;
83
+ }
84
+ export interface BoundaryConstraint extends ConstraintBase {
85
+ kind: 'boundary';
86
+ subject: ConstraintNodeReference;
87
+ side: 'top' | 'bottom' | 'left' | 'right';
88
+ scope: BoundaryScope;
89
+ inset?: number;
90
+ }
91
+ export interface ArrangementConstraint extends ConstraintBase {
92
+ kind: 'arrangement';
93
+ subjects: ConstraintNodeReference[];
94
+ axis: 'row' | 'column';
95
+ direction?: 'forward' | 'reverse';
96
+ gap?: number;
97
+ alignment?: ConstraintAlignment;
98
+ }
99
+ export type SpatialConstraint = RelativeConstraint | BoundaryConstraint | ArrangementConstraint;
100
+ export type RouteAnchor = {
101
+ kind: 'source';
102
+ } | {
103
+ kind: 'target';
104
+ } | {
105
+ kind: 'node';
106
+ nodeId: string;
107
+ } | {
108
+ kind: 'port';
109
+ nodeId: string;
110
+ portId: string;
111
+ };
112
+ export type WaypointPlacement = {
113
+ kind: 'absolute';
114
+ position: Position;
115
+ } | {
116
+ kind: 'relative';
117
+ anchor: RouteAnchor;
118
+ offset: Position;
119
+ };
120
+ export interface RouteWaypoint {
121
+ id: string;
122
+ placement: WaypointPlacement;
123
+ }
124
+ export interface RouteIntent {
125
+ waypoints: RouteWaypoint[];
126
+ }
127
+ export interface Port {
128
+ id: string;
129
+ side: PortSide;
130
+ label?: string;
131
+ position?: number;
132
+ properties?: Record<string, unknown>;
133
+ }
134
+ export type PortSide = 'NORTH' | 'SOUTH' | 'EAST' | 'WEST';
135
+ export interface Dimensions {
136
+ width: number;
137
+ height: number;
138
+ }
139
+ export interface Position {
140
+ x: number;
141
+ y: number;
142
+ }
143
+ export interface EdgeStyle {
144
+ lineStyle?: 'solid' | 'dashed' | 'dotted';
145
+ targetArrow?: 'arrow' | 'diamond' | 'circle' | 'none';
146
+ sourceArrow?: 'arrow' | 'diamond' | 'circle' | 'none';
147
+ routing?: 'orthogonal' | 'polyline' | 'spline';
148
+ }
149
+ export interface LayoutOptions {
150
+ algorithm?: 'layered' | 'force' | 'radial' | 'tree' | 'fixed';
151
+ direction?: 'DOWN' | 'UP' | 'LEFT' | 'RIGHT';
152
+ spacing?: SpacingOptions;
153
+ edgeRouting?: 'orthogonal' | 'polyline' | 'spline';
154
+ hierarchyHandling?: 'INCLUDE_CHILDREN' | 'SEPARATE_CHILDREN';
155
+ }
156
+ export interface SpacingOptions {
157
+ nodeNode?: number;
158
+ nodeEdge?: number;
159
+ edgeEdge?: number;
160
+ layerSpacing?: number;
161
+ }
162
+ export interface NodeLayoutOptions {
163
+ portConstraints?: 'FREE' | 'FIXED_SIDE' | 'FIXED_ORDER' | 'FIXED_POS';
164
+ portAlignment?: 'BEGIN' | 'CENTER' | 'END' | 'JUSTIFIED';
165
+ sizeConstraints?: ('MINIMUM_SIZE' | 'NODE_LABELS' | 'PORTS')[];
166
+ minimumSize?: Dimensions;
167
+ padding?: Padding;
168
+ }
169
+ export interface Padding {
170
+ top?: number;
171
+ right?: number;
172
+ bottom?: number;
173
+ left?: number;
174
+ }
175
+ export interface SourceInfo {
176
+ range: SourceRange;
177
+ leadingComments?: Comment[];
178
+ trailingComment?: Comment;
179
+ leadingWhitespace?: string;
180
+ modified?: boolean;
181
+ originalText?: string;
182
+ }
183
+ export interface SourceRange {
184
+ start: number;
185
+ end: number;
186
+ startPosition?: SourcePosition;
187
+ endPosition?: SourcePosition;
188
+ }
189
+ export interface SourcePosition {
190
+ line: number;
191
+ column: number;
192
+ }
193
+ export interface Comment {
194
+ text: string;
195
+ style: 'line' | 'block';
196
+ range?: SourceRange;
197
+ }
198
+ export interface GraphMetadata {
199
+ author?: string;
200
+ created?: string;
201
+ modified?: string;
202
+ description?: string;
203
+ tags?: string[];
204
+ notation?: string;
205
+ custom?: Record<string, unknown>;
206
+ }
207
+ //# sourceMappingURL=canonical-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical-types.d.ts","sourceRoot":"","sources":["../src/canonical-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Canonical authored GraphIR schema 2.0.0 declarations. */
2
+ export {};
3
+ //# sourceMappingURL=canonical-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical-types.js","sourceRoot":"","sources":["../src/canonical-types.ts"],"names":[],"mappings":"AAAA,4DAA4D"}
@@ -1 +1 @@
1
- {"version":3,"file":"id-generator.d.ts","sourceRoot":"","sources":["../../src/generation/id-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA0CH;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkB1C;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAM1C;AAED;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,wCAAwC;IACxC,OAAO,CAAC,OAAO,CAAqB;IAEpC,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAA6B;IAE7C,2CAA2C;IAC3C,OAAO,CAAC,kBAAkB,CAA6B;IAEvD;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAK/B;;;;;OAKG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAKzD;;;;;;OAMG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAS1C;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAoBzB;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,OAAO,CAAC,UAAU;CAcnB"}
1
+ {"version":3,"file":"id-generator.d.ts","sourceRoot":"","sources":["../../src/generation/id-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA0CH;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkB1C;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAM1C;AAED;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,wCAAwC;IACxC,OAAO,CAAC,OAAO,CAAqB;IAEpC,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAA6B;IAE7C,2CAA2C;IAC3C,OAAO,CAAC,kBAAkB,CAA6B;IAEvD;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAK/B;;;;;OAKG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAKzD;;;;;;OAMG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAY1C;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAwBzB;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,OAAO,CAAC,UAAU;CAYnB"}
@@ -130,9 +130,13 @@ export class IdGenerator {
130
130
  * gen.generateSequential('edge'); // 'edge-2'
131
131
  */
132
132
  generateSequential(prefix) {
133
- const count = (this.sequentialCounters.get(prefix) ?? 0) + 1;
133
+ let count = this.sequentialCounters.get(prefix) ?? 0;
134
+ let id;
135
+ do {
136
+ count += 1;
137
+ id = `${prefix}-${count}`;
138
+ } while (this.usedIds.has(id));
134
139
  this.sequentialCounters.set(prefix, count);
135
- const id = `${prefix}-${count}`;
136
140
  this.usedIds.add(id);
137
141
  return id;
138
142
  }
@@ -156,6 +160,10 @@ export class IdGenerator {
156
160
  if (num >= currentCount) {
157
161
  this.idCounts.set(base, num);
158
162
  }
163
+ const sequentialCount = this.sequentialCounters.get(base) ?? 0;
164
+ if (num > sequentialCount) {
165
+ this.sequentialCounters.set(base, num);
166
+ }
159
167
  }
160
168
  else {
161
169
  // Reserve the base ID
@@ -177,15 +185,13 @@ export class IdGenerator {
177
185
  * Make a base ID unique by adding a suffix if needed
178
186
  */
179
187
  makeUnique(baseId) {
180
- const count = this.idCounts.get(baseId) ?? 0;
181
- this.idCounts.set(baseId, count + 1);
182
- let id;
183
- if (count === 0) {
184
- id = baseId;
185
- }
186
- else {
187
- id = `${baseId}-${count + 1}`;
188
+ let ordinal = (this.idCounts.get(baseId) ?? 0) + 1;
189
+ let id = ordinal === 1 ? baseId : `${baseId}-${ordinal}`;
190
+ while (this.usedIds.has(id)) {
191
+ ordinal += 1;
192
+ id = `${baseId}-${ordinal}`;
188
193
  }
194
+ this.idCounts.set(baseId, ordinal);
189
195
  this.usedIds.add(id);
190
196
  return id;
191
197
  }
@@ -1 +1 @@
1
- {"version":3,"file":"id-generator.js","sourceRoot":"","sources":["../../src/generation/id-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"id-generator.js","sourceRoot":"","sources":["../../src/generation/id-generator.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,10 +3,11 @@
3
3
  *
4
4
  * Core utilities for Graph-IR validation, generation, and transformation.
5
5
  */
6
- export type { GraphIR, GraphNode, GraphEdge, Port, PortSide, Dimensions, Position, EdgeStyle, LayoutOptions, SpacingOptions, NodeLayoutOptions, SourceInfo, SourceRange, Comment, GraphMetadata, ValidationResult, ValidationError, ValidationOptions, ErrorCode, WarningCode, } from './types.js';
6
+ export type * from './types.js';
7
7
  export { validateIR, validateIRFromString, IRValidator } from './validation/index.js';
8
8
  export { toId, toLabel, isStopWord, IdGenerator } from './generation/index.js';
9
9
  export { type OutputFormat, type Formatter, type GitHubAnnotation, type PrettyFormatOptions, type JsonFormatOptions, type CIFormatOptions, PrettyFormatter, JsonFormatter, formatResult, createFormatter, formatError, formatWarning, formatSummary, formatGitHubAnnotations, formatGitHubSummary, box, table, } from './output/index.js';
10
10
  export { type Snapshot, type SnapshotMatchResult, type Change, type DiffResult, SnapshotManager, wrapSnapshot, unwrapSnapshot, diff, diffGraphIR, formatDiff, } from './testing/index.js';
11
+ export { migrateIR, formatMigrationResult, type MigrationOptions, type MigrationResult, type MigrationChange, type MigrationLoss, } from './skills/migrate.js';
11
12
  export { type ShapeDefinition, type ShapeParameter, type PortAnchor, type SymbolDefinition, type SymbolVariant, type SymbolPort, type SymbolDefaults, type NotationDefinition, type NotationEdgeStyle, type ConnectionRule, type ConnectionConstraints, type NotationValidation, type NotationValidationResult, type NotationError, type NotationErrorCode, type ConnectionValidationResult, SymbolRegistry, NotationRegistry, } from './symbols/index.js';
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,OAAO,EACP,SAAS,EACT,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,SAAS,EACT,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,WAAW,GACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGtF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG/E,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAEpB,eAAe,EACf,aAAa,EAEb,YAAY,EACZ,eAAe,EACf,WAAW,EACX,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,GAAG,EACH,KAAK,GACN,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,MAAM,EACX,KAAK,UAAU,EAEf,eAAe,EAEf,YAAY,EACZ,cAAc,EACd,IAAI,EACJ,WAAW,EACX,UAAU,GACX,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAE/B,cAAc,EACd,gBAAgB,GACjB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,mBAAmB,YAAY,CAAC;AAGhC,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGtF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG/E,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAEpB,eAAe,EACf,aAAa,EAEb,YAAY,EACZ,eAAe,EACf,WAAW,EACX,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,GAAG,EACH,KAAK,GACN,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,MAAM,EACX,KAAK,UAAU,EAEf,eAAe,EAEf,YAAY,EACZ,cAAc,EACd,IAAI,EACJ,WAAW,EACX,UAAU,GACX,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAE/B,cAAc,EACd,gBAAgB,GACjB,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -19,6 +19,7 @@ export {
19
19
  SnapshotManager,
20
20
  // Functions
21
21
  wrapSnapshot, unwrapSnapshot, diff, diffGraphIR, formatDiff, } from './testing/index.js';
22
+ export { migrateIR, formatMigrationResult, } from './skills/migrate.js';
22
23
  // Symbols and Notations
23
24
  export {
24
25
  // Registries
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA0BH,aAAa;AACb,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEtF,aAAa;AACb,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE/E,SAAS;AACT,OAAO;AAQL,aAAa;AACb,eAAe,EACf,aAAa;AACb,YAAY;AACZ,YAAY,EACZ,eAAe,EACf,WAAW,EACX,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,GAAG,EACH,KAAK,GACN,MAAM,mBAAmB,CAAC;AAE3B,UAAU;AACV,OAAO;AAML,UAAU;AACV,eAAe;AACf,YAAY;AACZ,YAAY,EACZ,cAAc,EACd,IAAI,EACJ,WAAW,EACX,UAAU,GACX,MAAM,oBAAoB,CAAC;AAE5B,wBAAwB;AACxB,OAAO;AAkBL,aAAa;AACb,cAAc,EACd,gBAAgB,GACjB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,aAAa;AACb,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEtF,aAAa;AACb,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE/E,SAAS;AACT,OAAO;AAQL,aAAa;AACb,eAAe,EACf,aAAa;AACb,YAAY;AACZ,YAAY,EACZ,eAAe,EACf,WAAW,EACX,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,GAAG,EACH,KAAK,GACN,MAAM,mBAAmB,CAAC;AAE3B,UAAU;AACV,OAAO;AAML,UAAU;AACV,eAAe;AACf,YAAY;AACZ,YAAY,EACZ,cAAc,EACd,IAAI,EACJ,WAAW,EACX,UAAU,GACX,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,SAAS,EACT,qBAAqB,GAKtB,MAAM,qBAAqB,CAAC;AAE7B,wBAAwB;AACxB,OAAO;AAkBL,aAAa;AACb,cAAc,EACd,gBAAgB,GACjB,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/output/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,aAAa,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/output/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}