@openrewrite/rewrite 8.85.0 → 8.85.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.
@@ -1 +1 @@
1
- 8.85.0
1
+ 8.85.1
@@ -6,6 +6,12 @@ export declare class PrepareRecipe {
6
6
  private readonly options?;
7
7
  constructor(id: string, options?: any | undefined);
8
8
  static handle(connection: MessageConnection, marketplace: RecipeMarketplace, preparedRecipes: Map<String, Recipe>, metricsCsv?: string): void;
9
+ /**
10
+ * Minimal stand-in descriptor for a recipe the host will resolve locally via
11
+ * {@link PrepareRecipeResponse.delegatesTo}. The host reads only `delegatesTo` for
12
+ * delegated recipes and ignores this descriptor, but the response type requires one.
13
+ */
14
+ private static delegateDescriptor;
9
15
  private static installSubRecipes;
10
16
  /**
11
17
  * For preconditions that can be evaluated on the remote peer, let the remote peer
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-recipe.d.ts","sourceRoot":"","sources":["../../../src/rpc/request/prepare-recipe.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,MAAM,EAAE,gBAAgB,EAAiB,MAAM,cAAc,CAAC;AAOtE,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,aAAa;IACV,OAAO,CAAC,QAAQ,CAAC,EAAE;IAAU,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAArC,EAAE,EAAE,MAAM,EAAmB,OAAO,CAAC,EAAE,GAAG,YAAA;IAGvE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,UAAU,CAAC,EAAE,MAAM;mBAmDZ,iBAAiB;IAetC;;;;OAIG;mBACkB,qBAAqB;IAwC1C;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;mBA0BZ,uBAAuB;CA+B/C;AAED,MAAM,WAAW,WAAW;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,gBAAgB,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,YAAY,EAAE,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,YAAY,EAAE,CAAA;IACjC,WAAW,CAAC,EAAE,WAAW,CAAA;CAC5B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,EAAE,CAAA;IACnB,EAAE,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,CAAA;IACzB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;CAC5B"}
1
+ {"version":3,"file":"prepare-recipe.d.ts","sourceRoot":"","sources":["../../../src/rpc/request/prepare-recipe.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,MAAM,EAAE,gBAAgB,EAAiB,MAAM,cAAc,CAAC;AAOtE,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,aAAa;IACV,OAAO,CAAC,QAAQ,CAAC,EAAE;IAAU,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAArC,EAAE,EAAE,MAAM,EAAmB,OAAO,CAAC,EAAE,GAAG,YAAA;IAGvE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,UAAU,CAAC,EAAE,MAAM;IAsEjC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;mBAkBZ,iBAAiB;IAetC;;;;OAIG;mBACkB,qBAAqB;IAwC1C;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;mBA0BZ,uBAAuB;CA+B/C;AAED,MAAM,WAAW,WAAW;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,gBAAgB,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,YAAY,EAAE,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,YAAY,EAAE,CAAA;IACjC,WAAW,CAAC,EAAE,WAAW,CAAA;CAC5B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,EAAE,CAAA;IACnB,EAAE,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,CAAA;IACzB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;CAC5B"}
@@ -63,12 +63,31 @@ class PrepareRecipe {
63
63
  static handle(connection, marketplace, preparedRecipes, metricsCsv) {
64
64
  const snowflake = (0, snowflake_id_1.SnowflakeId)();
65
65
  connection.onRequest(new rpc.RequestType("PrepareRecipe"), (0, metrics_1.withMetrics)("PrepareRecipe", metricsCsv, (context) => async (request) => {
66
- var _a;
66
+ var _a, _b;
67
67
  context.target = request.id;
68
68
  const id = snowflake.generate();
69
69
  const recipeCtor = marketplace.findRecipe(request.id);
70
70
  if (!recipeCtor) {
71
- throw new Error(`Could not find recipe with id ${request.id}`);
71
+ // The host re-prepares every sub-recipe of a composite by id while
72
+ // building RpcRecipe.getRecipeList(). A sub-recipe that delegates to a
73
+ // Java recipe (e.g. org.openrewrite.javascript.UpgradeDependencyVersion,
74
+ // produced by upgradeDependencyVersion() -> prepareJavaRecipe) is an
75
+ // RpcRecipe that installSubRecipes deliberately did not register here: it
76
+ // has no no-arg constructor and is hosted on the peer. A miss therefore
77
+ // means the host owns this recipe, so tell it to resolve the id locally
78
+ // (the Java recipe is on the host's classpath) via delegatesTo, rather
79
+ // than failing with "Could not find recipe with id ...".
80
+ return {
81
+ id: id,
82
+ descriptor: PrepareRecipe.delegateDescriptor(request.id),
83
+ editVisitor: `edit:${id}`,
84
+ editPreconditions: [],
85
+ scanPreconditions: [],
86
+ delegatesTo: {
87
+ recipeName: request.id,
88
+ options: (_a = request.options) !== null && _a !== void 0 ? _a : {}
89
+ }
90
+ };
72
91
  }
73
92
  if (!recipeCtor[1]) {
74
93
  throw new Error(`Recipe ${request.id} was installed without a constructor`);
@@ -91,12 +110,34 @@ class PrepareRecipe {
91
110
  if ('javaRecipeName' in recipe) {
92
111
  result.delegatesTo = {
93
112
  recipeName: recipe.javaRecipeName,
94
- options: (_a = recipe.delegatesToOptions) !== null && _a !== void 0 ? _a : {}
113
+ options: (_b = recipe.delegatesToOptions) !== null && _b !== void 0 ? _b : {}
95
114
  };
96
115
  }
97
116
  return result;
98
117
  }));
99
118
  }
119
+ /**
120
+ * Minimal stand-in descriptor for a recipe the host will resolve locally via
121
+ * {@link PrepareRecipeResponse.delegatesTo}. The host reads only `delegatesTo` for
122
+ * delegated recipes and ignores this descriptor, but the response type requires one.
123
+ */
124
+ static delegateDescriptor(name) {
125
+ return {
126
+ name: name,
127
+ displayName: name,
128
+ instanceName: name,
129
+ description: "",
130
+ tags: [],
131
+ estimatedEffortPerOccurrence: 5,
132
+ options: [],
133
+ preconditions: [],
134
+ recipeList: [],
135
+ dataTables: [],
136
+ maintainers: [],
137
+ contributors: [],
138
+ examples: []
139
+ };
140
+ }
100
141
  static async installSubRecipes(recipe, marketplace) {
101
142
  for (const subRecipe of await recipe.recipeList()) {
102
143
  // An RpcRecipe is a proxy for a recipe already prepared on a remote
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-recipe.js","sourceRoot":"","sources":["../../../src/rpc/request/prepare-recipe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepare-recipe.js","sourceRoot":"","sources":["../../../src/rpc/request/prepare-recipe.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openrewrite/rewrite",
3
- "version": "8.85.0",
3
+ "version": "8.85.1",
4
4
  "license": "Moderne Source Available License",
5
5
  "description": "OpenRewrite JavaScript.",
6
6
  "repository": {
@@ -43,7 +43,26 @@ export class PrepareRecipe {
43
43
  const id = snowflake.generate();
44
44
  const recipeCtor = marketplace.findRecipe(request.id);
45
45
  if (!recipeCtor) {
46
- throw new Error(`Could not find recipe with id ${request.id}`);
46
+ // The host re-prepares every sub-recipe of a composite by id while
47
+ // building RpcRecipe.getRecipeList(). A sub-recipe that delegates to a
48
+ // Java recipe (e.g. org.openrewrite.javascript.UpgradeDependencyVersion,
49
+ // produced by upgradeDependencyVersion() -> prepareJavaRecipe) is an
50
+ // RpcRecipe that installSubRecipes deliberately did not register here: it
51
+ // has no no-arg constructor and is hosted on the peer. A miss therefore
52
+ // means the host owns this recipe, so tell it to resolve the id locally
53
+ // (the Java recipe is on the host's classpath) via delegatesTo, rather
54
+ // than failing with "Could not find recipe with id ...".
55
+ return {
56
+ id: id,
57
+ descriptor: PrepareRecipe.delegateDescriptor(request.id),
58
+ editVisitor: `edit:${id}`,
59
+ editPreconditions: [],
60
+ scanPreconditions: [],
61
+ delegatesTo: {
62
+ recipeName: request.id,
63
+ options: request.options ?? {}
64
+ }
65
+ };
47
66
  }
48
67
  if (!recipeCtor[1]) {
49
68
  throw new Error(`Recipe ${request.id} was installed without a constructor`);
@@ -82,6 +101,29 @@ export class PrepareRecipe {
82
101
  );
83
102
  }
84
103
 
104
+ /**
105
+ * Minimal stand-in descriptor for a recipe the host will resolve locally via
106
+ * {@link PrepareRecipeResponse.delegatesTo}. The host reads only `delegatesTo` for
107
+ * delegated recipes and ignores this descriptor, but the response type requires one.
108
+ */
109
+ private static delegateDescriptor(name: string): RecipeDescriptor {
110
+ return {
111
+ name: name,
112
+ displayName: name,
113
+ instanceName: name,
114
+ description: "",
115
+ tags: [],
116
+ estimatedEffortPerOccurrence: 5,
117
+ options: [],
118
+ preconditions: [],
119
+ recipeList: [],
120
+ dataTables: [],
121
+ maintainers: [],
122
+ contributors: [],
123
+ examples: []
124
+ };
125
+ }
126
+
85
127
  private static async installSubRecipes(recipe: Recipe, marketplace: RecipeMarketplace) {
86
128
  for (const subRecipe of await recipe.recipeList()) {
87
129
  // An RpcRecipe is a proxy for a recipe already prepared on a remote