@typespec/mutator-framework 0.15.0-dev.0 → 0.15.0-dev.2

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 (205) hide show
  1. package/dist/src/mutation/enum-member.d.ts +2 -2
  2. package/dist/src/mutation/enum-member.d.ts.map +1 -1
  3. package/dist/src/mutation/enum-member.js +2 -2
  4. package/dist/src/mutation/enum-member.js.map +1 -1
  5. package/dist/src/mutation/enum.d.ts +2 -2
  6. package/dist/src/mutation/enum.d.ts.map +1 -1
  7. package/dist/src/mutation/enum.js +2 -2
  8. package/dist/src/mutation/enum.js.map +1 -1
  9. package/dist/src/mutation/interface.d.ts +5 -4
  10. package/dist/src/mutation/interface.d.ts.map +1 -1
  11. package/dist/src/mutation/interface.js +3 -3
  12. package/dist/src/mutation/interface.js.map +1 -1
  13. package/dist/src/mutation/intrinsic.d.ts +2 -2
  14. package/dist/src/mutation/intrinsic.d.ts.map +1 -1
  15. package/dist/src/mutation/intrinsic.js +2 -2
  16. package/dist/src/mutation/intrinsic.js.map +1 -1
  17. package/dist/src/mutation/literal.d.ts +2 -2
  18. package/dist/src/mutation/literal.d.ts.map +1 -1
  19. package/dist/src/mutation/literal.js +2 -2
  20. package/dist/src/mutation/literal.js.map +1 -1
  21. package/dist/src/mutation/model-property.d.ts +4 -6
  22. package/dist/src/mutation/model-property.d.ts.map +1 -1
  23. package/dist/src/mutation/model-property.js +2 -11
  24. package/dist/src/mutation/model-property.js.map +1 -1
  25. package/dist/src/mutation/model.d.ts +12 -8
  26. package/dist/src/mutation/model.d.ts.map +1 -1
  27. package/dist/src/mutation/model.js +13 -13
  28. package/dist/src/mutation/model.js.map +1 -1
  29. package/dist/src/mutation/mutation-engine.d.ts +71 -26
  30. package/dist/src/mutation/mutation-engine.d.ts.map +1 -1
  31. package/dist/src/mutation/mutation-engine.js +130 -99
  32. package/dist/src/mutation/mutation-engine.js.map +1 -1
  33. package/dist/src/mutation/mutation.d.ts +12 -36
  34. package/dist/src/mutation/mutation.d.ts.map +1 -1
  35. package/dist/src/mutation/mutation.js +10 -13
  36. package/dist/src/mutation/mutation.js.map +1 -1
  37. package/dist/src/mutation/operation.d.ts +6 -4
  38. package/dist/src/mutation/operation.d.ts.map +1 -1
  39. package/dist/src/mutation/operation.js +4 -4
  40. package/dist/src/mutation/operation.js.map +1 -1
  41. package/dist/src/mutation/scalar.d.ts +5 -4
  42. package/dist/src/mutation/scalar.d.ts.map +1 -1
  43. package/dist/src/mutation/scalar.js +3 -3
  44. package/dist/src/mutation/scalar.js.map +1 -1
  45. package/dist/src/mutation/simple-mutation-engine.d.ts +118 -3
  46. package/dist/src/mutation/simple-mutation-engine.d.ts.map +1 -1
  47. package/dist/src/mutation/simple-mutation-engine.js +233 -5
  48. package/dist/src/mutation/simple-mutation-engine.js.map +1 -1
  49. package/dist/src/mutation/simple-mutation-engine.test.d.ts +2 -0
  50. package/dist/src/mutation/simple-mutation-engine.test.d.ts.map +1 -0
  51. package/dist/src/mutation/simple-mutation-engine.test.js +231 -0
  52. package/dist/src/mutation/simple-mutation-engine.test.js.map +1 -0
  53. package/dist/src/mutation/union-variant.d.ts +5 -4
  54. package/dist/src/mutation/union-variant.d.ts.map +1 -1
  55. package/dist/src/mutation/union-variant.js +3 -3
  56. package/dist/src/mutation/union-variant.js.map +1 -1
  57. package/dist/src/mutation/union.d.ts +5 -4
  58. package/dist/src/mutation/union.d.ts.map +1 -1
  59. package/dist/src/mutation/union.js +6 -6
  60. package/dist/src/mutation/union.js.map +1 -1
  61. package/dist/src/mutation-node/enum-member.d.ts +5 -2
  62. package/dist/src/mutation-node/enum-member.d.ts.map +1 -1
  63. package/dist/src/mutation-node/enum-member.js +18 -1
  64. package/dist/src/mutation-node/enum-member.js.map +1 -1
  65. package/dist/src/mutation-node/enum-member.test.js +34 -6
  66. package/dist/src/mutation-node/enum-member.test.js.map +1 -1
  67. package/dist/src/mutation-node/enum.d.ts +3 -2
  68. package/dist/src/mutation-node/enum.d.ts.map +1 -1
  69. package/dist/src/mutation-node/enum.js +23 -17
  70. package/dist/src/mutation-node/enum.js.map +1 -1
  71. package/dist/src/mutation-node/enum.test.js +9 -22
  72. package/dist/src/mutation-node/enum.test.js.map +1 -1
  73. package/dist/src/mutation-node/factory.d.ts +3 -2
  74. package/dist/src/mutation-node/factory.d.ts.map +1 -1
  75. package/dist/src/mutation-node/factory.js +13 -13
  76. package/dist/src/mutation-node/factory.js.map +1 -1
  77. package/dist/src/mutation-node/index.d.ts +1 -1
  78. package/dist/src/mutation-node/index.d.ts.map +1 -1
  79. package/dist/src/mutation-node/index.js +1 -1
  80. package/dist/src/mutation-node/index.js.map +1 -1
  81. package/dist/src/mutation-node/interface.d.ts +7 -2
  82. package/dist/src/mutation-node/interface.d.ts.map +1 -1
  83. package/dist/src/mutation-node/interface.js +20 -17
  84. package/dist/src/mutation-node/interface.js.map +1 -1
  85. package/dist/src/mutation-node/intrinsic.d.ts +1 -1
  86. package/dist/src/mutation-node/intrinsic.d.ts.map +1 -1
  87. package/dist/src/mutation-node/intrinsic.js +5 -1
  88. package/dist/src/mutation-node/intrinsic.js.map +1 -1
  89. package/dist/src/mutation-node/literal.d.ts +1 -1
  90. package/dist/src/mutation-node/literal.d.ts.map +1 -1
  91. package/dist/src/mutation-node/literal.js +5 -1
  92. package/dist/src/mutation-node/literal.js.map +1 -1
  93. package/dist/src/mutation-node/model-property.d.ts +9 -4
  94. package/dist/src/mutation-node/model-property.d.ts.map +1 -1
  95. package/dist/src/mutation-node/model-property.js +38 -30
  96. package/dist/src/mutation-node/model-property.js.map +1 -1
  97. package/dist/src/mutation-node/model-property.test.js +165 -82
  98. package/dist/src/mutation-node/model-property.test.js.map +1 -1
  99. package/dist/src/mutation-node/model.d.ts +16 -4
  100. package/dist/src/mutation-node/model.d.ts.map +1 -1
  101. package/dist/src/mutation-node/model.js +97 -38
  102. package/dist/src/mutation-node/model.js.map +1 -1
  103. package/dist/src/mutation-node/model.test.js +62 -30
  104. package/dist/src/mutation-node/model.test.js.map +1 -1
  105. package/dist/src/mutation-node/mutation-edge.d.ts +47 -7
  106. package/dist/src/mutation-node/mutation-edge.d.ts.map +1 -1
  107. package/dist/src/mutation-node/mutation-edge.js +94 -10
  108. package/dist/src/mutation-node/mutation-edge.js.map +1 -1
  109. package/dist/src/mutation-node/mutation-node.d.ts +38 -9
  110. package/dist/src/mutation-node/mutation-node.d.ts.map +1 -1
  111. package/dist/src/mutation-node/mutation-node.js +82 -17
  112. package/dist/src/mutation-node/mutation-node.js.map +1 -1
  113. package/dist/src/mutation-node/mutation-node.test.js +48 -36
  114. package/dist/src/mutation-node/mutation-node.test.js.map +1 -1
  115. package/dist/src/mutation-node/operation.d.ts +12 -2
  116. package/dist/src/mutation-node/operation.d.ts.map +1 -1
  117. package/dist/src/mutation-node/operation.js +42 -19
  118. package/dist/src/mutation-node/operation.js.map +1 -1
  119. package/dist/src/mutation-node/scalar.d.ts +6 -1
  120. package/dist/src/mutation-node/scalar.d.ts.map +1 -1
  121. package/dist/src/mutation-node/scalar.js +17 -14
  122. package/dist/src/mutation-node/scalar.js.map +1 -1
  123. package/dist/src/mutation-node/scalar.test.js +11 -11
  124. package/dist/src/mutation-node/scalar.test.js.map +1 -1
  125. package/dist/src/mutation-node/tracer.d.ts +5 -0
  126. package/dist/src/mutation-node/tracer.d.ts.map +1 -0
  127. package/dist/src/mutation-node/tracer.js +17 -0
  128. package/dist/src/mutation-node/tracer.js.map +1 -0
  129. package/dist/src/mutation-node/tuple.d.ts +6 -1
  130. package/dist/src/mutation-node/tuple.d.ts.map +1 -1
  131. package/dist/src/mutation-node/tuple.js +17 -15
  132. package/dist/src/mutation-node/tuple.js.map +1 -1
  133. package/dist/src/mutation-node/tuple.test.js +10 -5
  134. package/dist/src/mutation-node/tuple.test.js.map +1 -1
  135. package/dist/src/mutation-node/union-variant.d.ts +9 -2
  136. package/dist/src/mutation-node/union-variant.d.ts.map +1 -1
  137. package/dist/src/mutation-node/union-variant.js +32 -10
  138. package/dist/src/mutation-node/union-variant.js.map +1 -1
  139. package/dist/src/mutation-node/union-variant.test.js +37 -5
  140. package/dist/src/mutation-node/union-variant.test.js.map +1 -1
  141. package/dist/src/mutation-node/union.d.ts +3 -2
  142. package/dist/src/mutation-node/union.d.ts.map +1 -1
  143. package/dist/src/mutation-node/union.js +23 -17
  144. package/dist/src/mutation-node/union.js.map +1 -1
  145. package/dist/src/mutation-node/union.test.js +5 -4
  146. package/dist/src/mutation-node/union.test.js.map +1 -1
  147. package/dist/test/utils.d.ts +2 -2
  148. package/dist/test/utils.d.ts.map +1 -1
  149. package/dist/test/utils.js +3 -4
  150. package/dist/test/utils.js.map +1 -1
  151. package/package.json +3 -3
  152. package/package.json.bak +3 -3
  153. package/readme.md +202 -235
  154. package/src/mutation/enum-member.ts +3 -2
  155. package/src/mutation/enum.ts +3 -2
  156. package/src/mutation/interface.ts +12 -5
  157. package/src/mutation/intrinsic.ts +4 -3
  158. package/src/mutation/literal.ts +4 -3
  159. package/src/mutation/model-property.ts +10 -17
  160. package/src/mutation/model.ts +38 -16
  161. package/src/mutation/mutation-engine.ts +196 -171
  162. package/src/mutation/mutation.ts +33 -59
  163. package/src/mutation/operation.ts +19 -6
  164. package/src/mutation/scalar.ts +13 -5
  165. package/src/mutation/simple-mutation-engine.test.ts +330 -0
  166. package/src/mutation/simple-mutation-engine.ts +457 -5
  167. package/src/mutation/union-variant.ts +9 -5
  168. package/src/mutation/union.ts +14 -9
  169. package/src/mutation-node/enum-member.test.ts +38 -7
  170. package/src/mutation-node/enum-member.ts +21 -2
  171. package/src/mutation-node/enum.test.ts +9 -26
  172. package/src/mutation-node/enum.ts +24 -18
  173. package/src/mutation-node/factory.ts +17 -14
  174. package/src/mutation-node/index.ts +1 -1
  175. package/src/mutation-node/interface.ts +26 -18
  176. package/src/mutation-node/intrinsic.ts +4 -1
  177. package/src/mutation-node/literal.ts +4 -1
  178. package/src/mutation-node/model-property.test.ts +177 -99
  179. package/src/mutation-node/model-property.ts +46 -33
  180. package/src/mutation-node/model.test.ts +64 -31
  181. package/src/mutation-node/model.ts +116 -43
  182. package/src/mutation-node/mutation-edge.ts +131 -17
  183. package/src/mutation-node/mutation-node.test.ts +55 -38
  184. package/src/mutation-node/mutation-node.ts +104 -23
  185. package/src/mutation-node/operation.ts +54 -22
  186. package/src/mutation-node/scalar.test.ts +12 -12
  187. package/src/mutation-node/scalar.ts +23 -16
  188. package/src/mutation-node/tracer.ts +18 -0
  189. package/src/mutation-node/tuple.test.ts +10 -5
  190. package/src/mutation-node/tuple.ts +23 -16
  191. package/src/mutation-node/union-variant.test.ts +41 -5
  192. package/src/mutation-node/union-variant.ts +40 -11
  193. package/src/mutation-node/union.test.ts +5 -4
  194. package/src/mutation-node/union.ts +24 -18
  195. package/test/utils.ts +3 -4
  196. package/dist/src/mutation/mutation-engine.test.d.ts +0 -2
  197. package/dist/src/mutation/mutation-engine.test.d.ts.map +0 -1
  198. package/dist/src/mutation/mutation-engine.test.js +0 -191
  199. package/dist/src/mutation/mutation-engine.test.js.map +0 -1
  200. package/dist/src/mutation-node/mutation-subgraph.d.ts +0 -17
  201. package/dist/src/mutation-node/mutation-subgraph.d.ts.map +0 -1
  202. package/dist/src/mutation-node/mutation-subgraph.js +0 -45
  203. package/dist/src/mutation-node/mutation-subgraph.js.map +0 -1
  204. package/src/mutation/mutation-engine.test.ts +0 -271
  205. package/src/mutation-node/mutation-subgraph.ts +0 -59
