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.
- package/dist/base-command.d.ts +16 -0
- package/dist/base-command.d.ts.map +1 -1
- package/dist/base-command.js +48 -4
- package/dist/base-command.js.map +1 -1
- package/dist/commands/android/connect.d.ts +1 -0
- package/dist/commands/android/connect.d.ts.map +1 -1
- package/dist/commands/android/create.d.ts +1 -0
- package/dist/commands/android/create.d.ts.map +1 -1
- package/dist/commands/android/delete.d.ts +1 -0
- package/dist/commands/android/delete.d.ts.map +1 -1
- package/dist/commands/android/element-tree.d.ts +1 -0
- package/dist/commands/android/element-tree.d.ts.map +1 -1
- package/dist/commands/android/find-element.d.ts +1 -0
- package/dist/commands/android/find-element.d.ts.map +1 -1
- package/dist/commands/android/get.d.ts +1 -0
- package/dist/commands/android/get.d.ts.map +1 -1
- package/dist/commands/android/install-app.d.ts +1 -0
- package/dist/commands/android/install-app.d.ts.map +1 -1
- package/dist/commands/android/list.d.ts +1 -0
- package/dist/commands/android/list.d.ts.map +1 -1
- package/dist/commands/android/open-url.d.ts +1 -0
- package/dist/commands/android/open-url.d.ts.map +1 -1
- package/dist/commands/android/press-key.d.ts +1 -0
- package/dist/commands/android/press-key.d.ts.map +1 -1
- package/dist/commands/android/record.d.ts +1 -0
- package/dist/commands/android/record.d.ts.map +1 -1
- package/dist/commands/android/screenshot.d.ts +1 -0
- package/dist/commands/android/screenshot.d.ts.map +1 -1
- package/dist/commands/android/scroll.d.ts +1 -0
- package/dist/commands/android/scroll.d.ts.map +1 -1
- package/dist/commands/android/set-wifi-bandwidth.d.ts +1 -0
- package/dist/commands/android/set-wifi-bandwidth.d.ts.map +1 -1
- package/dist/commands/android/tap-element.d.ts +1 -0
- package/dist/commands/android/tap-element.d.ts.map +1 -1
- package/dist/commands/android/tap.d.ts +1 -0
- package/dist/commands/android/tap.d.ts.map +1 -1
- package/dist/commands/android/type.d.ts +1 -0
- package/dist/commands/android/type.d.ts.map +1 -1
- package/dist/commands/asset/delete.d.ts +1 -0
- package/dist/commands/asset/delete.d.ts.map +1 -1
- package/dist/commands/asset/list.d.ts +1 -0
- package/dist/commands/asset/list.d.ts.map +1 -1
- package/dist/commands/asset/pull.d.ts +1 -0
- package/dist/commands/asset/pull.d.ts.map +1 -1
- package/dist/commands/asset/push.d.ts +1 -0
- package/dist/commands/asset/push.d.ts.map +1 -1
- package/dist/commands/ios/app-log.d.ts +1 -0
- package/dist/commands/ios/app-log.d.ts.map +1 -1
- package/dist/commands/ios/cp.d.ts +1 -0
- package/dist/commands/ios/cp.d.ts.map +1 -1
- package/dist/commands/ios/create.d.ts +1 -0
- package/dist/commands/ios/create.d.ts.map +1 -1
- package/dist/commands/ios/delete.d.ts +1 -0
- package/dist/commands/ios/delete.d.ts.map +1 -1
- package/dist/commands/ios/element-tree.d.ts +1 -0
- package/dist/commands/ios/element-tree.d.ts.map +1 -1
- package/dist/commands/ios/get.d.ts +1 -0
- package/dist/commands/ios/get.d.ts.map +1 -1
- package/dist/commands/ios/info.d.ts +1 -0
- package/dist/commands/ios/info.d.ts.map +1 -1
- package/dist/commands/ios/install-app.d.ts +1 -0
- package/dist/commands/ios/install-app.d.ts.map +1 -1
- package/dist/commands/ios/launch-app.d.ts +1 -0
- package/dist/commands/ios/launch-app.d.ts.map +1 -1
- package/dist/commands/ios/list-apps.d.ts +1 -0
- package/dist/commands/ios/list-apps.d.ts.map +1 -1
- package/dist/commands/ios/list.d.ts +1 -0
- package/dist/commands/ios/list.d.ts.map +1 -1
- package/dist/commands/ios/lsof.d.ts +1 -0
- package/dist/commands/ios/lsof.d.ts.map +1 -1
- package/dist/commands/ios/open-url.d.ts +1 -0
- package/dist/commands/ios/open-url.d.ts.map +1 -1
- package/dist/commands/ios/perform.d.ts +1 -0
- package/dist/commands/ios/perform.d.ts.map +1 -1
- package/dist/commands/ios/press-key.d.ts +1 -0
- package/dist/commands/ios/press-key.d.ts.map +1 -1
- package/dist/commands/ios/record.d.ts +1 -0
- package/dist/commands/ios/record.d.ts.map +1 -1
- package/dist/commands/ios/reverse.d.ts +1 -0
- package/dist/commands/ios/reverse.d.ts.map +1 -1
- package/dist/commands/ios/screenshot.d.ts +1 -0
- package/dist/commands/ios/screenshot.d.ts.map +1 -1
- package/dist/commands/ios/scroll.d.ts +1 -0
- package/dist/commands/ios/scroll.d.ts.map +1 -1
- package/dist/commands/ios/simctl.d.ts +1 -0
- package/dist/commands/ios/simctl.d.ts.map +1 -1
- package/dist/commands/ios/sync.d.ts +1 -0
- package/dist/commands/ios/sync.d.ts.map +1 -1
- package/dist/commands/ios/syslog.d.ts +1 -0
- package/dist/commands/ios/syslog.d.ts.map +1 -1
- package/dist/commands/ios/tap-element.d.ts +1 -0
- package/dist/commands/ios/tap-element.d.ts.map +1 -1
- package/dist/commands/ios/tap.d.ts +1 -0
- package/dist/commands/ios/tap.d.ts.map +1 -1
- package/dist/commands/ios/terminate-app.d.ts +1 -0
- package/dist/commands/ios/terminate-app.d.ts.map +1 -1
- package/dist/commands/ios/toggle-keyboard.d.ts +1 -0
- package/dist/commands/ios/toggle-keyboard.d.ts.map +1 -1
- package/dist/commands/ios/type.d.ts +1 -0
- package/dist/commands/ios/type.d.ts.map +1 -1
- package/dist/commands/ios/xcodebuild.d.ts +1 -0
- package/dist/commands/ios/xcodebuild.d.ts.map +1 -1
- package/dist/commands/ios/xcrun.d.ts +1 -0
- package/dist/commands/ios/xcrun.d.ts.map +1 -1
- package/dist/commands/login.d.ts +1 -0
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/logout.d.ts +1 -0
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/session/start.d.ts +1 -0
- package/dist/commands/session/start.d.ts.map +1 -1
- package/dist/commands/session/status.d.ts +1 -0
- package/dist/commands/session/status.d.ts.map +1 -1
- package/dist/commands/session/stop.d.ts +1 -0
- package/dist/commands/session/stop.d.ts.map +1 -1
- package/dist/commands/set-workspace-dir.d.ts +15 -0
- package/dist/commands/set-workspace-dir.d.ts.map +1 -0
- package/dist/commands/set-workspace-dir.js +60 -0
- package/dist/commands/set-workspace-dir.js.map +1 -0
- package/dist/commands/xcode/attach-simulator.d.ts +1 -0
- package/dist/commands/xcode/attach-simulator.d.ts.map +1 -1
- package/dist/commands/xcode/create.d.ts +1 -0
- package/dist/commands/xcode/create.d.ts.map +1 -1
- package/dist/commands/xcode/delete.d.ts +1 -0
- package/dist/commands/xcode/delete.d.ts.map +1 -1
- package/dist/commands/xcode/get.d.ts +1 -0
- package/dist/commands/xcode/get.d.ts.map +1 -1
- package/dist/commands/xcode/list.d.ts +1 -0
- package/dist/commands/xcode/list.d.ts.map +1 -1
- package/dist/commands/xcode/rbe/install.d.ts +1 -0
- package/dist/commands/xcode/rbe/install.d.ts.map +1 -1
- package/dist/commands/xcode/rbe.d.ts +1 -0
- package/dist/commands/xcode/rbe.d.ts.map +1 -1
- package/dist/commands/xcode/rbe.js +17 -10
- package/dist/commands/xcode/rbe.js.map +1 -1
- package/dist/commands/xcode/sync.d.ts +1 -0
- package/dist/commands/xcode/sync.d.ts.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +324 -105
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/instance-cleanup.d.ts +18 -0
- package/dist/lib/instance-cleanup.d.ts.map +1 -0
- package/dist/lib/instance-cleanup.js +36 -0
- package/dist/lib/instance-cleanup.js.map +1 -0
- package/dist/lib/rbe-workspace.d.ts +7 -0
- package/dist/lib/rbe-workspace.d.ts.map +1 -1
- package/dist/lib/rbe-workspace.js +8 -0
- package/dist/lib/rbe-workspace.js.map +1 -1
- package/dist/lib/scope.d.ts +38 -0
- package/dist/lib/scope.d.ts.map +1 -0
- package/dist/lib/scope.js +125 -0
- package/dist/lib/scope.js.map +1 -0
- package/dist/lib/workspace.d.ts +25 -0
- package/dist/lib/workspace.d.ts.map +1 -0
- package/dist/lib/workspace.js +111 -0
- package/dist/lib/workspace.js.map +1 -0
- package/package.json +2 -2
package/dist/lib/config.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
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
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
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
|
-
|
|
265
|
-
return data.android ?? null;
|
|
479
|
+
return readScope((0, scope_1.getScopeKey)()).android ?? null;
|
|
266
480
|
}
|
|
267
481
|
function loadLastIosInstance() {
|
|
268
|
-
|
|
269
|
-
return data.ios ?? null;
|
|
482
|
+
return readScope((0, scope_1.getScopeKey)()).ios ?? null;
|
|
270
483
|
}
|
|
271
484
|
function loadLastXcodeInstance() {
|
|
272
|
-
|
|
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
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
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
|
-
|
|
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
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
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
|
|
332
|
-
|
|
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
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
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
|
|
344
|
-
|
|
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
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
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
|
|
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"}
|