@limrun/api 0.31.0 → 0.31.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.
@@ -149,6 +149,18 @@ export type RbeTunnelOptions = {
149
149
  host?: string;
150
150
  logLevel?: LogLevel;
151
151
  };
152
+ export type RbeInstallResult = {
153
+ /** True when the app was synced and installed on the attached simulator. */
154
+ installed: boolean;
155
+ /** CFBundleIdentifier of the installed app, as reported by the simulator. */
156
+ bundleId?: string;
157
+ /** The .app bundle name discovered inside the .ipa (Payload/<appName>.app). */
158
+ appName?: string;
159
+ /** Differential-sync duration in milliseconds. */
160
+ syncDurationMs?: number;
161
+ /** Simulator install duration in milliseconds. */
162
+ installDurationMs?: number;
163
+ };
152
164
  export type XcodeClient = {
153
165
  /**
154
166
  * Sync source code to the xcode instance. In watch mode, keeps syncing on changes.
@@ -166,7 +178,9 @@ export type XcodeClient = {
166
178
  xcodebuild: (settings?: XcodeProjectConfig, options?: XcodeBuildOptions) => ExecChildProcess;
167
179
  /**
168
180
  * Attach a simulator to this xcode instance.
169
- * After attaching, builds will auto-install on the simulator.
181
+ * After attaching, the latest xcodebuild build (if any) is installed on the
182
+ * simulator. RBE builds are not auto-installed on attach — install them
183
+ * explicitly with `installRbeBuildFromBep` while a simulator is attached.
170
184
  */
171
185
  attachSimulator: (simulator: IosInstance | {
172
186
  apiUrl: string;
@@ -185,12 +199,41 @@ export type XcodeClient = {
185
199
  getRbe: () => Promise<RbeStatus>;
186
200
  /** Stop the RBE stack. */
187
201
  stopRbe: () => Promise<RbeStatus>;
202
+ /**
203
+ * Install a Bazel RBE build on the attached simulator, server-side, from its
204
+ * build event log (BEP). Parses the top-level `.ipa`'s CAS digest for `target`
205
+ * out of `bep` (the contents of `--build_event_json_file`); the instance fetches
206
+ * the blob from its embedded cache, unpacks the .app, and pushes it to the
207
+ * attached simulator via the differential-sync path — no client round-trip.
208
+ * Requires a running RBE stack and an attached simulator (installed=false when
209
+ * none is attached — attach one and call again). Throws a descriptive error if
210
+ * the target/.ipa is absent, was downloaded locally, or was built with a
211
+ * non-SHA256 digest (e.g. BLAKE3) the instance cache can't resolve. `ipaName` is
212
+ * the `.ipa` file name Bazel reported.
213
+ */
214
+ installRbeBuildFromBep: (opts: {
215
+ bep: string;
216
+ target: string;
217
+ }) => Promise<RbeInstallResult & {
218
+ ipaName: string;
219
+ }>;
188
220
  /**
189
221
  * Open a local TCP listener bridged to the instance's RBE gRPC frontend
190
222
  * over a multiplexed websocket. Point bazel at it with
191
223
  * --remote_executor=grpc://127.0.0.1:<port>.
192
224
  */
193
225
  startRbeTunnel: (opts?: RbeTunnelOptions) => Promise<Tunnel>;
226
+ /**
227
+ * Create a new iOS simulator instance and attach it to this xcode instance.
228
+ * Deletes the simulator if attach fails so it is never leaked. Returns the new
229
+ * simulator's instance id (record it for teardown) and the instance itself.
230
+ */
231
+ attachNewSimulator: () => Promise<{
232
+ iosInstanceId: string;
233
+ simulator: IosInstance;
234
+ }>;
235
+ /** Best-effort delete of a simulator instance. Never throws; returns success. */
236
+ deleteSimulator: (iosInstanceId: string) => Promise<boolean>;
194
237
  };
195
238
  export type XcodeCreateClientParams = {
196
239
  instance: XcodeInstance;
@@ -1 +1 @@
1
- {"version":3,"file":"xcode-instances-helpers.d.ts","sourceRoot":"","sources":["../src/resources/xcode-instances-helpers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,KAAK,aAAa,EAAE,6BAA0B;AAClG,OAAO,EAAE,KAAK,WAAW,EAAE,2BAAwB;AACnD,OAAO,EAAQ,KAAK,gBAAgB,EAAoB,0BAAuB;AAC/E,OAAO,EAEL,KAAK,uBAAuB,EAE7B,0BAAuB;AAIxB,OAAO,EAAE,WAAW,EAAE,yBAAsB;AAE5C,OAAO,EAAkB,KAAK,MAAM,EAAE,qBAAkB;AAExD,YAAY,EAAE,MAAM,EAAE,qBAAkB;AAExC,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpE,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C;;OAEG;IACH,eAAe,CAAC,EAAE,uBAAuB,EAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,iBAAiB,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAAC;IACpE;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B,cAAc,GACd,8BAA8B,GAC9B,2BAA2B,CAAC;AAEhC,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,qBAAqB,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrD,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,MAAM,MAAM,eAAe,GAAG;IAC5B,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,IAAI,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAEzE;;;;;;;;OAQG;IACH,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,iBAAiB,KAAK,gBAAgB,CAAC;IAE7F;;;OAGG;IACH,eAAe,EAAE,CACf,SAAS,EAAE,WAAW,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KACvD,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAEpC;;OAEG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;IAE7C;;;OAGG;IACH,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAEzD,2CAA2C;IAC3C,MAAM,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IAEjC,0BAA0B;IAC1B,OAAO,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IAElC;;;;OAIG;IACH,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAC/B;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,GAChD;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAkD3D;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAezD;AAED;;;;;;GAMG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;gBACtC,SAAS,EAAE,MAAM;CAQ9B;AAyBD,qBAAa,cAAe,SAAQ,uBAAuB;IACnD,YAAY,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;CAuN1E"}
1
+ {"version":3,"file":"xcode-instances-helpers.d.ts","sourceRoot":"","sources":["../src/resources/xcode-instances-helpers.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ const os_1 = tslib_1.__importDefault(require("os"));
7
7
  const path_1 = tslib_1.__importDefault(require("path"));
8
8
  const crypto_1 = tslib_1.__importDefault(require("crypto"));
9
9
  const xcode_instances_1 = require("./xcode-instances.js");
10
+ const rbe_bep_1 = require("../rbe-bep.js");
10
11
  const exec_client_1 = require("../exec-client.js");
11
12
  const folder_sync_1 = require("../folder-sync.js");
12
13
  const folder_sync_ignore_1 = require("../folder-sync-ignore.js");
@@ -143,6 +144,71 @@ class XcodeInstances extends xcode_instances_1.XcodeInstances {
143
144
  sandboxInfoPromise ?? (sandboxInfoPromise = fetchSandboxInfo(apiUrl, token));
144
145
  return sandboxInfoPromise;
145
146
  };
147
+ // Shared local closures. The methods below live in an object literal over
148
+ // these closures (not `this`), so anything reused across methods is defined
149
+ // here once and called from each method.
150
+ const postRbeInstall = async (ipaDigest, target) => {
151
+ const res = await proxy_transport_1.nodeProxyTransport.fetch(`${apiUrl}/rbe/install`, {
152
+ method: 'POST',
153
+ headers: {
154
+ 'Content-Type': 'application/json',
155
+ Authorization: `Bearer ${token}`,
156
+ },
157
+ body: JSON.stringify({ ipaDigest, ...(target ? { target } : {}) }),
158
+ });
159
+ return readRbeResponse(res, 'POST /rbe/install');
160
+ };
161
+ const installFromBep = async (bep, target) => {
162
+ const digest = (0, rbe_bep_1.parseTopLevelIpaDigest)(bep, target); // throws BLAKE3 / no-ipa errors
163
+ const result = await postRbeInstall({ hash: digest.hash, sizeBytes: digest.sizeBytes }, target);
164
+ return { ...result, ipaName: digest.ipaName };
165
+ };
166
+ const attachSimulatorImpl = async (simulator) => {
167
+ let simApiUrl;
168
+ let simToken;
169
+ if ('status' in simulator) {
170
+ if (!simulator.status.apiUrl) {
171
+ throw new Error('Simulator instance not ready: apiUrl is not available');
172
+ }
173
+ simApiUrl = simulator.status.apiUrl;
174
+ simToken = simulator.status.token;
175
+ }
176
+ else {
177
+ simApiUrl = simulator.apiUrl;
178
+ simToken = simulator.token;
179
+ }
180
+ const res = await proxy_transport_1.nodeProxyTransport.fetch(`${apiUrl}/simulator`, {
181
+ method: 'POST',
182
+ headers: {
183
+ 'Content-Type': 'application/json',
184
+ Authorization: `Bearer ${token}`,
185
+ },
186
+ body: JSON.stringify({ apiUrl: simApiUrl, token: simToken }),
187
+ });
188
+ return readJsonResponse(res, 'POST /simulator');
189
+ };
190
+ const deleteSimulatorImpl = async (iosInstanceId) => {
191
+ try {
192
+ await client.iosInstances.delete(iosInstanceId);
193
+ return true;
194
+ }
195
+ catch {
196
+ return false;
197
+ }
198
+ };
199
+ const attachNewSimulatorImpl = async () => {
200
+ const simulator = await client.iosInstances.create({ wait: true });
201
+ // The sim exists from here; if attach fails, delete it so we never leak an
202
+ // orphan the caller can't reap.
203
+ try {
204
+ await attachSimulatorImpl(simulator);
205
+ }
206
+ catch (err) {
207
+ await deleteSimulatorImpl(simulator.metadata.id);
208
+ throw err;
209
+ }
210
+ return { iosInstanceId: simulator.metadata.id, simulator };
211
+ };
146
212
  return {
147
213
  async sync(localCodePath, opts) {
148
214
  const resolvedPath = path_1.default.resolve(localCodePath);
@@ -246,30 +312,9 @@ class XcodeInstances extends xcode_instances_1.XcodeInstances {
246
312
  });
247
313
  return readJsonResponse(res, 'GET /simulator');
248
314
  },
249
- async attachSimulator(simulator) {
250
- let simApiUrl;
251
- let simToken;
252
- if ('status' in simulator) {
253
- if (!simulator.status.apiUrl) {
254
- throw new Error('Simulator instance not ready: apiUrl is not available');
255
- }
256
- simApiUrl = simulator.status.apiUrl;
257
- simToken = simulator.status.token;
258
- }
259
- else {
260
- simApiUrl = simulator.apiUrl;
261
- simToken = simulator.token;
262
- }
263
- const res = await proxy_transport_1.nodeProxyTransport.fetch(`${apiUrl}/simulator`, {
264
- method: 'POST',
265
- headers: {
266
- 'Content-Type': 'application/json',
267
- Authorization: `Bearer ${token}`,
268
- },
269
- body: JSON.stringify({ apiUrl: simApiUrl, token: simToken }),
270
- });
271
- return readJsonResponse(res, 'POST /simulator');
272
- },
315
+ attachSimulator: attachSimulatorImpl,
316
+ attachNewSimulator: attachNewSimulatorImpl,
317
+ deleteSimulator: deleteSimulatorImpl,
273
318
  async startRbe(opts) {
274
319
  const res = await proxy_transport_1.nodeProxyTransport.fetch(`${apiUrl}/rbe`, {
275
320
  method: 'POST',
@@ -299,6 +344,7 @@ class XcodeInstances extends xcode_instances_1.XcodeInstances {
299
344
  });
300
345
  return readRbeResponse(res, 'DELETE /rbe');
301
346
  },
347
+ installRbeBuildFromBep: (opts) => installFromBep(opts.bep, opts.target),
302
348
  async startRbeTunnel(opts) {
303
349
  return (0, tunnel_1.startTcpTunnel)(deriveRbeTunnelUrl(apiUrl), token, opts?.host ?? '127.0.0.1', opts?.port ?? exports.DEFAULT_RBE_TUNNEL_PORT, {
304
350
  mode: 'multiplexed',
@@ -1 +1 @@
1
- {"version":3,"file":"xcode-instances-helpers.js","sourceRoot":"","sources":["../src/resources/xcode-instances-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xcode-instances-helpers.js","sourceRoot":"","sources":["../src/resources/xcode-instances-helpers.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import os from 'os';
2
2
  import path from 'path';
3
3
  import crypto from 'crypto';
4
4
  import { XcodeInstances as GeneratedXcodeInstances } from "./xcode-instances.mjs";
5
+ import { parseTopLevelIpaDigest } from "../rbe-bep.mjs";
5
6
  import { exec } from "../exec-client.mjs";
6
7
  import { syncFolder as syncFolderImpl, } from "../folder-sync.mjs";
7
8
  import { createIgnoreFn } from "../folder-sync-ignore.mjs";
@@ -137,6 +138,71 @@ export class XcodeInstances extends GeneratedXcodeInstances {
137
138
  sandboxInfoPromise ?? (sandboxInfoPromise = fetchSandboxInfo(apiUrl, token));
138
139
  return sandboxInfoPromise;
139
140
  };
141
+ // Shared local closures. The methods below live in an object literal over
142
+ // these closures (not `this`), so anything reused across methods is defined
143
+ // here once and called from each method.
144
+ const postRbeInstall = async (ipaDigest, target) => {
145
+ const res = await nodeProxyTransport.fetch(`${apiUrl}/rbe/install`, {
146
+ method: 'POST',
147
+ headers: {
148
+ 'Content-Type': 'application/json',
149
+ Authorization: `Bearer ${token}`,
150
+ },
151
+ body: JSON.stringify({ ipaDigest, ...(target ? { target } : {}) }),
152
+ });
153
+ return readRbeResponse(res, 'POST /rbe/install');
154
+ };
155
+ const installFromBep = async (bep, target) => {
156
+ const digest = parseTopLevelIpaDigest(bep, target); // throws BLAKE3 / no-ipa errors
157
+ const result = await postRbeInstall({ hash: digest.hash, sizeBytes: digest.sizeBytes }, target);
158
+ return { ...result, ipaName: digest.ipaName };
159
+ };
160
+ const attachSimulatorImpl = async (simulator) => {
161
+ let simApiUrl;
162
+ let simToken;
163
+ if ('status' in simulator) {
164
+ if (!simulator.status.apiUrl) {
165
+ throw new Error('Simulator instance not ready: apiUrl is not available');
166
+ }
167
+ simApiUrl = simulator.status.apiUrl;
168
+ simToken = simulator.status.token;
169
+ }
170
+ else {
171
+ simApiUrl = simulator.apiUrl;
172
+ simToken = simulator.token;
173
+ }
174
+ const res = await nodeProxyTransport.fetch(`${apiUrl}/simulator`, {
175
+ method: 'POST',
176
+ headers: {
177
+ 'Content-Type': 'application/json',
178
+ Authorization: `Bearer ${token}`,
179
+ },
180
+ body: JSON.stringify({ apiUrl: simApiUrl, token: simToken }),
181
+ });
182
+ return readJsonResponse(res, 'POST /simulator');
183
+ };
184
+ const deleteSimulatorImpl = async (iosInstanceId) => {
185
+ try {
186
+ await client.iosInstances.delete(iosInstanceId);
187
+ return true;
188
+ }
189
+ catch {
190
+ return false;
191
+ }
192
+ };
193
+ const attachNewSimulatorImpl = async () => {
194
+ const simulator = await client.iosInstances.create({ wait: true });
195
+ // The sim exists from here; if attach fails, delete it so we never leak an
196
+ // orphan the caller can't reap.
197
+ try {
198
+ await attachSimulatorImpl(simulator);
199
+ }
200
+ catch (err) {
201
+ await deleteSimulatorImpl(simulator.metadata.id);
202
+ throw err;
203
+ }
204
+ return { iosInstanceId: simulator.metadata.id, simulator };
205
+ };
140
206
  return {
141
207
  async sync(localCodePath, opts) {
142
208
  const resolvedPath = path.resolve(localCodePath);
@@ -240,30 +306,9 @@ export class XcodeInstances extends GeneratedXcodeInstances {
240
306
  });
241
307
  return readJsonResponse(res, 'GET /simulator');
242
308
  },
243
- async attachSimulator(simulator) {
244
- let simApiUrl;
245
- let simToken;
246
- if ('status' in simulator) {
247
- if (!simulator.status.apiUrl) {
248
- throw new Error('Simulator instance not ready: apiUrl is not available');
249
- }
250
- simApiUrl = simulator.status.apiUrl;
251
- simToken = simulator.status.token;
252
- }
253
- else {
254
- simApiUrl = simulator.apiUrl;
255
- simToken = simulator.token;
256
- }
257
- const res = await nodeProxyTransport.fetch(`${apiUrl}/simulator`, {
258
- method: 'POST',
259
- headers: {
260
- 'Content-Type': 'application/json',
261
- Authorization: `Bearer ${token}`,
262
- },
263
- body: JSON.stringify({ apiUrl: simApiUrl, token: simToken }),
264
- });
265
- return readJsonResponse(res, 'POST /simulator');
266
- },
309
+ attachSimulator: attachSimulatorImpl,
310
+ attachNewSimulator: attachNewSimulatorImpl,
311
+ deleteSimulator: deleteSimulatorImpl,
267
312
  async startRbe(opts) {
268
313
  const res = await nodeProxyTransport.fetch(`${apiUrl}/rbe`, {
269
314
  method: 'POST',
@@ -293,6 +338,7 @@ export class XcodeInstances extends GeneratedXcodeInstances {
293
338
  });
294
339
  return readRbeResponse(res, 'DELETE /rbe');
295
340
  },
341
+ installRbeBuildFromBep: (opts) => installFromBep(opts.bep, opts.target),
296
342
  async startRbeTunnel(opts) {
297
343
  return startTcpTunnel(deriveRbeTunnelUrl(apiUrl), token, opts?.host ?? '127.0.0.1', opts?.port ?? DEFAULT_RBE_TUNNEL_PORT, {
298
344
  mode: 'multiplexed',
@@ -1 +1 @@
1
- {"version":3,"file":"xcode-instances-helpers.mjs","sourceRoot":"","sources":["../src/resources/xcode-instances-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xcode-instances-helpers.mjs","sourceRoot":"","sources":["../src/resources/xcode-instances-helpers.ts"],"names":[],"mappings":"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"}
package/src/index.ts CHANGED
@@ -10,6 +10,7 @@ export * from './instance-client';
10
10
  export * as Ios from './ios-client';
11
11
  export { startHttpProxy, type HttpProxy, type StartHttpProxyOptions } from './http-proxy';
12
12
  export { buildSettingKeyPattern, parseBuildSettingEntries, validateBuildSettings } from './build-settings';
13
+ export { parseTopLevelIpaDigest, type BepIpaDigest } from './rbe-bep';
13
14
  export {
14
15
  exec,
15
16
  type ExecRequest,
@@ -23,6 +24,7 @@ export {
23
24
  type RbeStatus,
24
25
  type RbeStartOptions,
25
26
  type RbeTunnelOptions,
27
+ type RbeInstallResult,
26
28
  type Tunnel,
27
29
  RbeUnsupportedError,
28
30
  deriveRbeTunnelUrl,
package/src/rbe-bep.ts ADDED
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Parses Bazel's Build Event Protocol (BEP, the `--build_event_json_file`
3
+ * newline-delimited JSON) to find a built target's top-level `.ipa` and its
4
+ * content-addressed (CAS) digest.
5
+ *
6
+ * Under `--config=limrun` the generated bazelrc sets `--remote_download_outputs=
7
+ * minimal`, so outputs are NOT downloaded to the client; their BEP `file`
8
+ * entries instead carry a `bytestream://<host>[/<instance>]/blobs/<hash>/<size>`
9
+ * URI. `lim xcode rbe install` reads that digest and hands it to the instance,
10
+ * which fetches the blob from its own RBE cache and installs it — no round-trip.
11
+ */
12
+
13
+ export type BepIpaDigest = {
14
+ /** Lowercase hex SHA-256 of the .ipa blob. */
15
+ hash: string;
16
+ /** Size of the .ipa blob in bytes. */
17
+ sizeBytes: number;
18
+ /** The .ipa file name as Bazel reported it (e.g. "App/App.ipa"). */
19
+ ipaName: string;
20
+ };
21
+
22
+ type BepEvent = {
23
+ id?: {
24
+ targetCompleted?: { label?: string };
25
+ namedSet?: { id?: string };
26
+ };
27
+ completed?: {
28
+ success?: boolean;
29
+ outputGroup?: Array<{ name?: string; fileSets?: Array<{ id?: string }> }>;
30
+ };
31
+ namedSetOfFiles?: {
32
+ files?: Array<{ name?: string; uri?: string }>;
33
+ fileSets?: Array<{ id?: string }>;
34
+ };
35
+ };
36
+
37
+ /** A SHA-256 digest is exactly 64 lowercase hex chars; the instance CAS is keyed by it. */
38
+ const SHA256_HEX = /^[0-9a-f]{64}$/;
39
+
40
+ /** Extracts (hash, size) from a `bytestream://…/blobs/<hash>/<size>` URI. */
41
+ function parseBytestreamDigest(uri: string): { hash: string; sizeBytes: number } | null {
42
+ // Tolerate an optional instance-name segment before /blobs/ by anchoring on
43
+ // the /blobs/<hash>/<size> tail rather than a fixed segment count. The hash is
44
+ // left length-agnostic here (validated as SHA-256 by the caller).
45
+ const m = uri.match(/\/blobs\/([0-9a-f]+)\/(\d+)(?:$|\/)/);
46
+ if (!m || m[1] === undefined || m[2] === undefined) return null;
47
+ return { hash: m[1], sizeBytes: Number(m[2]) };
48
+ }
49
+
50
+ /**
51
+ * Canonicalizes a Bazel target label to the `//pkg:name` form BEP records.
52
+ * Bazel expands the `//pkg` shorthand to `//pkg:<basename(pkg)>` in its
53
+ * targetCompleted events, so `install //App` must match BEP's `//App:App`.
54
+ */
55
+ function canonicalizeLabel(label: string): string {
56
+ if (label.includes(':')) return label;
57
+ // Strip trailing slashes with a linear scan rather than a regex: `/\/+$/`
58
+ // backtracks quadratically on a label of many trailing slashes (CodeQL ReDoS).
59
+ let end = label.length;
60
+ while (end > 0 && label[end - 1] === '/') end--;
61
+ const pkg = label.slice(0, end);
62
+ const name = pkg.split('/').pop() ?? '';
63
+ return name ? `${pkg}:${name}` : pkg;
64
+ }
65
+
66
+ /**
67
+ * Finds the `.ipa` produced for `label` in a BEP stream and returns its CAS
68
+ * digest. Throws a descriptive Error when the target/.ipa is absent, its output
69
+ * was materialized locally (a `file://` URI) instead of left in CAS, or it was
70
+ * built with a non-SHA256 digest the instance cache cannot resolve.
71
+ */
72
+ export function parseTopLevelIpaDigest(bepJson: string, label: string): BepIpaDigest {
73
+ const canonical = canonicalizeLabel(label);
74
+ const events: BepEvent[] = [];
75
+ for (const line of bepJson.split('\n')) {
76
+ const trimmed = line.trim();
77
+ if (!trimmed) continue;
78
+ try {
79
+ events.push(JSON.parse(trimmed) as BepEvent);
80
+ } catch {
81
+ // Ignore partial/garbled lines (BEP is flushed incrementally).
82
+ }
83
+ }
84
+
85
+ // The successful TargetComplete for the requested label (matched against the
86
+ // canonical //pkg:name form Bazel records, so `//App` matches `//App:App`).
87
+ const completed = events.find((e) => e.id?.targetCompleted?.label === canonical && e.completed?.success)
88
+ ?.completed;
89
+ if (!completed) {
90
+ throw new Error(
91
+ `No successful build of ${label} found in the build event log. ` +
92
+ `Build it first with --config=limrun (e.g. \`bazelisk --digest_function=sha256 build --config=limrun ${label}\`).`,
93
+ );
94
+ }
95
+
96
+ // Default output group -> the fileSet (namedSetOfFiles) ids holding its outputs.
97
+ const rootFileSetIds = (completed.outputGroup ?? [])
98
+ .filter((og) => og.name === 'default' || !og.name)
99
+ .flatMap((og) => (og.fileSets ?? []).map((fs) => fs.id))
100
+ .filter((id): id is string => !!id);
101
+ if (rootFileSetIds.length === 0) {
102
+ throw new Error(`Build of ${label} reported no default output files.`);
103
+ }
104
+
105
+ // Index namedSetOfFiles by id and walk transitively (sets can nest).
106
+ const namedSets = new Map<string, NonNullable<BepEvent['namedSetOfFiles']>>();
107
+ for (const e of events) {
108
+ const id = e.id?.namedSet?.id;
109
+ if (id && e.namedSetOfFiles) namedSets.set(id, e.namedSetOfFiles);
110
+ }
111
+
112
+ const seen = new Set<string>();
113
+ const queue = [...rootFileSetIds];
114
+ // Set to the name of an .ipa that was seen but had no bytestream digest (its
115
+ // output was downloaded locally) — distinguishes that case from "no .ipa at all".
116
+ let localOnlyIpa: string | undefined;
117
+ while (queue.length > 0) {
118
+ const id = queue.shift()!;
119
+ if (seen.has(id)) continue;
120
+ seen.add(id);
121
+ const set = namedSets.get(id);
122
+ if (!set) continue;
123
+ for (const f of set.files ?? []) {
124
+ if (!f.name || !f.name.endsWith('.ipa')) continue;
125
+ const digest = f.uri ? parseBytestreamDigest(f.uri) : null;
126
+ if (digest) {
127
+ // The instance cache is keyed by SHA-256. A non-64-hex digest means the
128
+ // build used a different digest function (Bazel 9 defaults to BLAKE3),
129
+ // which the server CAS cannot resolve — surface that clearly here rather
130
+ // than letting it fail later as a cryptic cache miss.
131
+ if (!SHA256_HEX.test(digest.hash)) {
132
+ throw new Error(
133
+ `Built ${f.name} with a non-SHA256 digest (got ${digest.hash.length} hex chars, expected 64; ` +
134
+ `likely BLAKE3 on Bazel 9). The instance cache is keyed by SHA-256 — rebuild with ` +
135
+ `--digest_function=sha256, e.g. \`bazelisk --digest_function=sha256 build --config=limrun ${label}\`.`,
136
+ );
137
+ }
138
+ return { hash: digest.hash, sizeBytes: digest.sizeBytes, ipaName: f.name };
139
+ }
140
+ localOnlyIpa = f.name;
141
+ }
142
+ for (const nested of set.fileSets ?? []) {
143
+ if (nested.id) queue.push(nested.id);
144
+ }
145
+ }
146
+
147
+ if (localOnlyIpa) {
148
+ throw new Error(
149
+ `Found ${label}'s .ipa (${localOnlyIpa}) but it has no remote (bytestream) digest — its ` +
150
+ `output was downloaded locally. Ensure you built with --config=limrun (which keeps outputs ` +
151
+ `in the instance cache via --remote_download_outputs=minimal).`,
152
+ );
153
+ }
154
+ throw new Error(`No .ipa output found for ${label} in the build event log.`);
155
+ }
@@ -45,4 +45,5 @@ export {
45
45
  type SimulatorAttachment,
46
46
  type SimulatorDeviceInfo,
47
47
  type SimulatorInstallState,
48
+ type RbeInstallResult,
48
49
  } from './xcode-instances-helpers';