@@ -1,9 +1,9 @@
1
1
  import type { EnumMember, MemberType } from "@typespec/compiler";
2
2
  import type { CustomMutationClasses, MutationEngine, MutationOptions } from "./mutation-engine.js";
3
- import { Mutation } from "./mutation.js";
3
+ import { Mutation, type MutationInfo } from "./mutation.js";
4
4
  export declare class EnumMemberMutation<TOptions extends MutationOptions, TCustomMutations extends CustomMutationClasses, TEngine extends MutationEngine<TCustomMutations> = MutationEngine<TCustomMutations>> extends Mutation<EnumMember, TCustomMutations, TOptions, TEngine> {
5
5
  readonly kind = "EnumMember";
6
- constructor(engine: TEngine, sourceType: EnumMember, referenceTypes: MemberType[] | undefined, options: TOptions);
6
+ constructor(engine: TEngine, sourceType: EnumMember, referenceTypes: MemberType[] | undefined, options: TOptions, info: MutationInfo);
7
7
  mutate(): void;
8
8
  }
9
9
  //# sourceMappingURL=enum-member.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum-member.d.ts","sourceRoot":"","sources":["../../../src/mutation/enum-member.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,kBAAkB,CAC7B,QAAQ,SAAS,eAAe,EAChC,gBAAgB,SAAS,qBAAqB,EAC9C,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,CACnF,SAAQ,QAAQ,CAAC,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC;IACjE,QAAQ,CAAC,IAAI,gBAAgB;gBAG3B,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,UAAU,EAAE,YAAK,EACjC,OAAO,EAAE,QAAQ;IAKnB,MAAM;CAGP"}
