lim 0.14.3 → 0.14.5

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 (156) hide show
  1. package/dist/base-command.d.ts +16 -0
  2. package/dist/base-command.d.ts.map +1 -1
  3. package/dist/base-command.js +48 -4
  4. package/dist/base-command.js.map +1 -1
  5. package/dist/commands/android/connect.d.ts +1 -0
  6. package/dist/commands/android/connect.d.ts.map +1 -1
  7. package/dist/commands/android/create.d.ts +1 -0
  8. package/dist/commands/android/create.d.ts.map +1 -1
  9. package/dist/commands/android/delete.d.ts +1 -0
  10. package/dist/commands/android/delete.d.ts.map +1 -1
  11. package/dist/commands/android/element-tree.d.ts +1 -0
  12. package/dist/commands/android/element-tree.d.ts.map +1 -1
  13. package/dist/commands/android/find-element.d.ts +1 -0
  14. package/dist/commands/android/find-element.d.ts.map +1 -1
  15. package/dist/commands/android/get.d.ts +1 -0
  16. package/dist/commands/android/get.d.ts.map +1 -1
  17. package/dist/commands/android/install-app.d.ts +1 -0
  18. package/dist/commands/android/install-app.d.ts.map +1 -1
  19. package/dist/commands/android/list.d.ts +1 -0
  20. package/dist/commands/android/list.d.ts.map +1 -1
  21. package/dist/commands/android/open-url.d.ts +1 -0
  22. package/dist/commands/android/open-url.d.ts.map +1 -1
  23. package/dist/commands/android/press-key.d.ts +1 -0
  24. package/dist/commands/android/press-key.d.ts.map +1 -1
  25. package/dist/commands/android/record.d.ts +1 -0
  26. package/dist/commands/android/record.d.ts.map +1 -1
  27. package/dist/commands/android/screenshot.d.ts +1 -0
  28. package/dist/commands/android/screenshot.d.ts.map +1 -1
  29. package/dist/commands/android/scroll.d.ts +1 -0
  30. package/dist/commands/android/scroll.d.ts.map +1 -1
  31. package/dist/commands/android/set-wifi-bandwidth.d.ts +1 -0
  32. package/dist/commands/android/set-wifi-bandwidth.d.ts.map +1 -1
  33. package/dist/commands/android/tap-element.d.ts +1 -0
  34. package/dist/commands/android/tap-element.d.ts.map +1 -1
  35. package/dist/commands/android/tap.d.ts +1 -0
  36. package/dist/commands/android/tap.d.ts.map +1 -1
  37. package/dist/commands/android/type.d.ts +1 -0
  38. package/dist/commands/android/type.d.ts.map +1 -1
  39. package/dist/commands/asset/delete.d.ts +1 -0
  40. package/dist/commands/asset/delete.d.ts.map +1 -1
  41. package/dist/commands/asset/list.d.ts +1 -0
  42. package/dist/commands/asset/list.d.ts.map +1 -1
  43. package/dist/commands/asset/pull.d.ts +1 -0
  44. package/dist/commands/asset/pull.d.ts.map +1 -1
  45. package/dist/commands/asset/push.d.ts +1 -0
  46. package/dist/commands/asset/push.d.ts.map +1 -1
  47. package/dist/commands/ios/app-log.d.ts +1 -0
  48. package/dist/commands/ios/app-log.d.ts.map +1 -1
  49. package/dist/commands/ios/cp.d.ts +1 -0
  50. package/dist/commands/ios/cp.d.ts.map +1 -1
  51. package/dist/commands/ios/create.d.ts +1 -0
  52. package/dist/commands/ios/create.d.ts.map +1 -1
  53. package/dist/commands/ios/delete.d.ts +1 -0
  54. package/dist/commands/ios/delete.d.ts.map +1 -1
  55. package/dist/commands/ios/element-tree.d.ts +1 -0
  56. package/dist/commands/ios/element-tree.d.ts.map +1 -1
  57. package/dist/commands/ios/get.d.ts +1 -0
  58. package/dist/commands/ios/get.d.ts.map +1 -1
  59. package/dist/commands/ios/info.d.ts +1 -0
  60. package/dist/commands/ios/info.d.ts.map +1 -1
  61. package/dist/commands/ios/install-app.d.ts +1 -0
  62. package/dist/commands/ios/install-app.d.ts.map +1 -1
  63. package/dist/commands/ios/launch-app.d.ts +1 -0
  64. package/dist/commands/ios/launch-app.d.ts.map +1 -1
  65. package/dist/commands/ios/list-apps.d.ts +1 -0
  66. package/dist/commands/ios/list-apps.d.ts.map +1 -1
  67. package/dist/commands/ios/list.d.ts +1 -0
  68. package/dist/commands/ios/list.d.ts.map +1 -1
  69. package/dist/commands/ios/lsof.d.ts +1 -0
  70. package/dist/commands/ios/lsof.d.ts.map +1 -1
  71. package/dist/commands/ios/open-url.d.ts +1 -0
  72. package/dist/commands/ios/open-url.d.ts.map +1 -1
  73. package/dist/commands/ios/perform.d.ts +1 -0
  74. package/dist/commands/ios/perform.d.ts.map +1 -1
  75. package/dist/commands/ios/press-key.d.ts +1 -0
  76. package/dist/commands/ios/press-key.d.ts.map +1 -1
  77. package/dist/commands/ios/record.d.ts +1 -0
  78. package/dist/commands/ios/record.d.ts.map +1 -1
  79. package/dist/commands/ios/reverse.d.ts +1 -0
  80. package/dist/commands/ios/reverse.d.ts.map +1 -1
  81. package/dist/commands/ios/screenshot.d.ts +1 -0
  82. package/dist/commands/ios/screenshot.d.ts.map +1 -1
  83. package/dist/commands/ios/scroll.d.ts +1 -0
  84. package/dist/commands/ios/scroll.d.ts.map +1 -1
  85. package/dist/commands/ios/simctl.d.ts +1 -0
  86. package/dist/commands/ios/simctl.d.ts.map +1 -1
  87. package/dist/commands/ios/sync.d.ts +1 -0
  88. package/dist/commands/ios/sync.d.ts.map +1 -1
  89. package/dist/commands/ios/syslog.d.ts +1 -0
  90. package/dist/commands/ios/syslog.d.ts.map +1 -1
  91. package/dist/commands/ios/tap-element.d.ts +1 -0
  92. package/dist/commands/ios/tap-element.d.ts.map +1 -1
  93. package/dist/commands/ios/tap.d.ts +1 -0
  94. package/dist/commands/ios/tap.d.ts.map +1 -1
  95. package/dist/commands/ios/terminate-app.d.ts +1 -0
  96. package/dist/commands/ios/terminate-app.d.ts.map +1 -1
  97. package/dist/commands/ios/toggle-keyboard.d.ts +1 -0
  98. package/dist/commands/ios/toggle-keyboard.d.ts.map +1 -1
  99. package/dist/commands/ios/type.d.ts +1 -0
  100. package/dist/commands/ios/type.d.ts.map +1 -1
  101. package/dist/commands/ios/xcodebuild.d.ts +1 -0
  102. package/dist/commands/ios/xcodebuild.d.ts.map +1 -1
  103. package/dist/commands/ios/xcrun.d.ts +1 -0
  104. package/dist/commands/ios/xcrun.d.ts.map +1 -1
  105. package/dist/commands/login.d.ts +1 -0
  106. package/dist/commands/login.d.ts.map +1 -1
  107. package/dist/commands/logout.d.ts +1 -0
  108. package/dist/commands/logout.d.ts.map +1 -1
  109. package/dist/commands/session/start.d.ts +1 -0
  110. package/dist/commands/session/start.d.ts.map +1 -1
  111. package/dist/commands/session/status.d.ts +1 -0
  112. package/dist/commands/session/status.d.ts.map +1 -1
  113. package/dist/commands/session/stop.d.ts +1 -0
  114. package/dist/commands/session/stop.d.ts.map +1 -1
  115. package/dist/commands/set-workspace-dir.d.ts +15 -0
  116. package/dist/commands/set-workspace-dir.d.ts.map +1 -0
  117. package/dist/commands/set-workspace-dir.js +60 -0
  118. package/dist/commands/set-workspace-dir.js.map +1 -0
  119. package/dist/commands/xcode/attach-simulator.d.ts +1 -0
  120. package/dist/commands/xcode/attach-simulator.d.ts.map +1 -1
  121. package/dist/commands/xcode/create.d.ts +1 -0
  122. package/dist/commands/xcode/create.d.ts.map +1 -1
  123. package/dist/commands/xcode/delete.d.ts +1 -0
  124. package/dist/commands/xcode/delete.d.ts.map +1 -1
  125. package/dist/commands/xcode/get.d.ts +1 -0
  126. package/dist/commands/xcode/get.d.ts.map +1 -1
  127. package/dist/commands/xcode/list.d.ts +1 -0
  128. package/dist/commands/xcode/list.d.ts.map +1 -1
  129. package/dist/commands/xcode/rbe/install.d.ts +1 -0
  130. package/dist/commands/xcode/rbe/install.d.ts.map +1 -1
  131. package/dist/commands/xcode/rbe.d.ts +1 -0
  132. package/dist/commands/xcode/rbe.d.ts.map +1 -1
  133. package/dist/commands/xcode/rbe.js +17 -10
  134. package/dist/commands/xcode/rbe.js.map +1 -1
  135. package/dist/commands/xcode/sync.d.ts +1 -0
  136. package/dist/commands/xcode/sync.d.ts.map +1 -1
  137. package/dist/lib/config.d.ts.map +1 -1
  138. package/dist/lib/config.js +324 -105
  139. package/dist/lib/config.js.map +1 -1
  140. package/dist/lib/instance-cleanup.d.ts +18 -0
  141. package/dist/lib/instance-cleanup.d.ts.map +1 -0
  142. package/dist/lib/instance-cleanup.js +36 -0
  143. package/dist/lib/instance-cleanup.js.map +1 -0
  144. package/dist/lib/rbe-workspace.d.ts +7 -0
  145. package/dist/lib/rbe-workspace.d.ts.map +1 -1
  146. package/dist/lib/rbe-workspace.js +8 -0
  147. package/dist/lib/rbe-workspace.js.map +1 -1
  148. package/dist/lib/scope.d.ts +38 -0
  149. package/dist/lib/scope.d.ts.map +1 -0
  150. package/dist/lib/scope.js +125 -0
  151. package/dist/lib/scope.js.map +1 -0
  152. package/dist/lib/workspace.d.ts +25 -0
  153. package/dist/lib/workspace.d.ts.map +1 -0
  154. package/dist/lib/workspace.js +111 -0
  155. package/dist/lib/workspace.js.map +1 -0
  156. package/package.json +2 -2