1
+ {"version":3,"file":"enum-member.d.ts","sourceRoot":"","sources":["../../../src/mutation/enum-member.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAE5D,qBAAa,kBAAkB,CAC7B,QAAQ,SAAS,eAAe,EAChC,gBAAgB,SAAS,qBAAqB,EAC9C,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,CACnF,SAAQ,QAAQ,CAAC,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC;IACjE,QAAQ,CAAC,IAAI,gBAAgB;gBAG3B,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,UAAU,EAAE,YAAK,EACjC,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,YAAY;IAKpB,MAAM;CAGP"}
@@ -1,8 +1,8 @@
1
1
  import { Mutation } from "./mutation.js";
2
2
  export class EnumMemberMutation extends Mutation {
3
3
  kind = "EnumMember";
4
- constructor(engine, sourceType, referenceTypes = [], options) {
5
- super(engine, sourceType, referenceTypes, options);
4
+ constructor(engine, sourceType, referenceTypes = [], options, info) {
5
+ super(engine, sourceType, referenceTypes, options, info);
6
6
  }
7
7
  mutate() {
8
8
  // EnumMember is a leaf type with no children to mutate
@@ -1 +1 @@
1
- {"version":3,"file":"enum-member.js","sourceRoot":"","sources":["../../../src/mutation/enum-member.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,kBAIX,SAAQ,QAAyD;IACxD,IAAI,GAAG,YAAY,CAAC;IAE7B,YACE,MAAe,EACf,UAAsB,EACtB,iBAA+B,EAAE,EACjC,OAAiB;QAEjB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,MAAM;QACJ,uDAAuD;IACzD,CAAC;CACF"}
1
+ {"version":3,"file":"enum-member.js","sourceRoot":"","sources":["../../../src/mutation/enum-member.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAqB,MAAM,eAAe,CAAC;AAE5D,MAAM,OAAO,kBAIX,SAAQ,QAAyD;IACxD,IAAI,GAAG,YAAY,CAAC;IAE7B,YACE,MAAe,EACf,UAAsB,EACtB,iBAA+B,EAAE,EACjC,OAAiB,EACjB,IAAkB;QAElB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM;QACJ,uDAAuD;IACzD,CAAC;CACF"}
@@ -1,10 +1,10 @@
1
1
  import type { Enum, MemberType } from "@typespec/compiler";
2
2
  import type { CustomMutationClasses, MutationEngine, MutationFor, MutationOptions } from "./mutation-engine.js";
3
- import { Mutation } from "./mutation.js";
3
+ import { Mutation, type MutationInfo } from "./mutation.js";
4
4
  export declare class EnumMutation<TOptions extends MutationOptions, TCustomMutations extends CustomMutationClasses, TEngine extends MutationEngine<TCustomMutations> = MutationEngine<TCustomMutations>> extends Mutation<Enum, TCustomMutations, TOptions, TEngine> {
5
5
  readonly kind = "Enum";
6
6
  members: Map<string, MutationFor<TCustomMutations, "EnumMember">>;
7
- constructor(engine: TEngine, sourceType: Enum, referenceTypes: MemberType[] | undefined, options: TOptions);
7
+ constructor(engine: TEngine, sourceType: Enum, referenceTypes: MemberType[] | undefined, options: TOptions, info: MutationInfo);
8
8
  protected mutateMembers(): void;
9
9
  mutate(): void;
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../src/mutation/enum.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,YAAY,CACvB,QAAQ,SAAS,eAAe,EAChC,gBAAgB,SAAS,qBAAqB,EAC9C,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,CACnF,SAAQ,QAAQ,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC;IAC3D,QAAQ,CAAC,IAAI,UAAU;IACvB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAa;gBAG5E,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,IAAI,EAChB,cAAc,EAAE,UAAU,EAAE,YAAK,EACjC,OAAO,EAAE,QAAQ;IAKnB,SAAS,CAAC,aAAa;IAMvB,MAAM;CAGP"}
1
+ {"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../src/mutation/enum.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAE5D,qBAAa,YAAY,CACvB,QAAQ,SAAS,eAAe,EAChC,gBAAgB,SAAS,qBAAqB,EAC9C,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,CACnF,SAAQ,QAAQ,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC;IAC3D,QAAQ,CAAC,IAAI,UAAU;IACvB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAa;gBAG5E,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,IAAI,EAChB,cAAc,EAAE,UAAU,EAAE,YAAK,EACjC,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,YAAY;IAKpB,SAAS,CAAC,aAAa;IAMvB,MAAM;CAGP"}
@@ -2,8 +2,8 @@ import { Mutation } from "./mutation.js";
2
2
  export class EnumMutation extends Mutation {
3
3
  kind = "Enum";
4
4
  members = new Map();
5
- constructor(engine, sourceType, referenceTypes = [], options) {
6
- super(engine, sourceType, referenceTypes, options);
5
+ constructor(engine, sourceType, referenceTypes = [], options, info) {
6
+ super(engine, sourceType, referenceTypes, options, info);
7
7
  }
8
8
  mutateMembers() {
9
9
  for (const member of this.sourceType.members.values()) {
@@ -1 +1 @@
1
- {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../src/mutation/enum.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,YAIX,SAAQ,QAAmD;IAClD,IAAI,GAAG,MAAM,CAAC;IACvB,OAAO,GAA6D,IAAI,GAAG,EAAE,CAAC;IAE9E,YACE,MAAe,EACf,UAAgB,EAChB,iBAA+B,EAAE,EACjC,OAAiB;QAEjB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAES,aAAa;QACrB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../src/mutation/enum.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAqB,MAAM,eAAe,CAAC;AAE5D,MAAM,OAAO,YAIX,SAAQ,QAAmD;IAClD,IAAI,GAAG,MAAM,CAAC;IACvB,OAAO,GAA6D,IAAI,GAAG,EAAE,CAAC;IAE9E,YACE,MAAe,EACf,UAAgB,EAChB,iBAA+B,EAAE,EACjC,OAAiB,EACjB,IAAkB;QAElB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAES,aAAa;QACrB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;CACF"}
@@ -1,11 +1,12 @@
1
1
  import type { Interface, MemberType } from "@typespec/compiler";
2
- import type { CustomMutationClasses, MutationEngine, MutationFor, MutationOptions } from "./mutation-engine.js";
3
- import { Mutation } from "./mutation.js";
4
- export declare class InterfaceMutation<TOptions extends MutationOptions, TCustomMutations extends CustomMutationClasses> extends Mutation<Interface, TCustomMutations, TOptions> {
2
+ import type { CustomMutationClasses, MutationEngine, MutationFor, MutationHalfEdge, MutationOptions } from "./mutation-engine.js";
3
+ import { Mutation, type MutationInfo } from "./mutation.js";
4
+ export declare abstract class InterfaceMutation<TOptions extends MutationOptions, TCustomMutations extends CustomMutationClasses> extends Mutation<Interface, TCustomMutations, TOptions> {
5
5
  readonly kind = "Interface";
6
6
  operations: Map<string, MutationFor<TCustomMutations, "Operation">>;
7
- constructor(engine: MutationEngine<TCustomMutations>, sourceType: Interface, referenceTypes: MemberType[] | undefined, options: TOptions);
7
+ constructor(engine: MutationEngine<TCustomMutations>, sourceType: Interface, referenceTypes: MemberType[], options: TOptions, info: MutationInfo);
8
8
  protected mutateOperations(): void;
9
+ protected abstract startOperationEdge(): MutationHalfEdge;
9
10
  mutate(): void;
10
11
  }
11
12
  //# sourceMappingURL=interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/mutation/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,iBAAiB,CAC5B,QAAQ,SAAS,eAAe,EAChC,gBAAgB,SAAS,qBAAqB,CAC9C,SAAQ,QAAQ,CAAC,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAC;IACvD,QAAQ,CAAC,IAAI,eAAe;IAC5B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAa;gBAG9E,MAAM,EAAE,cAAc,CAAC,gBAAgB,CAAC,EACxC,UAAU,EAAE,SAAS,EACrB,cAAc,EAAE,UAAU,EAAE,YAAK,EACjC,OAAO,EAAE,QAAQ;IAKnB,SAAS,CAAC,gBAAgB;IAS1B,MAAM;CAGP"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/mutation/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAE5D,8BAAsB,iBAAiB,CACrC,QAAQ,SAAS,eAAe,EAChC,gBAAgB,SAAS,qBAAqB,CAC9C,SAAQ,QAAQ,CAAC,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAC;IACvD,QAAQ,CAAC,IAAI,eAAe;IAC5B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAa;gBAG9E,MAAM,EAAE,cAAc,CAAC,gBAAgB,CAAC,EACxC,UAAU,EAAE,SAAS,EACrB,cAAc,EAAE,UAAU,EAAE,EAC5B,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,YAAY;IAKpB,SAAS,CAAC,gBAAgB;IAY1B,SAAS,CAAC,QAAQ,CAAC,kBAAkB,IAAI,gBAAgB;IAEzD,MAAM;CAGP"}
@@ -2,12 +2,12 @@ import { Mutation } from "./mutation.js";
2
2
  export class InterfaceMutation extends Mutation {
3
3
  kind = "Interface";
4
4
  operations = new Map();
5
- constructor(engine, sourceType, referenceTypes = [], options) {
6
- super(engine, sourceType, referenceTypes, options);
5
+ constructor(engine, sourceType, referenceTypes, options, info) {
6
+ super(engine, sourceType, referenceTypes, options, info);
7
7
  }
8
8
  mutateOperations() {
9
9
  for (const op of this.sourceType.operations.values()) {
10
- this.operations.set(op.name, this.engine.mutate(op, this.options));
10
+ this.operations.set(op.name, this.engine.mutate(op, this.options, this.startOperationEdge()));
11
11
  }
12
12
  }
13
13
  mutate() {
@@ -1 +1 @@
1
- {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/mutation/interface.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,iBAGX,SAAQ,QAA+C;IAC9C,IAAI,GAAG,WAAW,CAAC;IAC5B,UAAU,GAA4D,IAAI,GAAG,EAAE,CAAC;IAEhF,YACE,MAAwC,EACxC,UAAqB,EACrB,iBAA+B,EAAE,EACjC,OAAiB;QAEjB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAES,gBAAgB;QACxB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,EAAE,CAAC,IAAI,EACP,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAA+C,CACnF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/mutation/interface.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAqB,MAAM,eAAe,CAAC;AAE5D,MAAM,OAAgB,iBAGpB,SAAQ,QAA+C;IAC9C,IAAI,GAAG,WAAW,CAAC;IAC5B,UAAU,GAA4D,IAAI,GAAG,EAAE,CAAC;IAEhF,YACE,MAAwC,EACxC,UAAqB,EACrB,cAA4B,EAC5B,OAAiB,EACjB,IAAkB;QAElB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAES,gBAAgB;QACxB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,EAAE,CAAC,IAAI,EACP,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAG7D,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAID,MAAM;QACJ,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;CACF"}
@@ -1,9 +1,9 @@
1
1
  import type { IntrinsicType, MemberType } from "@typespec/compiler";
2
2
  import type { CustomMutationClasses, MutationEngine, MutationOptions } from "./mutation-engine.js";
3
- import { Mutation } from "./mutation.js";
3
+ import { Mutation, type MutationInfo } from "./mutation.js";
4
4
  export declare class IntrinsicMutation<TOptions extends MutationOptions, TCustomMutations extends CustomMutationClasses, TEngine extends MutationEngine<TCustomMutations> = MutationEngine<TCustomMutations>> extends Mutation<IntrinsicType, TCustomMutations, TOptions, TEngine> {
5
5
  readonly kind = "Intrinsic";
6
- constructor(engine: TEngine, sourceType: IntrinsicType, referenceTypes: MemberType[] | undefined, options: TOptions);
6
+ constructor(engine: TEngine, sourceType: IntrinsicType, referenceTypes: MemberType[], options: TOptions, info: MutationInfo);
7
7
  mutate(): void;
8
8
  }
9
9
  //# sourceMappingURL=intrinsic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"intrinsic.d.ts","sourceRoot":"","sources":["../../../src/mutation/intrinsic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,iBAAiB,CAC5B,QAAQ,SAAS,eAAe,EAChC,gBAAgB,SAAS,qBAAqB,EAC9C,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,CACnF,SAAQ,QAAQ,CAAC,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC;IACpE,QAAQ,CAAC,IAAI,eAAe;gBAE1B,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,aAAa,EACzB,cAAc,EAAE,UAAU,EAAE,YAAK,EACjC,OAAO,EAAE,QAAQ;IAKnB,MAAM;CAGP"}
1
+ {"version":3,"file":"intrinsic.d.ts","sourceRoot":"","sources":["../../../src/mutation/intrinsic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAE5D,qBAAa,iBAAiB,CAC5B,QAAQ,SAAS,eAAe,EAChC,gBAAgB,SAAS,qBAAqB,EAC9C,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,CACnF,SAAQ,QAAQ,CAAC,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC;IACpE,QAAQ,CAAC,IAAI,eAAe;gBAE1B,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,aAAa,EACzB,cAAc,EAAE,UAAU,EAAE,EAC5B,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,YAAY;IAKpB,MAAM;CAGP"}
@@ -1,8 +1,8 @@
1
1
  import { Mutation } from "./mutation.js";
2
2
  export class IntrinsicMutation extends Mutation {
3
3
  kind = "Intrinsic";
4
- constructor(engine, sourceType, referenceTypes = [], options) {
5
- super(engine, sourceType, referenceTypes, options);
4
+ constructor(engine, sourceType, referenceTypes, options, info) {
5
+ super(engine, sourceType, referenceTypes, options, info);
6
6
  }
7
7
  mutate() {
8
8
  // No mutations needed for intrinsic types
@@ -1 +1 @@
1
- {"version":3,"file":"intrinsic.js","sourceRoot":"","sources":["../../../src/mutation/intrinsic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,iBAIX,SAAQ,QAA4D;IAC3D,IAAI,GAAG,WAAW,CAAC;IAC5B,YACE,MAAe,EACf,UAAyB,EACzB,iBAA+B,EAAE,EACjC,OAAiB;QAEjB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,MAAM;QACJ,0CAA0C;IAC5C,CAAC;CACF"}
1
+ {"version":3,"file":"intrinsic.js","sourceRoot":"","sources":["../../../src/mutation/intrinsic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAqB,MAAM,eAAe,CAAC;AAE5D,MAAM,OAAO,iBAIX,SAAQ,QAA4D;IAC3D,IAAI,GAAG,WAAW,CAAC;IAC5B,YACE,MAAe,EACf,UAAyB,EACzB,cAA4B,EAC5B,OAAiB,EACjB,IAAkB;QAElB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM;QACJ,0CAA0C;IAC5C,CAAC;CACF"}
@@ -1,9 +1,9 @@
1
1
  import type { BooleanLiteral, MemberType, NumericLiteral, StringLiteral } from "@typespec/compiler";
2
2
  import type { CustomMutationClasses, MutationEngine, MutationOptions } from "./mutation-engine.js";
3
- import { Mutation } from "./mutation.js";
3
+ import { Mutation, type MutationInfo } from "./mutation.js";
4
4
  export declare class LiteralMutation<TOptions extends MutationOptions, TCustomMutations extends CustomMutationClasses, TEngine extends MutationEngine<TCustomMutations> = MutationEngine<TCustomMutations>> extends Mutation<StringLiteral | NumericLiteral | BooleanLiteral, TCustomMutations, TOptions, TEngine> {
5
5
  readonly kind = "Literal";
6
- constructor(engine: TEngine, sourceType: StringLiteral | NumericLiteral | BooleanLiteral, referenceTypes: MemberType[] | undefined, options: TOptions);
6
+ constructor(engine: TEngine, sourceType: StringLiteral | NumericLiteral | BooleanLiteral, referenceTypes: MemberType[], options: TOptions, info: MutationInfo);
7
7
  mutate(): void;
8
8
  }
9
9
  //# sourceMappingURL=literal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"literal.d.ts","sourceRoot":"","sources":["../../../src/mutation/literal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpG,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,eAAe,CAC1B,QAAQ,SAAS,eAAe,EAChC,gBAAgB,SAAS,qBAAqB,EAC9C,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,CACnF,SAAQ,QAAQ,CAChB,aAAa,GAAG,cAAc,GAAG,cAAc,EAC/C,gBAAgB,EAChB,QAAQ,EACR,OAAO,CACR;IACC,QAAQ,CAAC,IAAI,aAAa;gBAGxB,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,aAAa,GAAG,cAAc,GAAG,cAAc,EAC3D,cAAc,EAAE,UAAU,EAAE,YAAK,EACjC,OAAO,EAAE,QAAQ;IAKnB,MAAM;CAGP"}
1
+ {"version":3,"file":"literal.d.ts","sourceRoot":"","sources":["../../../src/mutation/literal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpG,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAE5D,qBAAa,eAAe,CAC1B,QAAQ,SAAS,eAAe,EAChC,gBAAgB,SAAS,qBAAqB,EAC9C,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,CACnF,SAAQ,QAAQ,CAChB,aAAa,GAAG,cAAc,GAAG,cAAc,EAC/C,gBAAgB,EAChB,QAAQ,EACR,OAAO,CACR;IACC,QAAQ,CAAC,IAAI,aAAa;gBAGxB,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,aAAa,GAAG,cAAc,GAAG,cAAc,EAC3D,cAAc,EAAE,UAAU,EAAE,EAC5B,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,YAAY;IAKpB,MAAM;CAGP"}
@@ -1,8 +1,8 @@
1
1
  import { Mutation } from "./mutation.js";
2
2
  export class LiteralMutation extends Mutation {
3
3
  kind = "Literal";
4
- constructor(engine, sourceType, referenceTypes = [], options) {
5
- super(engine, sourceType, referenceTypes, options);
4
+ constructor(engine, sourceType, referenceTypes, options, info) {
5
+ super(engine, sourceType, referenceTypes, options, info);
6
6
  }
7
7
  mutate() {
8
8
  // No mutations needed for literal types
@@ -1 +1 @@
1
- {"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../src/mutation/literal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,eAIX,SAAQ,QAKT;IACU,IAAI,GAAG,SAAS,CAAC;IAE1B,YACE,MAAe,EACf,UAA2D,EAC3D,iBAA+B,EAAE,EACjC,OAAiB;QAEjB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,MAAM;QACJ,wCAAwC;IAC1C,CAAC;CACF"}
1
+ {"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../src/mutation/literal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAqB,MAAM,eAAe,CAAC;AAE5D,MAAM,OAAO,eAIX,SAAQ,QAKT;IACU,IAAI,GAAG,SAAS,CAAC;IAE1B,YACE,MAAe,EACf,UAA2D,EAC3D,cAA4B,EAC5B,OAAiB,EACjB,IAAkB;QAElB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM;QACJ,wCAAwC;IAC1C,CAAC;CACF"}
@@ -1,12 +1,10 @@
1
1
  import type { ModelProperty, Type } from "@typespec/compiler";
2
- import type { MutationSubgraph } from "../mutation-node/mutation-subgraph.js";
3
- import type { CustomMutationClasses, MutationEngine, MutationFor, MutationOptions } from "./mutation-engine.js";
2
+ import type { CustomMutationClasses, MutationEngine, MutationFor, MutationHalfEdge, MutationOptions } from "./mutation-engine.js";
4
3
  import { Mutation } from "./mutation.js";
5
- export declare class ModelPropertyMutation<TOptions extends MutationOptions, TCustomMutations extends CustomMutationClasses, TEngine extends MutationEngine<TCustomMutations> = MutationEngine<TCustomMutations>> extends Mutation<ModelProperty, TCustomMutations, TOptions, TEngine> {
4
+ export declare abstract class ModelPropertyMutation<TCustomMutations extends CustomMutationClasses, TOptions extends MutationOptions, TEngine extends MutationEngine<TCustomMutations> = MutationEngine<TCustomMutations>> extends Mutation<ModelProperty, TCustomMutations, TOptions, TEngine> {
6
5
  readonly kind = "ModelProperty";
7
6
  type: MutationFor<TCustomMutations, Type["kind"]>;
8
- mutate(): void;
9
- getReferenceMutationNode(subgraph?: MutationSubgraph): import("../index.js").MutationNode<Type>;
10
- replaceReferencedType(subgraph: MutationSubgraph, newType: Type): MutationFor<TCustomMutations, "Boolean" | "Number" | "String" | "Decorator" | "Intrinsic" | "FunctionParameter" | "Namespace" | "ScalarConstructor" | "StringTemplate" | "StringTemplateSpan" | "TemplateParameter" | "EnumMember" | "Enum" | "Interface" | "UnionVariant" | "ModelProperty" | "Model" | "Operation" | "Scalar" | "Tuple" | "Union">;
7
+ mutate(newOptions?: MutationOptions): void;
8
+ protected abstract startTypeEdge(): MutationHalfEdge;
11
9
  }
12
10
  //# sourceMappingURL=model-property.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-property.d.ts","sourceRoot":"","sources":["../../../src/mutation/model-property.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,qBAAqB,CAChC,QAAQ,SAAS,eAAe,EAChC,gBAAgB,SAAS,qBAAqB,EAC9C,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,CACnF,SAAQ,QAAQ,CAAC,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC;IACpE,QAAQ,CAAC,IAAI,mBAAmB;IAChC,IAAI,EAAG,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnD,MAAM;IAIN,wBAAwB,CACtB,QAAQ,GAAE,gBAAuE;IAKnF,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI;CAMhE"}
1
+ {"version":3,"file":"model-property.d.ts","sourceRoot":"","sources":["../../../src/mutation/model-property.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,8BAAsB,qBAAqB,CACzC,gBAAgB,SAAS,qBAAqB,EAC9C,QAAQ,SAAS,eAAe,EAChC,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,CACnF,SAAQ,QAAQ,CAAC,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC;IACpE,QAAQ,CAAC,IAAI,mBAAmB;IAChC,IAAI,EAAG,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnD,MAAM,CAAC,UAAU,GAAE,eAA8B;IAQjD,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,gBAAgB;CACrD"}
@@ -2,17 +2,8 @@ import { Mutation } from "./mutation.js";
2
2
  export class ModelPropertyMutation extends Mutation {
3
3
  kind = "ModelProperty";
4
4
  type;
5
- mutate() {
6
- this.type = this.engine.mutateReference(this.sourceType, this.options);
7
- }
8
- getReferenceMutationNode(subgraph = this.engine.getDefaultMutationSubgraph(this.options)) {
9
- return subgraph.getReferenceNode(this.sourceType);
10
- }
11
- replaceReferencedType(subgraph, newType) {
12
- // First, update the mutation node
13
- subgraph.getReferenceNode(this.sourceType).replace(newType);
14
- // then return a new reference mutation for the new type
15
- return this.engine.mutateReference(this.sourceType, newType, this.options);
5
+ mutate(newOptions = this.options) {
6
+ this.type = this.engine.mutateReference(this.sourceType, newOptions, this.startTypeEdge());
16
7
  }
17
8
  }
18
9
  //# sourceMappingURL=model-property.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-property.js","sourceRoot":"","sources":["../../../src/mutation/model-property.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,qBAIX,SAAQ,QAA4D;IAC3D,IAAI,GAAG,eAAe,CAAC;IAChC,IAAI,CAA+C;IAEnD,MAAM;QACJ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,wBAAwB,CACtB,WAA6B,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;QAEjF,OAAO,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IAED,qBAAqB,CAAC,QAA0B,EAAE,OAAa;QAC7D,kCAAkC;QAClC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5D,wDAAwD;QACxD,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7E,CAAC;CACF"}
1
+ {"version":3,"file":"model-property.js","sourceRoot":"","sources":["../../../src/mutation/model-property.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAgB,qBAIpB,SAAQ,QAA4D;IAC3D,IAAI,GAAG,eAAe,CAAC;IAChC,IAAI,CAA+C;IAEnD,MAAM,CAAC,aAA8B,IAAI,CAAC,OAAO;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CACrC,IAAI,CAAC,UAAU,EACf,UAAU,EACV,IAAI,CAAC,aAAa,EAAE,CAC0B,CAAC;IACnD,CAAC;CAGF"}
@@ -1,7 +1,7 @@
1
1
  import type { MemberType, Model, Type } from "@typespec/compiler";
2
- import type { CustomMutationClasses, MutationEngine, MutationFor, MutationOptions } from "./mutation-engine.js";
3
- import { Mutation } from "./mutation.js";
4
- export declare class ModelMutation<TOptions extends MutationOptions, TCustomMutations extends CustomMutationClasses, TEngine extends MutationEngine<TCustomMutations> = MutationEngine<TCustomMutations>> extends Mutation<Model, TCustomMutations, TOptions, TEngine> {
2
+ import type { CustomMutationClasses, MutationEngine, MutationFor, MutationHalfEdge, MutationOptions } from "./mutation-engine.js";
3
+ import { Mutation, type MutationInfo } from "./mutation.js";
4
+ export declare abstract class ModelMutation<TCustomMutations extends CustomMutationClasses, TOptions extends MutationOptions, TEngine extends MutationEngine<TCustomMutations> = MutationEngine<TCustomMutations>> extends Mutation<Model, TCustomMutations, TOptions, TEngine> {
5
5
  readonly kind = "Model";
6
6
  baseModel?: MutationFor<TCustomMutations, "Model">;
7
7
  properties: Map<string, MutationFor<TCustomMutations, "ModelProperty">>;
@@ -9,10 +9,14 @@ export declare class ModelMutation<TOptions extends MutationOptions, TCustomMuta
9
9
  key: MutationFor<TCustomMutations, "Scalar">;
10
10
  value: MutationFor<TCustomMutations, Type["kind"]>;
11
11
  };
12
- constructor(engine: TEngine, sourceType: Model, referenceTypes: MemberType[] | undefined, options: TOptions);
13
- protected mutateBaseModel(): void;
14
- protected mutateProperties(): void;
15
- protected mutateIndexer(): void;
16
- mutate(): void;
12
+ constructor(engine: TEngine, sourceType: Model, referenceTypes: MemberType[], options: TOptions, info: MutationInfo);
13
+ protected mutateBaseModel(newOptions?: MutationOptions): void;
14
+ protected mutateProperties(newOptions?: MutationOptions): void;
15
+ protected mutateIndexer(newOptions?: MutationOptions): void;
16
+ protected abstract startBaseEdge(): MutationHalfEdge;
17
+ protected abstract startPropertyEdge(): MutationHalfEdge;
18
+ protected abstract startIndexerValueEdge(): MutationHalfEdge;
19
+ protected abstract startIndexerKeyEdge(): MutationHalfEdge;
20
+ mutate(newOptions?: MutationOptions): void;
17
21
  }
18
22
  //# sourceMappingURL=model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/mutation/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,aAAa,CACxB,QAAQ,SAAS,eAAe,EAChC,gBAAgB,SAAS,qBAAqB,EAC9C,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,CACnF,SAAQ,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC;IAC5D,QAAQ,CAAC,IAAI,WAAW;IACxB,SAAS,CAAC,EAAE,WAAW,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACnD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAa;IACpF,OAAO,CAAC,EAAE;QACR,GAAG,EAAE,WAAW,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAC7C,KAAK,EAAE,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;KACpD,CAAC;gBAGA,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,KAAK,EACjB,cAAc,EAAE,UAAU,EAAE,YAAK,EACjC,OAAO,EAAE,QAAQ;IAKnB,SAAS,CAAC,eAAe;IAMzB,SAAS,CAAC,gBAAgB;IAM1B,SAAS,CAAC,aAAa;IASvB,MAAM;CAKP"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/mutation/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAE5D,8BAAsB,aAAa,CACjC,gBAAgB,SAAS,qBAAqB,EAC9C,QAAQ,SAAS,eAAe,EAChC,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,CACnF,SAAQ,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC;IAC5D,QAAQ,CAAC,IAAI,WAAW;IACxB,SAAS,CAAC,EAAE,WAAW,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACnD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAa;IACpF,OAAO,CAAC,EAAE;QACR,GAAG,EAAE,WAAW,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAC7C,KAAK,EAAE,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;KACpD,CAAC;gBAGA,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,KAAK,EACjB,cAAc,EAAE,UAAU,EAAE,EAC5B,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,YAAY;IAKpB,SAAS,CAAC,eAAe,CAAC,UAAU,GAAE,eAA8B;IAUpE,SAAS,CAAC,gBAAgB,CAAC,UAAU,GAAE,eAA8B;IASrE,SAAS,CAAC,aAAa,CAAC,UAAU,GAAE,eAA8B;IAiBlE,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,gBAAgB;IACpD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,IAAI,gBAAgB;IACxD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,IAAI,gBAAgB;IAC5D,SAAS,CAAC,QAAQ,CAAC,mBAAmB,IAAI,gBAAgB;IAE1D,MAAM,CAAC,UAAU,GAAE,eAA8B;CAKlD"}
@@ -4,31 +4,31 @@ export class ModelMutation extends Mutation {
4
4
  baseModel;
5
5
  properties = new Map();
6
6
  indexer;
7
- constructor(engine, sourceType, referenceTypes = [], options) {
8
- super(engine, sourceType, referenceTypes, options);
7
+ constructor(engine, sourceType, referenceTypes, options, info) {
8
+ super(engine, sourceType, referenceTypes, options, info);
9
9
  }
10
- mutateBaseModel() {
10
+ mutateBaseModel(newOptions = this.options) {
11
11
  if (this.sourceType.baseModel) {
12
- this.baseModel = this.engine.mutate(this.sourceType.baseModel, this.options);
12
+ this.baseModel = this.engine.mutate(this.sourceType.baseModel, newOptions, this.startBaseEdge());
13
13
  }
14
14
  }
15
- mutateProperties() {
15
+ mutateProperties(newOptions = this.options) {
16
16
  for (const prop of this.sourceType.properties.values()) {
17
- this.properties.set(prop.name, this.engine.mutate(prop, this.options));
17
+ this.properties.set(prop.name, this.engine.mutate(prop, newOptions, this.startPropertyEdge()));
18
18
  }
19
19
  }
20
- mutateIndexer() {
20
+ mutateIndexer(newOptions = this.options) {
21
21
  if (this.sourceType.indexer) {
22
22
  this.indexer = {
23
- key: this.engine.mutate(this.sourceType.indexer.key, this.options),
24
- value: this.engine.mutate(this.sourceType.indexer.value, this.options),
23
+ key: this.engine.mutate(this.sourceType.indexer.key, newOptions, this.startIndexerKeyEdge()),
24
+ value: this.engine.mutate(this.sourceType.indexer.value, newOptions, this.startIndexerValueEdge()),
25
25
  };
26
26
  }
27
27
  }
28
- mutate() {
29
- this.mutateBaseModel();
30
- this.mutateProperties();
31
- this.mutateIndexer();
28
+ mutate(newOptions = this.options) {
29
+ this.mutateBaseModel(newOptions);
30
+ this.mutateProperties(newOptions);
31
+ this.mutateIndexer(newOptions);
32
32
  }
33
33
  }
34
34
  //# sourceMappingURL=model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/mutation/model.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,aAIX,SAAQ,QAAoD;IACnD,IAAI,GAAG,OAAO,CAAC;IACxB,SAAS,CAA0C;IACnD,UAAU,GAAgE,IAAI,GAAG,EAAE,CAAC;IACpF,OAAO,CAGL;IAEF,YACE,MAAe,EACf,UAAiB,EACjB,iBAA+B,EAAE,EACjC,OAAiB;QAEjB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAES,eAAe;QACvB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAES,gBAAgB;QACxB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAES,aAAa;QACrB,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,GAAG;gBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC;gBAClE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;aACvE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/mutation/model.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAqB,MAAM,eAAe,CAAC;AAE5D,MAAM,OAAgB,aAIpB,SAAQ,QAAoD;IACnD,IAAI,GAAG,OAAO,CAAC;IACxB,SAAS,CAA0C;IACnD,UAAU,GAAgE,IAAI,GAAG,EAAE,CAAC;IACpF,OAAO,CAGL;IAEF,YACE,MAAe,EACf,UAAiB,EACjB,cAA4B,EAC5B,OAAiB,EACjB,IAAkB;QAElB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAES,eAAe,CAAC,aAA8B,IAAI,CAAC,OAAO;QAClE,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CACjC,IAAI,CAAC,UAAU,CAAC,SAAS,EACzB,UAAU,EACV,IAAI,CAAC,aAAa,EAAE,CACrB,CAAC;QACJ,CAAC;IACH,CAAC;IAES,gBAAgB,CAAC,aAA8B,IAAI,CAAC,OAAO;QACnE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IAES,aAAa,CAAC,aAA8B,IAAI,CAAC,OAAO;QAChE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,GAAG;gBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CACrB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAC3B,UAAU,EACV,IAAI,CAAC,mBAAmB,EAAE,CAC3B;gBACD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CACvB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAC7B,UAAU,EACV,IAAI,CAAC,qBAAqB,EAAE,CAC7B;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAOD,MAAM,CAAC,aAA8B,IAAI,CAAC,OAAO;QAC/C,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import type { MemberType, Type } from "@typespec/compiler";
2
2
  import type { Typekit } from "@typespec/compiler/typekit";
3
- import type { MutationNodeForType } from "../mutation-node/factory.js";
4
- import { MutationSubgraph } from "../mutation-node/mutation-subgraph.js";
3
+ import { type MutationNodeForType } from "../mutation-node/factory.js";
4
+ import { MutationNode, type MutationNodeOptions } from "../mutation-node/mutation-node.js";
5
5
  import { EnumMemberMutation } from "./enum-member.js";
6
6
  import { EnumMutation } from "./enum.js";
7
7
  import { InterfaceMutation } from "./interface.js";
@@ -18,9 +18,9 @@ export type MutationRegistry = Record<Type["kind"], Mutation<Type, any, any>>;
18
18
  export interface DefaultMutationClasses<TCustomMutations extends CustomMutationClasses> extends MutationRegistry {
19
19
  Operation: OperationMutation<MutationOptions, TCustomMutations>;
20
20
  Interface: InterfaceMutation<MutationOptions, TCustomMutations>;
21
- Model: ModelMutation<MutationOptions, TCustomMutations>;
21
+ Model: ModelMutation<TCustomMutations, MutationOptions>;
22
22
  Scalar: ScalarMutation<MutationOptions, TCustomMutations>;
23
- ModelProperty: ModelPropertyMutation<MutationOptions, TCustomMutations>;
23
+ ModelProperty: ModelPropertyMutation<TCustomMutations, MutationOptions>;
24
24
  Union: UnionMutation<MutationOptions, TCustomMutations>;
25
25
  UnionVariant: UnionVariantMutation<MutationOptions, TCustomMutations>;
26
26
  Enum: EnumMutation<MutationOptions, TCustomMutations>;
@@ -40,45 +40,90 @@ export type ConstructorsFor<T> = {
40
40
  export type InstancesFor<T extends Record<string, new (...args: any[]) => any>> = {
41
41
  [K in keyof T]: InstanceType<T[K]>;
42
42
  };
43
+ export interface InitialMutationContext<TSourceType extends Type, TCustomMutations extends CustomMutationClasses, TOptions extends MutationOptions = MutationOptions, TEngine extends MutationEngine<TCustomMutations> = MutationEngine<TCustomMutations>> {
44
+ engine: TEngine;
45
+ sourceType: TSourceType;
46
+ referenceTypes: MemberType[];
47
+ options: TOptions;
48
+ }
49
+ export interface CreateMutationContext {
50
+ mutationKey: string;
51
+ }
52
+ export interface MutationContext<TSourceType extends Type, TCustomMutations extends CustomMutationClasses, TOptions extends MutationOptions = MutationOptions, TEngine extends MutationEngine<TCustomMutations> = MutationEngine<TCustomMutations>> extends InitialMutationContext<TSourceType, TCustomMutations, TOptions, TEngine>, CreateMutationContext {
53
+ }
54
+ export interface MutationTraits {
55
+ isSynthetic?: boolean;
56
+ }
57
+ /**
58
+ * Orchestrates type mutations using custom and default mutation classes.
59
+ */
43
60
  export declare class MutationEngine<TCustomMutations extends CustomMutationClasses> {
44
61
  #private;
62
+ /** TypeSpec type utilities. */
45
63
  $: Typekit;
64
+ /**
65
+ * Creates a mutation engine with optional custom mutation classes.
66
+ * @param $ - TypeSpec type utilities
67
+ * @param mutatorClasses - Custom mutation class constructors
68
+ */
46
69
  constructor($: Typekit, mutatorClasses: ConstructorsFor<TCustomMutations>);
47
- protected registerSubgraph(name: string): void;
48
- protected getMutationSubgraph(options: MutationOptions, name?: string): MutationSubgraph;
49
- getDefaultMutationSubgraph(options?: MutationOptions): MutationSubgraph;
50
70
  /**
51
- * Retrieve the mutated type from the default mutation subgraph for the given options.
71
+ * Gets or creates a mutation node for the given type and key.
72
+ * @param type - Source type
73
+ * @param mutationKey - Cache key for the node
74
+ * @returns Mutation node for the type
52
75
  */
53
- getMutatedType<T extends Type>(options: MutationOptions, sourceType: T): T;
76
+ getMutationNode<T extends Type>(type: T, options?: MutationNodeOptions | string): MutationNodeForType<T>;
54
77
  /**
55
- * Retrieve the mutated type from a specific mutation subgraph.
78
+ * Replaces one mutation node with another in the cache.
79
+ * @param oldNode - Node to remove
80
+ * @param newNode - Node to add
56
81
  */
57
- getMutatedType<T extends Type>(subgraph: MutationSubgraph, sourceType: T): T;
82
+ replaceMutationNode(oldNode: MutationNode<Type>, newNode: MutationNode<Type>): void;
58
83
  /**
59
- * Retrieve the mutated type from either the default subgraph with the given
60
- * options or a specific subgraph.
84
+ * Replaces a reference with a new type and mutates it.
85
+ * @param reference - Original reference to replace
86
+ * @param newType - New type to use
87
+ * @param options - Mutation options
88
+ * @param halfEdge - Optional half edge for tracking
89
+ * @returns Mutation for the new type
61
90
  */
62
- getMutatedType<T extends Type>(subgraphOrOptions: MutationOptions | MutationSubgraph, sourceType: T): T;
91
+ replaceAndMutateReference<TType extends Type>(reference: MemberType, newType: TType, options?: MutationOptions, halfEdge?: MutationHalfEdge): MutationFor<TCustomMutations, TType["kind"]>;
63
92
  /**
64
- * Get (and potentially create) the mutation node for the provided type in the default subgraph.
93
+ * Internal worker that creates or retrieves mutations with caching.
65
94
  */
66
- getMutationNode<T extends Type>(options: MutationOptions, type: T): MutationNodeForType<T>;
95
+ protected mutateWorker<TType extends Type>(type: TType, references: MemberType[], options: MutationOptions, halfEdge?: MutationHalfEdge, traits?: MutationTraits): MutationFor<TCustomMutations, TType["kind"]>;
67
96
  /**
68
- * Get (and potentially create) the mutation node for the provided type in a specific subgraph.
97
+ * Mutates a type using registered mutation classes.
98
+ * @param type - Type to mutate
99
+ * @param options - Mutation options
100
+ * @param halfEdge - Optional half edge for linking mutations to parent mutations
101
+ * @returns Mutation for the type
69
102
  */
70
- getMutationNode<T extends Type>(subgraph: MutationSubgraph, type: T): MutationNodeForType<T>;
103
+ mutate<TType extends Type>(type: TType, options?: MutationOptions, halfEdge?: MutationHalfEdge, traits?: MutationTraits): MutationFor<TCustomMutations, TType["kind"]>;
71
104
  /**
72
- * Get (and potentially create) the mutation node for the provided type in
73
- * either the default subgraph with the given options or a specific subgraph.
105
+ * Mutates a type through a reference chain (e.g., ModelProperty or UnionVariant).
106
+ * @param reference - Reference to mutate
107
+ * @param options - Mutation options
108
+ * @param halfEdge - Optional half edge for tracking
109
+ * @returns Mutation for the referenced type
74
110
  */
75
- getMutationNode<T extends Type>(subgraphOrOptions: MutationOptions | MutationSubgraph, type: T): MutationNodeForType<T>;
76
- mutateType<T extends Type>(subgraphOrOptions: MutationOptions | MutationSubgraph, type: T, initializeMutation: (type: T) => void): void;
77
- mutate<TType extends Type>(type: TType, options?: MutationOptions): MutationFor<TCustomMutations, TType["kind"]>;
78
- mutateReference<TType extends MemberType>(memberType: TType, referencedMutationNode: Type, options: MutationOptions): MutationFor<TCustomMutations>;
79
- mutateReference<TType extends MemberType>(memberType: TType, options: MutationOptions): MutationFor<TCustomMutations>;
111
+ mutateReference(reference: MemberType, options?: MutationOptions, halfEdge?: MutationHalfEdge, traits?: MutationTraits): MutationFor<TCustomMutations>;
80
112
  }
81
113
  export declare class MutationOptions {
82
- cacheKey(): string;
114
+ get mutationKey(): string;
115
+ }
116
+ /**
117
+ * Half-edge used to link mutations together. This represents the head-end of a
118
+ * mutation. When the tail is created, it is set on the half-edge and allows the
119
+ * head mutation to connect its nodes to the tail mutation.
120
+ */
121
+ export declare class MutationHalfEdge<THead extends Mutation<any, any> = any, TTail extends Mutation<any, any> = any> {
122
+ #private;
123
+ head: THead;
124
+ tail: TTail | undefined;
125
+ readonly kind: string;
126
+ constructor(kind: string, head: THead, onTailCreation: (tail: TTail) => void);
127
+ setTail(tail: TTail): void;
83
128
  }
84
129
  //# sourceMappingURL=mutation-engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mutation-engine.d.ts","sourceRoot":"","sources":["../../../src/mutation/mutation-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutation-engine.d.ts","sourceRoot":"","sources":["../../../src/mutation/mutation-engine.ts"],"names":[],"mappings":"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"}