@@ -22,6 +22,7 @@ const path_1 = __importDefault(require("path"));
22
22
  const os_1 = __importDefault(require("os"));
23
23
  const js_yaml_1 = __importDefault(require("js-yaml"));
24
24
  const xcode_sandbox_1 = require("./xcode-sandbox");
25
+ const scope_1 = require("./scope");
25
26
  const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), '.lim');
26
27
  const CONFIG_FILE = path_1.default.join(CONFIG_DIR, 'config.yaml');
27
28
  exports.CONFIG_KEYS = {
@@ -76,25 +77,256 @@ function clearApiKey() {
76
77
  }
77
78
  // ---------- Last used instance per type ----------
78
79
  const LAST_INSTANCE_FILE = path_1.default.join(CONFIG_DIR, 'last-instances.json');
79
- function readLastInstances() {
80
+ const LAST_INSTANCE_LOCK = `${LAST_INSTANCE_FILE}.lock`;
81
+ const SCHEMA_VERSION = 2;
82
+ /** Reserved scope key holding pre-scoping (legacy flat-file) data until the next write migrates it. */
83
+ const LEGACY_SCOPE_KEY = '__lim_legacy__';
84
+ /** Pre-rename key for the shared non-repo slot; remapped to GLOBAL_SCOPE_KEY on read. */
85
+ const LEGACY_GLOBAL_SCOPE_KEY = '__global__';
86
+ /** Cap on how many directory scopes we retain; least-recently-used are pruned beyond this. */
87
+ const MAX_SCOPES = 200;
88
+ /** Drop scopes untouched for this long so abandoned worktrees don't accumulate. */
89
+ const SCOPE_TTL_MS = 60 * 24 * 60 * 60 * 1000;
90
+ function readParsedLastInstances() {
80
91
  if (!fs_1.default.existsSync(LAST_INSTANCE_FILE))
81
- return {};
92
+ return null;
93
+ for (let attempt = 0; attempt < 2; attempt++) {
94
+ try {
95
+ return JSON.parse(fs_1.default.readFileSync(LAST_INSTANCE_FILE, 'utf-8'));
96
+ }
97
+ catch {
98
+ // A concurrent atomic rename can momentarily race a read; retry once.
99
+ }
100
+ }
101
+ return null;
102
+ }
103
+ function sanitizeScope(value) {
104
+ const scope = {};
105
+ if (!isRecord(value))
106
+ return scope;
107
+ if (typeof value['lastUsedAt'] === 'string')
108
+ scope.lastUsedAt = value['lastUsedAt'];
109
+ if (isLastAndroidInstance(value['android']))
110
+ scope.android = value['android'];
111
+ if (isLastIosInstance(value['ios']))
112
+ scope.ios = value['ios'];
113
+ if (isLastIosInstance(value['xcode']) || isLastXcodeInstance(value['xcode'])) {
114
+ scope.xcode = value['xcode'];
115
+ }
116
+ return scope;
117
+ }
118
+ function scopeHasInstance(scope) {
119
+ return Boolean(scope.ios || scope.android || scope.xcode);
120
+ }
121
+ /** Copy any slots missing from `primary` out of `fallback`. */
122
+ function fillMissingScope(primary, fallback) {
123
+ const out = { ...primary };
124
+ if (!out.ios && fallback.ios)
125
+ out.ios = fallback.ios;
126
+ if (!out.android && fallback.android)
127
+ out.android = fallback.android;
128
+ if (!out.xcode && fallback.xcode)
129
+ out.xcode = fallback.xcode;
130
+ if (!out.lastUsedAt && fallback.lastUsedAt)
131
+ out.lastUsedAt = fallback.lastUsedAt;
132
+ return out;
133
+ }
134
+ /**
135
+ * Parse the on-disk file into the current scoped schema. Two migrations happen
136
+ * here so upgrades keep resolving instances without recreating them:
137
+ * - a legacy flat file (`{ios,android,xcode}` with no `scopes`) is surfaced
138
+ * under LEGACY_SCOPE_KEY (folded into the active scope on the next write), and
139
+ * - the pre-rename global slot key (`__global__`) is remapped onto the current
140
+ * GLOBAL_SCOPE_KEY (the current key wins for any overlapping slots).
141
+ * Both are persisted on the next write.
142
+ */
143
+ function readNormalizedFile() {
144
+ const parsed = readParsedLastInstances();
145
+ const file = { version: SCHEMA_VERSION, scopes: {} };
146
+ if (!isRecord(parsed))
147
+ return file;
148
+ if (typeof parsed['version'] === 'number' && isRecord(parsed['scopes'])) {
149
+ let legacyGlobal;
150
+ for (const [key, value] of Object.entries(parsed['scopes'])) {
151
+ if (key === LEGACY_GLOBAL_SCOPE_KEY) {
152
+ legacyGlobal = sanitizeScope(value);
153
+ continue;
154
+ }
155
+ file.scopes[key] = sanitizeScope(value);
156
+ }
157
+ if (legacyGlobal && scopeHasInstance(legacyGlobal)) {
158
+ const current = file.scopes[scope_1.GLOBAL_SCOPE_KEY];
159
+ file.scopes[scope_1.GLOBAL_SCOPE_KEY] = current ? fillMissingScope(current, legacyGlobal) : legacyGlobal;
160
+ }
161
+ return file;
162
+ }
163
+ const legacy = sanitizeScope(parsed);
164
+ if (scopeHasInstance(legacy)) {
165
+ file.scopes[LEGACY_SCOPE_KEY] = legacy;
166
+ }
167
+ return file;
168
+ }
169
+ function getScopeData(file, scopeKey) {
170
+ return file.scopes[scopeKey] ?? file.scopes[LEGACY_SCOPE_KEY] ?? {};
171
+ }
172
+ function readScope(scopeKey) {
173
+ return getScopeData(readNormalizedFile(), scopeKey);
174
+ }
175
+ function ensureScope(file, scopeKey) {
176
+ let scope = file.scopes[scopeKey];
177
+ if (!scope) {
178
+ scope = {};
179
+ file.scopes[scopeKey] = scope;
180
+ }
181
+ return scope;
182
+ }
183
+ /** Fold legacy flat-file data into the active scope (only slots not already set), once. */
184
+ function foldLegacyInto(file, scopeKey) {
185
+ const legacy = file.scopes[LEGACY_SCOPE_KEY];
186
+ if (!legacy)
187
+ return false;
188
+ delete file.scopes[LEGACY_SCOPE_KEY];
189
+ const scope = ensureScope(file, scopeKey);
190
+ if (!scope.android && legacy.android)
191
+ scope.android = legacy.android;
192
+ if (!scope.ios && legacy.ios)
193
+ scope.ios = legacy.ios;
194
+ if (!scope.xcode && legacy.xcode)
195
+ scope.xcode = legacy.xcode;
196
+ if (!scope.lastUsedAt)
197
+ scope.lastUsedAt = legacy.lastUsedAt ?? new Date().toISOString();
198
+ return true;
199
+ }
200
+ function scopeTimestamp(scope) {
201
+ const ts = scope.lastUsedAt ? Date.parse(scope.lastUsedAt) : NaN;
202
+ return Number.isNaN(ts) ? 0 : ts;
203
+ }
204
+ /**
205
+ * Drop empty scopes, TTL-expired scopes, and the least-recently-used beyond the
206
+ * cap. The global (non-repo) slot is exempt from TTL/LRU pruning so the "use my
207
+ * most recent instance" fallback persists like the old single-slot behavior; it
208
+ * is still removed once empty.
209
+ */
210
+ function pruneScopes(file) {
211
+ let changed = false;
212
+ const now = Date.now();
213
+ for (const key of Object.keys(file.scopes)) {
214
+ if (key === LEGACY_SCOPE_KEY)
215
+ continue;
216
+ const scope = file.scopes[key];
217
+ if (!scopeHasInstance(scope)) {
218
+ delete file.scopes[key];
219
+ changed = true;
220
+ continue;
221
+ }
222
+ if (key === scope_1.GLOBAL_SCOPE_KEY)
223
+ continue;
224
+ if (scope.lastUsedAt && now - scopeTimestamp(scope) > SCOPE_TTL_MS) {
225
+ delete file.scopes[key];
226
+ changed = true;
227
+ }
228
+ }
229
+ const keys = Object.keys(file.scopes).filter((k) => k !== LEGACY_SCOPE_KEY && k !== scope_1.GLOBAL_SCOPE_KEY);
230
+ if (keys.length > MAX_SCOPES) {
231
+ keys
232
+ .sort((a, b) => scopeTimestamp(file.scopes[a]) - scopeTimestamp(file.scopes[b]))
233
+ .slice(0, keys.length - MAX_SCOPES)
234
+ .forEach((key) => {
235
+ delete file.scopes[key];
236
+ changed = true;
237
+ });
238
+ }
239
+ return changed;
240
+ }
241
+ function atomicWriteFile(file) {
242
+ ensureConfigDir();
243
+ const tmp = `${LAST_INSTANCE_FILE}.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;
244
+ fs_1.default.writeFileSync(tmp, JSON.stringify(file, null, 2), { mode: 0o600 });
245
+ fs_1.default.renameSync(tmp, LAST_INSTANCE_FILE);
246
+ }
247
+ function sleepSync(ms) {
82
248
  try {
83
- const parsed = JSON.parse(fs_1.default.readFileSync(LAST_INSTANCE_FILE, 'utf-8'));
84
- if (isLastInstances(parsed)) {
85
- return parsed;
249
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
250
+ }
251
+ catch {
252
+ const end = Date.now() + ms;
253
+ while (Date.now() < end) {
254
+ /* SharedArrayBuffer unavailable; brief busy wait */
86
255
  }
87
256
  }
88
- catch { }
89
- deleteLastInstancesFile();
90
- return {};
91
257
  }
92
- function deleteLastInstancesFile() {
258
+ const LOCK_TIMEOUT_MS = 3000;
259
+ const LOCK_STALE_MS = 15000;
260
+ function acquireLock() {
261
+ const start = Date.now();
262
+ for (;;) {
263
+ try {
264
+ const fd = fs_1.default.openSync(LAST_INSTANCE_LOCK, 'wx');
265
+ try {
266
+ fs_1.default.writeSync(fd, String(process.pid));
267
+ }
268
+ catch { }
269
+ return fd;
270
+ }
271
+ catch (err) {
272
+ if (err.code !== 'EEXIST') {
273
+ return null; // can't create lock (e.g. permissions); proceed best-effort
274
+ }
275
+ try {
276
+ const stat = fs_1.default.statSync(LAST_INSTANCE_LOCK);
277
+ if (Date.now() - stat.mtimeMs > LOCK_STALE_MS) {
278
+ try {
279
+ fs_1.default.unlinkSync(LAST_INSTANCE_LOCK);
280
+ }
281
+ catch { }
282
+ continue;
283
+ }
284
+ }
285
+ catch {
286
+ continue; // lock vanished between open and stat; retry immediately
287
+ }
288
+ if (Date.now() - start > LOCK_TIMEOUT_MS)
289
+ return null;
290
+ sleepSync(20 + Math.floor(Math.random() * 30));
291
+ }
292
+ }
293
+ }
294
+ function releaseLock(fd) {
295
+ if (fd === null)
296
+ return;
297
+ try {
298
+ fs_1.default.closeSync(fd);
299
+ }
300
+ catch { }
93
301
  try {
94
- fs_1.default.unlinkSync(LAST_INSTANCE_FILE);
302
+ fs_1.default.unlinkSync(LAST_INSTANCE_LOCK);
95
303
  }
96
304
  catch { }
97
305
  }
306
+ /**
307
+ * Serialized, atomic read-modify-write of the last-instances file. The mutator
308
+ * receives the parsed file plus the active scope key; returning `false` signals
309
+ * no change so we can skip the write (and avoid needless lock churn for parallel
310
+ * agents). Legacy data is migrated into the active scope before the mutator runs.
311
+ */
312
+ function mutate(fn) {
313
+ ensureConfigDir();
314
+ const fd = acquireLock();
315
+ try {
316
+ const file = readNormalizedFile();
317
+ const scopeKey = (0, scope_1.getScopeKey)();
318
+ let changed = foldLegacyInto(file, scopeKey);
319
+ if (fn(file, scopeKey) !== false)
320
+ changed = true;
321
+ if (pruneScopes(file))
322
+ changed = true;
323
+ if (changed)
324
+ atomicWriteFile(file);
325
+ }
326
+ finally {
327
+ releaseLock(fd);
328
+ }
329
+ }
98
330
  function isRecord(value) {
99
331
  return typeof value === 'object' && value !== null && !Array.isArray(value);
100
332
  }
@@ -107,23 +339,6 @@ function isLastIosInstance(value) {
107
339
  function isLastXcodeInstance(value) {
108
340
  return isRecord(value) && value['type'] === 'xcode' && typeof value['id'] === 'string';
109
341
  }
110
- function isLastInstances(value) {
111
- if (!isRecord(value))
112
- return false;
113
- const keys = Object.keys(value);
114
- if (keys.some((key) => !['ios', 'android', 'xcode'].includes(key)))
115
- return false;
116
- if (value['android'] !== undefined && !isLastAndroidInstance(value['android']))
117
- return false;
118
- if (value['ios'] !== undefined && !isLastIosInstance(value['ios']))
119
- return false;
120
- if (value['xcode'] !== undefined &&
121
- !isLastIosInstance(value['xcode']) &&
122
- !isLastXcodeInstance(value['xcode'])) {
123
- return false;
124
- }
125
- return true;
126
- }
127
342
  function detectLastInstanceType(instanceId) {
128
343
  const rawPrefix = instanceId.split('_')[0];
129
344
  if (rawPrefix === 'android')
@@ -234,25 +449,25 @@ function buildLastXcodeSlotRecord(instanceOrId) {
234
449
  };
235
450
  }
236
451
  function saveLastInstance(instanceOrId, slot) {
237
- ensureConfigDir();
238
452
  const record = buildLastInstanceRecord(instanceOrId);
239
- const data = readLastInstances();
240
- if (slot === 'xcode') {
241
- const xcodeRecord = buildLastXcodeSlotRecord(instanceOrId);
242
- if (xcodeRecord) {
243
- data.xcode = xcodeRecord;
453
+ mutate((file, scopeKey) => {
454
+ const scope = ensureScope(file, scopeKey);
455
+ if (slot === 'xcode') {
456
+ const xcodeRecord = buildLastXcodeSlotRecord(instanceOrId);
457
+ if (xcodeRecord)
458
+ scope.xcode = xcodeRecord;
244
459
  }
245
- }
246
- else if (record.type === 'android') {
247
- data.android = record;
248
- }
249
- else if (record.type === 'ios') {
250
- data.ios = record;
251
- }
252
- else {
253
- data.xcode = record;
254
- }
255
- fs_1.default.writeFileSync(LAST_INSTANCE_FILE, JSON.stringify(data, null, 2), { mode: 0o600 });
460
+ else if (record.type === 'android') {
461
+ scope.android = record;
462
+ }
463
+ else if (record.type === 'ios') {
464
+ scope.ios = record;
465
+ }
466
+ else {
467
+ scope.xcode = record;
468
+ }
469
+ scope.lastUsedAt = new Date().toISOString();
470
+ });
256
471
  }
257
472
  function registerCreatedInstance(instanceOrId, relatedTypes = []) {
258
473
  saveLastInstance(instanceOrId);
@@ -261,86 +476,90 @@ function registerCreatedInstance(instanceOrId, relatedTypes = []) {
261
476
  }
262
477
  }
263
478
  function loadLastAndroidInstance() {
264
- const data = readLastInstances();
265
- return data.android ?? null;
479
+ return readScope((0, scope_1.getScopeKey)()).android ?? null;
266
480
  }
267
481
  function loadLastIosInstance() {
268
- const data = readLastInstances();
269
- return data.ios ?? null;
482
+ return readScope((0, scope_1.getScopeKey)()).ios ?? null;
270
483
  }
271
484
  function loadLastXcodeInstance() {
272
- const data = readLastInstances();
273
- return data.xcode ?? null;
485
+ return readScope((0, scope_1.getScopeKey)()).xcode ?? null;
274
486
  }
275
487
  function sandboxXcodeIdFromLastIosInstance(instance) {
276
488
  const sandboxXcodeUrl = instance?.sandboxXcodeUrl ?? instance?.status?.sandbox?.xcode?.url;
277
489
  return sandboxXcodeUrl ? (0, xcode_sandbox_1.xcodeSandboxIdFromUrl)(sandboxXcodeUrl) : undefined;
278
490
  }
279
491
  function clearLastInstanceId(instanceId) {
280
- const data = readLastInstances();
281
- const iosRecord = data.ios;
282
- let changed = false;
283
- for (const key of Object.keys(data)) {
284
- if (data[key]?.id === instanceId) {
285
- delete data[key];
286
- changed = true;
492
+ mutate((file) => {
493
+ let changed = false;
494
+ for (const scope of Object.values(file.scopes)) {
495
+ const iosRecord = scope.ios;
496
+ for (const key of ['ios', 'android', 'xcode']) {
497
+ if (scope[key]?.id === instanceId) {
498
+ delete scope[key];
499
+ changed = true;
500
+ }
501
+ }
502
+ const sandboxXcodeId = iosRecord?.id === instanceId ? sandboxXcodeIdFromLastIosInstance(iosRecord) : undefined;
503
+ if (sandboxXcodeId && scope.xcode?.type === 'xcode' && scope.xcode.id === sandboxXcodeId) {
504
+ delete scope.xcode;
505
+ changed = true;
506
+ }
287
507
  }
288
- }
289
- const sandboxXcodeId = iosRecord?.id === instanceId ? sandboxXcodeIdFromLastIosInstance(iosRecord) : undefined;
290
- if (sandboxXcodeId && data.xcode?.type === 'xcode' && data.xcode.id === sandboxXcodeId) {
291
- delete data.xcode;
292
- changed = true;
293
- }
294
- if (changed) {
295
- ensureConfigDir();
296
- fs_1.default.writeFileSync(LAST_INSTANCE_FILE, JSON.stringify(data, null, 2), { mode: 0o600 });
297
- }
508
+ return changed;
509
+ });
298
510
  }
299
511
  function saveInstanceCache(instanceId, data) {
300
- const lastInstances = readLastInstances();
301
- let changed = false;
302
- if (lastInstances.android?.id === instanceId) {
303
- lastInstances.android = {
304
- ...lastInstances.android,
305
- ...data,
306
- type: 'android',
307
- };
308
- changed = true;
309
- }
310
- if (lastInstances.ios?.id === instanceId) {
311
- lastInstances.ios = {
312
- ...lastInstances.ios,
313
- ...data,
314
- type: 'ios',
315
- };
316
- changed = true;
317
- }
318
- if (lastInstances.xcode?.id === instanceId) {
319
- lastInstances.xcode =
320
- lastInstances.xcode.type === 'ios' ?
321
- { ...lastInstances.xcode, ...data, type: 'ios' }
322
- : { ...lastInstances.xcode, ...data, type: 'xcode' };
323
- changed = true;
324
- }
325
- if (changed) {
326
- ensureConfigDir();
327
- fs_1.default.writeFileSync(LAST_INSTANCE_FILE, JSON.stringify(lastInstances, null, 2), { mode: 0o600 });
328
- }
512
+ mutate((file) => {
513
+ let changed = false;
514
+ for (const scope of Object.values(file.scopes)) {
515
+ if (scope.android?.id === instanceId) {
516
+ scope.android = {
517
+ ...scope.android,
518
+ ...data,
519
+ type: 'android',
520
+ };
521
+ changed = true;
522
+ }
523
+ if (scope.ios?.id === instanceId) {
524
+ scope.ios = {
525
+ ...scope.ios,
526
+ ...data,
527
+ type: 'ios',
528
+ };
529
+ changed = true;
530
+ }
531
+ if (scope.xcode?.id === instanceId) {
532
+ scope.xcode =
533
+ scope.xcode.type === 'ios' ?
534
+ { ...scope.xcode, ...data, type: 'ios' }
535
+ : { ...scope.xcode, ...data, type: 'xcode' };
536
+ changed = true;
537
+ }
538
+ }
539
+ return changed;
540
+ });
329
541
  }
330
542
  function loadAndroidInstanceCache(instanceId) {
331
- const record = readLastInstances().android;
332
- return record?.id === instanceId ? record : null;
543
+ for (const scope of Object.values(readNormalizedFile().scopes)) {
544
+ if (scope.android?.id === instanceId)
545
+ return scope.android;
546
+ }
547
+ return null;
333
548
  }
334
549
  function loadIosInstanceCache(instanceId) {
335
- const data = readLastInstances();
336
- if (data.ios?.id === instanceId)
337
- return data.ios;
338
- if (data.xcode?.type === 'ios' && data.xcode.id === instanceId)
339
- return data.xcode;
550
+ for (const scope of Object.values(readNormalizedFile().scopes)) {
551
+ if (scope.ios?.id === instanceId)
552
+ return scope.ios;
553
+ if (scope.xcode?.type === 'ios' && scope.xcode.id === instanceId)
554
+ return scope.xcode;
555
+ }
340
556
  return null;
341
557
  }
342
558
  function loadXcodeInstanceCache(instanceId) {
343
- const record = readLastInstances().xcode;
344
- return record?.type === 'xcode' && record.id === instanceId ? record : null;
559
+ for (const scope of Object.values(readNormalizedFile().scopes)) {
560
+ if (scope.xcode?.type === 'xcode' && scope.xcode.id === instanceId)
561
+ return scope.xcode;
562
+ }
563
+ return null;
345
564
  }
346
565
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":";;;;;;AAsDA,gCAWC;AAED,kCAIC;AAED,kCAIC;AAmPD,0DAQC;AAED,0DAGC;AAED,kDAGC;AAED,sDAGC;AAOD,kDAoBC;AAED,8CAiCC;AAED,4DAGC;AAED,oDAKC;AAED,wDAGC;AAtaD,yBAAuB;AACvB,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AACpB,sDAA2B;AAI3B,mDAAwD;AAExD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;AACnD,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAE5C,QAAA,WAAW,GAAG;IACzB,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,cAAc;IAC3B,eAAe,EAAE,kBAAkB;CAC3B,CAAC;AAEX,MAAM,QAAQ,GAA2B;IACvC,CAAC,mBAAW,CAAC,WAAW,CAAC,EAAE,wBAAwB;IACnD,CAAC,mBAAW,CAAC,eAAe,CAAC,EAAE,4BAA4B;CAC5D,CAAC;AAQF,SAAS,eAAe;IACtB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,YAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,SAAS,aAAa;IACpB,eAAe,EAAE,CAAC;IAClB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,iBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,MAAgC,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,cAAc,CAAC,MAA8B;IACpD,eAAe,EAAE,CAAC;IAClB,YAAE,CAAC,aAAa,CAAC,WAAW,EAAE,iBAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,SAAgB,UAAU;IACxB,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,mBAAW,CAAC,MAAM,CAAC,IAAI,EAAE;QACnE,WAAW,EACT,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,mBAAW,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,mBAAW,CAAC,WAAW,CAAE;QACvG,eAAe,EACb,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;YACnC,GAAG,CAAC,mBAAW,CAAC,eAAe,CAAC;YAChC,QAAQ,CAAC,mBAAW,CAAC,eAAe,CAAE;KACzC,CAAC;AACJ,CAAC;AAED,SAAgB,WAAW,CAAC,OAAwC;IAClE,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5B,cAAc,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,SAAgB,WAAW;IACzB,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,OAAO,GAAG,CAAC,mBAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,cAAc,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,oDAAoD;AAEpD,MAAM,kBAAkB,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;AAgDxE,SAAS,iBAAiB;IACxB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAAE,OAAO,EAAE,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC;QACxE,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,uBAAuB,EAAE,CAAC;IAC1B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,uBAAuB;IAC9B,IAAI,CAAC;QACH,YAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC;AAC3F,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC;AACvF,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC;AACzF,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACjF,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7F,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACjF,IACE,KAAK,CAAC,OAAO,CAAC,KAAK,SAAS;QAC5B,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAkB;IAChD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,SAAS,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAuB;IAChD,OAAO,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC;AACpE,CAAC;AAED,SAAS,aAAa,CAAC,QAAuB;IAC5C,OAAO,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC;AAChE,CAAC;AAED,SAAS,eAAe,CAAC,QAAuB;IAC9C,OAAO,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC;AAClE,CAAC;AAID,SAAS,uBAAuB,CAC9B,YAA2B;IAE3B,MAAM,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;IACpC,IAAI,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,EAAE;YACF,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM;YAClC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK;YAChC,eAAe,EAAE,YAAY,CAAC,MAAM,CAAC,eAAe;YACpD,oBAAoB,EAAE,YAAY,CAAC,MAAM,CAAC,oBAAoB;YAC9D,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM;YAClC,eAAe,EAAE,YAAY,CAAC,MAAM,CAAC,eAAe;YACpD,uBAAuB,EAAE,YAAY,CAAC,MAAM,CAAC,uBAAuB;SACrE,CAAC;IACJ,CAAC;IACD,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,OAAO;YACL,EAAE;YACF,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM;YAClC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK;YAChC,oBAAoB,EAAE,YAAY,CAAC,MAAM,CAAC,oBAAoB;YAC9D,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM;YAClC,eAAe,EAAE,YAAY,CAAC,MAAM,CAAC,eAAe;YACpD,uBAAuB,EAAE,YAAY,CAAC,MAAM,CAAC,uBAAuB;YACpE,eAAe,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG;SACzD,CAAC;IACJ,CAAC;IACD,IAAI,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;QAClC,OAAO;YACL,EAAE;YACF,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM;YAClC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK;SACjC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE;QACF,IAAI,EAAE,OAAO;KACd,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,YAA2B;IAC3D,MAAM,MAAM,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC;IAChE,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,IAAA,qCAAqB,EAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,IAAI,CAAC,eAAe,IAAI,CAAC,cAAc,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAA2B;QACvC,EAAE,EAAE,cAAc;QAClB,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,SAAS;QAC1C,cAAc,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc;KACrD,CAAC;IACF,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACtC,QAAQ,CAAC,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC3D,CAAC;IAED,MAAM,IAAI,GAAuB;QAC/B,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM;QAChC,iBAAiB,EAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB;KACvD,CAAC;IACF,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;IACnD,CAAC;IAED,OAAO;QACL,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,OAAO;QACb,QAAQ;QACR,IAAI;QACJ,MAAM,EAAE;YACN,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK;YAChC,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK;SACjC;QACD,MAAM,EAAE,eAAe;QACvB,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,YAA2B,EAAE,IAAc;IACnE,eAAe,EAAE,CAAC;IAClB,MAAM,MAAM,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;IACjC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;QAC3D,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;QAC3B,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;IACtB,CAAC;IACD,YAAE,CAAC,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,SAAgB,uBAAuB,CACrC,YAA2B,EAC3B,eAA+B,EAAE;IAEjC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,SAAgB,uBAAuB;IACrC,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;IACjC,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;AAC9B,CAAC;AAED,SAAgB,mBAAmB;IACjC,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;IACjC,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;AAC1B,CAAC;AAED,SAAgB,qBAAqB;IACnC,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;IACjC,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED,SAAS,iCAAiC,CAAC,QAAqC;IAC9E,MAAM,eAAe,GAAG,QAAQ,EAAE,eAAe,IAAI,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC;IAC3F,OAAO,eAAe,CAAC,CAAC,CAAC,IAAA,qCAAqB,EAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAED,SAAgB,mBAAmB,CAAC,UAAkB;IACpD,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;IAC3B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAA4B,EAAE,CAAC;QAC/D,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,MAAM,cAAc,GAClB,SAAS,EAAE,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,iCAAiC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,IAAI,cAAc,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,cAAc,EAAE,CAAC;QACvF,OAAO,IAAI,CAAC,KAAK,CAAC;QAClB,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,eAAe,EAAE,CAAC;QAClB,YAAE,CAAC,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAC/B,UAAkB,EAClB,IAA0F;IAE1F,MAAM,aAAa,GAAG,iBAAiB,EAAE,CAAC;IAC1C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,KAAK,UAAU,EAAE,CAAC;QAC7C,aAAa,CAAC,OAAO,GAAG;YACtB,GAAG,aAAa,CAAC,OAAO;YACxB,GAAI,IAAqC;YACzC,IAAI,EAAE,SAAS;SAChB,CAAC;QACF,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,KAAK,UAAU,EAAE,CAAC;QACzC,aAAa,CAAC,GAAG,GAAG;YAClB,GAAG,aAAa,CAAC,GAAG;YACpB,GAAI,IAAiC;YACrC,IAAI,EAAE,KAAK;SACZ,CAAC;QACF,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,UAAU,EAAE,CAAC;QAC3C,aAAa,CAAC,KAAK;YACjB,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;gBAClC,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,GAAI,IAAiC,EAAE,IAAI,EAAE,KAAK,EAAE;gBAChF,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,GAAI,IAAmC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACvF,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,eAAe,EAAE,CAAC;QAClB,YAAE,CAAC,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAED,SAAgB,wBAAwB,CAAC,UAAkB;IACzD,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC,OAAO,CAAC;IAC3C,OAAO,MAAM,EAAE,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,SAAgB,oBAAoB,CAAC,UAAkB;IACrD,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;IACjC,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC;IACjD,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC;IAClF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,sBAAsB,CAAC,UAAkB;IACvD,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC,KAAK,CAAC;IACzC,OAAO,MAAM,EAAE,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Pure cleanup policy for instances `lim` auto-creates during one invocation,
3
+ * extracted from BaseCommand so it can be unit-tested without the oclif command
4
+ * runtime (which the repo-root tsc/jest can't load). The command tracks the ids
5
+ * it created in a Set and delegates the "should I delete this, and do it safely"
6
+ * decision here.
7
+ */
8
+ /** True for an Xcode instance id (xcode_ / sandbox_ prefix). */
9
+ export declare function isXcodeInstanceId(id: string): boolean;
10
+ /**
11
+ * Best-effort delete of an Xcode instance THIS invocation created. Deletes only
12
+ * when `id` is in `created` AND is an Xcode id, so a user `--id`, a pre-existing
13
+ * cached instance, or a non-xcode id is never touched. Drops the id from the set
14
+ * on success (idempotent) and never throws (a failed delete just returns false
15
+ * and keeps the id). Returns whether it deleted.
16
+ */
17
+ export declare function deleteCreatedXcodeInstance(created: Set<string>, id: string | undefined, deleteXcodeInstance: (id: string) => Promise<void>): Promise<boolean>;
18
+ //# sourceMappingURL=instance-cleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-cleanup.d.ts","sourceRoot":"","sources":["../../src/lib/instance-cleanup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACjD,OAAO,CAAC,OAAO,CAAC,CASlB"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * Pure cleanup policy for instances `lim` auto-creates during one invocation,
4
+ * extracted from BaseCommand so it can be unit-tested without the oclif command
5
+ * runtime (which the repo-root tsc/jest can't load). The command tracks the ids
6
+ * it created in a Set and delegates the "should I delete this, and do it safely"
7
+ * decision here.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.isXcodeInstanceId = isXcodeInstanceId;
11
+ exports.deleteCreatedXcodeInstance = deleteCreatedXcodeInstance;
12
+ /** True for an Xcode instance id (xcode_ / sandbox_ prefix). */
13
+ function isXcodeInstanceId(id) {
14
+ const prefix = id.split('_')[0];
15
+ return prefix === 'xcode' || prefix === 'sandbox';
16
+ }
17
+ /**
18
+ * Best-effort delete of an Xcode instance THIS invocation created. Deletes only
19
+ * when `id` is in `created` AND is an Xcode id, so a user `--id`, a pre-existing
20
+ * cached instance, or a non-xcode id is never touched. Drops the id from the set
21
+ * on success (idempotent) and never throws (a failed delete just returns false
22
+ * and keeps the id). Returns whether it deleted.
23
+ */
24
+ async function deleteCreatedXcodeInstance(created, id, deleteXcodeInstance) {
25
+ if (!id || !created.has(id) || !isXcodeInstanceId(id))
26
+ return false;
27
+ try {
28
+ await deleteXcodeInstance(id);
29
+ created.delete(id);
30
+ return true;
31
+ }
32
+ catch {
33
+ return false;
34
+ }
35
+ }
36
+ //# sourceMappingURL=instance-cleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-cleanup.js","sourceRoot":"","sources":["../../src/lib/instance-cleanup.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAGH,8CAGC;AASD,gEAaC;AA1BD,gEAAgE;AAChE,SAAgB,iBAAiB,CAAC,EAAU;IAC1C,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,SAAS,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,0BAA0B,CAC9C,OAAoB,EACpB,EAAsB,EACtB,mBAAkD;IAElD,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,IAAI,CAAC;QACH,MAAM,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -101,6 +101,13 @@ export declare function renderXcodeConfigBuild(remoteVersionKey: string, emitLoa
101
101
  * the fleet regardless of where bazel runs (the whole point of RBE).
102
102
  * - PATH includes /usr/sbin:/sbin so genrules that probe `sysctl` (e.g.
103
103
  * `hw.logicalcpu` for `make -j`) resolve it on the worker.
104
+ * - `--remote_download_outputs=minimal` keeps the built .ipa in the instance's
105
+ * CAS instead of downloading it; `lim xcode rbe install` installs it server-side
106
+ * from there, so the bytes never round-trip. It's not needed for install to work
107
+ * (a remote output keeps its bytestream:// CAS digest in the BEP either way), so
108
+ * the printed `lim xcode rbe` output tells users to add
109
+ * `--remote_download_outputs=toplevel` on the command line when they want the
110
+ * .ipa materialized locally (a command-line flag overrides this rc setting).
104
111
  * - `--build_event_json_file` writes the Build Event Protocol to .limrun/bep.json;
105
112
  * `lim xcode rbe install` reads the built target's .ipa CAS digest from it. The
106
113
  * path is ABSOLUTE on purpose: Bazel expands `%workspace%` only in
@@ -1 +1 @@
1
- {"version":3,"file":"rbe-workspace.d.ts","sourceRoot":"","sources":["../../src/lib/rbe-workspace.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,eAAO,MAAM,UAAU,YAAY,CAAC;AACpC,eAAO,MAAM,eAAe,2CAA2C,CAAC;AAKxE;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYtE;AAMD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqBrE;AAqCD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS3E;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAElE;AA6CD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAmC3F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,MAAM,GACd,MAAM,CAkBR;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAiB7D;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,EACZ,WAAW,GAAE,OAAuC,EACpD,UAAU,GAAE,MAAM,GAAG,IAA4C,GAChE,iBAAiB,CAkBnB"}
1
+ {"version":3,"file":"rbe-workspace.d.ts","sourceRoot":"","sources":["../../src/lib/rbe-workspace.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,eAAO,MAAM,UAAU,YAAY,CAAC;AACpC,eAAO,MAAM,eAAe,2CAA2C,CAAC;AAKxE;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYtE;AAMD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqBrE;AAqCD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS3E;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAElE;AA6CD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAmC3F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,MAAM,GACd,MAAM,CAmBR;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAiB7D;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,EACZ,WAAW,GAAE,OAAuC,EACpD,UAAU,GAAE,MAAM,GAAG,IAA4C,GAChE,iBAAiB,CAkBnB"}