lim 0.45.1 → 0.46.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.
- package/JSON_OUTPUT.md +123 -0
- package/README.md +34 -5
- package/bin/dev.js +6 -2
- package/bin/json-errors.cjs +35 -0
- package/bin/run.js +3 -0
- package/dist/base-command.d.ts +8 -2
- package/dist/base-command.d.ts.map +1 -1
- package/dist/base-command.js +77 -15
- package/dist/base-command.js.map +1 -1
- package/dist/base-command.snapshots.test.d.ts +2 -0
- package/dist/base-command.snapshots.test.d.ts.map +1 -0
- package/dist/base-command.snapshots.test.js +215 -0
- package/dist/base-command.snapshots.test.js.map +1 -0
- package/dist/commands/android/app-log.d.ts.map +1 -1
- package/dist/commands/android/app-log.js +10 -1
- package/dist/commands/android/app-log.js.map +1 -1
- package/dist/commands/android/camera.d.ts.map +1 -1
- package/dist/commands/android/camera.js +8 -2
- package/dist/commands/android/camera.js.map +1 -1
- package/dist/commands/android/connect.d.ts.map +1 -1
- package/dist/commands/android/connect.js +2 -2
- package/dist/commands/android/connect.js.map +1 -1
- package/dist/commands/android/create.d.ts.map +1 -1
- package/dist/commands/android/create.js +10 -1
- package/dist/commands/android/create.js.map +1 -1
- package/dist/commands/android/delete.js +1 -1
- package/dist/commands/android/delete.js.map +1 -1
- package/dist/commands/android/install-app.d.ts.map +1 -1
- package/dist/commands/android/install-app.js +4 -2
- package/dist/commands/android/install-app.js.map +1 -1
- package/dist/commands/android/launch-app.d.ts.map +1 -1
- package/dist/commands/android/launch-app.js +20 -5
- package/dist/commands/android/launch-app.js.map +1 -1
- package/dist/commands/android/logcat.js +1 -1
- package/dist/commands/android/logcat.js.map +1 -1
- package/dist/commands/android/open-url.d.ts.map +1 -1
- package/dist/commands/android/open-url.js +1 -1
- package/dist/commands/android/open-url.js.map +1 -1
- package/dist/commands/android/press-key.d.ts.map +1 -1
- package/dist/commands/android/press-key.js +1 -1
- package/dist/commands/android/press-key.js.map +1 -1
- package/dist/commands/android/record.d.ts.map +1 -1
- package/dist/commands/android/record.js +26 -5
- package/dist/commands/android/record.js.map +1 -1
- package/dist/commands/android/scroll.d.ts.map +1 -1
- package/dist/commands/android/scroll.js +7 -1
- package/dist/commands/android/scroll.js.map +1 -1
- package/dist/commands/android/set-wifi-bandwidth.d.ts.map +1 -1
- package/dist/commands/android/set-wifi-bandwidth.js +1 -1
- package/dist/commands/android/set-wifi-bandwidth.js.map +1 -1
- package/dist/commands/android/sync.d.ts.map +1 -1
- package/dist/commands/android/sync.js +10 -2
- package/dist/commands/android/sync.js.map +1 -1
- package/dist/commands/android/tap.d.ts.map +1 -1
- package/dist/commands/android/tap.js +1 -1
- package/dist/commands/android/tap.js.map +1 -1
- package/dist/commands/android/terminate-app.d.ts.map +1 -1
- package/dist/commands/android/terminate-app.js +1 -1
- package/dist/commands/android/terminate-app.js.map +1 -1
- package/dist/commands/android/tunnel/index.js +2 -2
- package/dist/commands/android/tunnel/index.js.map +1 -1
- package/dist/commands/android/type.d.ts.map +1 -1
- package/dist/commands/android/type.js +1 -1
- package/dist/commands/android/type.js.map +1 -1
- package/dist/commands/asset/delete.js +1 -1
- package/dist/commands/asset/delete.js.map +1 -1
- package/dist/commands/asset/pull.js +1 -1
- package/dist/commands/asset/pull.js.map +1 -1
- package/dist/commands/asset/push.d.ts.map +1 -1
- package/dist/commands/asset/push.js +4 -0
- package/dist/commands/asset/push.js.map +1 -1
- package/dist/commands/bazel/credentials/get.d.ts.map +1 -1
- package/dist/commands/bazel/credentials/get.js +6 -1
- package/dist/commands/bazel/credentials/get.js.map +1 -1
- package/dist/commands/gradle/build.d.ts +1 -0
- package/dist/commands/gradle/build.d.ts.map +1 -1
- package/dist/commands/gradle/build.js +21 -2
- package/dist/commands/gradle/build.js.map +1 -1
- package/dist/commands/gradle/delete.js +1 -1
- package/dist/commands/gradle/delete.js.map +1 -1
- package/dist/commands/gradle/sync.d.ts.map +1 -1
- package/dist/commands/gradle/sync.js +10 -2
- package/dist/commands/gradle/sync.js.map +1 -1
- package/dist/commands/ios/app-log.d.ts.map +1 -1
- package/dist/commands/ios/app-log.js +6 -3
- package/dist/commands/ios/app-log.js.map +1 -1
- package/dist/commands/ios/camera.d.ts.map +1 -1
- package/dist/commands/ios/camera.js +8 -2
- package/dist/commands/ios/camera.js.map +1 -1
- package/dist/commands/ios/create.d.ts +4 -0
- package/dist/commands/ios/create.d.ts.map +1 -1
- package/dist/commands/ios/create.js +17 -1
- package/dist/commands/ios/create.js.map +1 -1
- package/dist/commands/ios/delete.js +1 -1
- package/dist/commands/ios/delete.js.map +1 -1
- package/dist/commands/ios/keychain/generate-key.d.ts.map +1 -1
- package/dist/commands/ios/keychain/generate-key.js +2 -1
- package/dist/commands/ios/keychain/generate-key.js.map +1 -1
- package/dist/commands/ios/launch-app.d.ts.map +1 -1
- package/dist/commands/ios/launch-app.js +19 -4
- package/dist/commands/ios/launch-app.js.map +1 -1
- package/dist/commands/ios/maestro.d.ts.map +1 -1
- package/dist/commands/ios/maestro.js +4 -1
- package/dist/commands/ios/maestro.js.map +1 -1
- package/dist/commands/ios/open-url.d.ts.map +1 -1
- package/dist/commands/ios/open-url.js +1 -1
- package/dist/commands/ios/open-url.js.map +1 -1
- package/dist/commands/ios/press-key.d.ts.map +1 -1
- package/dist/commands/ios/press-key.js +1 -1
- package/dist/commands/ios/press-key.js.map +1 -1
- package/dist/commands/ios/record.d.ts.map +1 -1
- package/dist/commands/ios/record.js +28 -5
- package/dist/commands/ios/record.js.map +1 -1
- package/dist/commands/ios/scroll.d.ts.map +1 -1
- package/dist/commands/ios/scroll.js +9 -1
- package/dist/commands/ios/scroll.js.map +1 -1
- package/dist/commands/ios/swipe.d.ts.map +1 -1
- package/dist/commands/ios/swipe.js +1 -1
- package/dist/commands/ios/swipe.js.map +1 -1
- package/dist/commands/ios/sync.d.ts.map +1 -1
- package/dist/commands/ios/sync.js +12 -3
- package/dist/commands/ios/sync.js.map +1 -1
- package/dist/commands/ios/syslog.js +1 -1
- package/dist/commands/ios/syslog.js.map +1 -1
- package/dist/commands/ios/tap.d.ts.map +1 -1
- package/dist/commands/ios/tap.js +1 -1
- package/dist/commands/ios/tap.js.map +1 -1
- package/dist/commands/ios/terminate-app.d.ts.map +1 -1
- package/dist/commands/ios/terminate-app.js +1 -1
- package/dist/commands/ios/terminate-app.js.map +1 -1
- package/dist/commands/ios/toggle-keyboard.js +1 -1
- package/dist/commands/ios/toggle-keyboard.js.map +1 -1
- package/dist/commands/ios/tunnel/index.js +2 -2
- package/dist/commands/ios/tunnel/index.js.map +1 -1
- package/dist/commands/ios/type.d.ts.map +1 -1
- package/dist/commands/ios/type.js +7 -1
- package/dist/commands/ios/type.js.map +1 -1
- package/dist/commands/logout.js +1 -1
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/run.d.ts +4 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +15 -1
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/session/start.d.ts.map +1 -1
- package/dist/commands/session/start.js +2 -2
- package/dist/commands/session/start.js.map +1 -1
- package/dist/commands/session/status.js +2 -2
- package/dist/commands/session/status.js.map +1 -1
- package/dist/commands/session/stop.d.ts.map +1 -1
- package/dist/commands/session/stop.js +12 -5
- package/dist/commands/session/stop.js.map +1 -1
- package/dist/commands/tunnel/delete.d.ts.map +1 -1
- package/dist/commands/tunnel/delete.js +1 -1
- package/dist/commands/tunnel/delete.js.map +1 -1
- package/dist/commands/tunnel/run.d.ts.map +1 -1
- package/dist/commands/tunnel/run.js +6 -3
- package/dist/commands/tunnel/run.js.map +1 -1
- package/dist/commands/xcode/build.d.ts +1 -0
- package/dist/commands/xcode/build.d.ts.map +1 -1
- package/dist/commands/xcode/build.js +25 -7
- package/dist/commands/xcode/build.js.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/create.js +13 -4
- package/dist/commands/xcode/create.js.map +1 -1
- package/dist/commands/xcode/delete.js +1 -1
- package/dist/commands/xcode/delete.js.map +1 -1
- package/dist/commands/xcode/rbe/index.d.ts.map +1 -1
- package/dist/commands/xcode/rbe/index.js +6 -0
- package/dist/commands/xcode/rbe/index.js.map +1 -1
- package/dist/commands/xcode/sync.d.ts +4 -0
- package/dist/commands/xcode/sync.d.ts.map +1 -1
- package/dist/commands/xcode/sync.js +15 -2
- package/dist/commands/xcode/sync.js.map +1 -1
- package/dist/commands/xcode/test.d.ts +1 -0
- package/dist/commands/xcode/test.d.ts.map +1 -1
- package/dist/commands/xcode/test.js +1 -0
- package/dist/commands/xcode/test.js.map +1 -1
- package/dist/json-contract.test.d.ts +2 -0
- package/dist/json-contract.test.d.ts.map +1 -0
- package/dist/json-contract.test.js +703 -0
- package/dist/json-contract.test.js.map +1 -0
- package/dist/json-errors.test.d.ts +2 -0
- package/dist/json-errors.test.d.ts.map +1 -0
- package/dist/json-errors.test.js +95 -0
- package/dist/json-errors.test.js.map +1 -0
- package/dist/lib/build-command-helpers.d.ts +4 -1
- package/dist/lib/build-command-helpers.d.ts.map +1 -1
- package/dist/lib/build-command-helpers.js +22 -3
- package/dist/lib/build-command-helpers.js.map +1 -1
- package/dist/lib/build-run-command.d.ts.map +1 -1
- package/dist/lib/build-run-command.js +1 -1
- package/dist/lib/build-run-command.js.map +1 -1
- package/dist/lib/build-tools-command.d.ts.map +1 -1
- package/dist/lib/build-tools-command.js +1 -1
- package/dist/lib/build-tools-command.js.map +1 -1
- package/dist/lib/build-use-command.d.ts.map +1 -1
- package/dist/lib/build-use-command.js +9 -2
- package/dist/lib/build-use-command.js.map +1 -1
- package/dist/lib/build-use-command.test.js +11 -0
- package/dist/lib/build-use-command.test.js.map +1 -1
- package/dist/lib/cache-flags.d.ts +1 -0
- package/dist/lib/cache-flags.d.ts.map +1 -1
- package/dist/lib/cache-flags.js +5 -1
- package/dist/lib/cache-flags.js.map +1 -1
- package/dist/lib/cache-flags.test.js +8 -0
- package/dist/lib/cache-flags.test.js.map +1 -1
- package/dist/lib/cache.d.ts +1 -0
- package/dist/lib/cache.d.ts.map +1 -1
- package/dist/lib/cache.js +3 -0
- package/dist/lib/cache.js.map +1 -1
- package/dist/lib/daemon-client.d.ts +1 -1
- package/dist/lib/daemon-client.d.ts.map +1 -1
- package/dist/lib/daemon-client.js +2 -2
- package/dist/lib/daemon-client.js.map +1 -1
- package/dist/lib/instance-client-factory.d.ts.map +1 -1
- package/dist/lib/instance-client-factory.js +13 -3
- package/dist/lib/instance-client-factory.js.map +1 -1
- package/dist/lib/instance-client-factory.test.js +35 -0
- package/dist/lib/instance-client-factory.test.js.map +1 -1
- package/dist/lib/snapshot-project.d.ts +7 -0
- package/dist/lib/snapshot-project.d.ts.map +1 -0
- package/dist/lib/snapshot-project.js +194 -0
- package/dist/lib/snapshot-project.js.map +1 -0
- package/dist/lib/snapshot-project.test.d.ts +2 -0
- package/dist/lib/snapshot-project.test.d.ts.map +1 -0
- package/dist/lib/snapshot-project.test.js +156 -0
- package/dist/lib/snapshot-project.test.js.map +1 -0
- package/package.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-client.js","sourceRoot":"","sources":["../../src/lib/daemon-client.ts"],"names":[],"mappings":";;;;;AAMA,0CAEC;AAKD,
|
|
1
|
+
{"version":3,"file":"daemon-client.js","sourceRoot":"","sources":["../../src/lib/daemon-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-client-factory.d.ts","sourceRoot":"","sources":["../../src/lib/instance-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAwB,GAAG,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAG1G,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAqB,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAE7F,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAElE,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC;IAC3B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAS3D;AAID,iGAAiG;AACjG,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAExF;AAED,4BAA4B;AAC5B,KAAK,OAAO,GAAG,OAAO,kBAAkB,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,mBAAmB,GAAG,eAAe,EAC7C,OAAO,GAAE,OAA4B,GACpC,OAAO,CAAC,OAAO,CAAC,CAyBlB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,OAAO,EAAO,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,mBAAmB,EAC3B,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACjC,OAAO,CAAC,6BAA6B,CAAC,
|
|
1
|
+
{"version":3,"file":"instance-client-factory.d.ts","sourceRoot":"","sources":["../../src/lib/instance-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAwB,GAAG,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAG1G,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAqB,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAE7F,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAElE,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC;IAC3B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAS3D;AAID,iGAAiG;AACjG,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAExF;AAED,4BAA4B;AAC5B,KAAK,OAAO,GAAG,OAAO,kBAAkB,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,mBAAmB,GAAG,eAAe,EAC7C,OAAO,GAAE,OAA4B,GACpC,OAAO,CAAC,OAAO,CAAC,CAyBlB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,OAAO,EAAO,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,mBAAmB,EAC3B,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACjC,OAAO,CAAC,6BAA6B,CAAC,CAmCxC;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,GAAG,CAAC,aAAkB,GAC3B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAO3D;AAED,iFAAiF;AACjF,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,cAAc,CAAC,CAOzB;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,yBAAyB,CAAC,CA8BpC"}
|
|
@@ -69,7 +69,7 @@ async function ensureDaemonSession(target, spawnFn = daemon_1.spawnSessionDaemon
|
|
|
69
69
|
* Send a command via the daemon session for the given instance ID.
|
|
70
70
|
*/
|
|
71
71
|
function sendSessionCommand(instanceId, command, args = [], timeoutMs) {
|
|
72
|
-
return (0, daemon_client_1.sendCommand)(instanceId, command, args, timeoutMs);
|
|
72
|
+
return (0, daemon_client_1.sendCommand)(instanceId, command, args, timeoutMs, sessionAutoStart.silent);
|
|
73
73
|
}
|
|
74
74
|
async function getAndroidInstanceClient(lim, target, options = {}) {
|
|
75
75
|
if (target.apiUrl && target.token) {
|
|
@@ -78,6 +78,7 @@ async function getAndroidInstanceClient(lim, target, options = {}) {
|
|
|
78
78
|
adbUrl: target.adbWebSocketUrl,
|
|
79
79
|
token: target.token,
|
|
80
80
|
adbPath: options.adbPath,
|
|
81
|
+
logLevel: sessionAutoStart.silent ? 'warn' : 'info',
|
|
81
82
|
});
|
|
82
83
|
return { type: 'android', client, disconnect: () => client.disconnect(), isSession: false };
|
|
83
84
|
}
|
|
@@ -101,6 +102,7 @@ async function getAndroidInstanceClient(lim, target, options = {}) {
|
|
|
101
102
|
adbUrl: instance.status.adbWebSocketUrl,
|
|
102
103
|
token,
|
|
103
104
|
adbPath: options.adbPath,
|
|
105
|
+
logLevel: sessionAutoStart.silent ? 'warn' : 'info',
|
|
104
106
|
});
|
|
105
107
|
return { type: 'android', client, disconnect: () => client.disconnect(), isSession: false };
|
|
106
108
|
}
|
|
@@ -129,7 +131,11 @@ async function runAndroidAdbShell(lim, target, command, args) {
|
|
|
129
131
|
}
|
|
130
132
|
async function getIosInstanceClient(lim, target) {
|
|
131
133
|
if (target.apiUrl && target.token) {
|
|
132
|
-
const client = await api_1.Ios.createInstanceClient({
|
|
134
|
+
const client = await api_1.Ios.createInstanceClient({
|
|
135
|
+
apiUrl: target.apiUrl,
|
|
136
|
+
token: target.token,
|
|
137
|
+
logLevel: sessionAutoStart.silent ? 'warn' : 'info',
|
|
138
|
+
});
|
|
133
139
|
return { type: 'ios', client, disconnect: () => client.disconnect(), isSession: false };
|
|
134
140
|
}
|
|
135
141
|
const instance = await lim.iosInstances.get(target.id);
|
|
@@ -146,7 +152,11 @@ async function getIosInstanceClient(lim, target) {
|
|
|
146
152
|
signedStreamUrl: instance.status.signedStreamUrl,
|
|
147
153
|
targetHttpPortUrlPrefix: instance.status.targetHttpPortUrlPrefix,
|
|
148
154
|
});
|
|
149
|
-
const client = await api_1.Ios.createInstanceClient({
|
|
155
|
+
const client = await api_1.Ios.createInstanceClient({
|
|
156
|
+
apiUrl,
|
|
157
|
+
token,
|
|
158
|
+
logLevel: sessionAutoStart.silent ? 'warn' : 'info',
|
|
159
|
+
});
|
|
150
160
|
return { type: 'ios', client, disconnect: () => client.disconnect(), isSession: false };
|
|
151
161
|
}
|
|
152
162
|
//# sourceMappingURL=instance-client-factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-client-factory.js","sourceRoot":"","sources":["../../src/lib/instance-client-factory.ts"],"names":[],"mappings":";;AAwBA,gDASC;AAKD,kDAEC;AAYD,kDA4BC;AAKD,gDAOC;AAED,
|
|
1
|
+
{"version":3,"file":"instance-client-factory.js","sourceRoot":"","sources":["../../src/lib/instance-client-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,4 +75,39 @@ describe('ensureDaemonSession', () => {
|
|
|
75
75
|
expect(stderr).toHaveBeenCalledWith(`Could not start WebSocket daemon for ${IOS_TARGET.id} (boom); connecting directly.`);
|
|
76
76
|
});
|
|
77
77
|
});
|
|
78
|
+
jest.mock('@limrun/api', () => ({
|
|
79
|
+
...jest.requireActual('@limrun/api'),
|
|
80
|
+
createInstanceClient: jest.fn().mockResolvedValue({ disconnect: jest.fn() }),
|
|
81
|
+
Ios: {
|
|
82
|
+
...jest.requireActual('@limrun/api').Ios,
|
|
83
|
+
createInstanceClient: jest.fn().mockResolvedValue({ disconnect: jest.fn() }),
|
|
84
|
+
},
|
|
85
|
+
}));
|
|
86
|
+
jest.mock('./config', () => ({ ...jest.requireActual('./config'), saveInstanceCache: jest.fn() }));
|
|
87
|
+
describe('JSON output keeps SDK logs off stdout', () => {
|
|
88
|
+
afterEach(() => (0, instance_client_factory_1.setSessionAutoStart)({ enabled: true, silent: false }));
|
|
89
|
+
test.each(['ios', 'android'])('%s clients use stderr-only SDK logging with and without cached credentials', async (platform) => {
|
|
90
|
+
const { createInstanceClient, Ios } = require('@limrun/api');
|
|
91
|
+
const { getAndroidInstanceClient, getIosInstanceClient } = require('./instance-client-factory');
|
|
92
|
+
const create = platform === 'ios' ? Ios.createInstanceClient : createInstanceClient;
|
|
93
|
+
const get = platform === 'ios' ? getIosInstanceClient : getAndroidInstanceClient;
|
|
94
|
+
const target = platform === 'ios' ? IOS_TARGET : ANDROID_TARGET;
|
|
95
|
+
const instance = {
|
|
96
|
+
metadata: { id: target.id },
|
|
97
|
+
status: { apiUrl: target.apiUrl, token: target.token },
|
|
98
|
+
};
|
|
99
|
+
const lim = {
|
|
100
|
+
iosInstances: { get: jest.fn().mockResolvedValue(instance) },
|
|
101
|
+
androidInstances: { get: jest.fn().mockResolvedValue(instance) },
|
|
102
|
+
};
|
|
103
|
+
(0, instance_client_factory_1.setSessionAutoStart)({ enabled: true, silent: true });
|
|
104
|
+
await get(lim, target);
|
|
105
|
+
expect(create).toHaveBeenLastCalledWith(expect.objectContaining({ logLevel: 'warn' }));
|
|
106
|
+
await get(lim, { id: target.id, type: platform });
|
|
107
|
+
expect(create).toHaveBeenLastCalledWith(expect.objectContaining({ logLevel: 'warn' }));
|
|
108
|
+
(0, instance_client_factory_1.setSessionAutoStart)({ enabled: true, silent: false });
|
|
109
|
+
await get(lim, target);
|
|
110
|
+
expect(create).toHaveBeenLastCalledWith(expect.objectContaining({ logLevel: 'info' }));
|
|
111
|
+
});
|
|
112
|
+
});
|
|
78
113
|
//# sourceMappingURL=instance-client-factory.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-client-factory.test.js","sourceRoot":"","sources":["../../src/lib/instance-client-factory.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"instance-client-factory.test.js","sourceRoot":"","sources":["../../src/lib/instance-client-factory.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { XcodeCacheConfig } from '@limrun/api';
|
|
2
|
+
import { type CacheFlags } from './cache';
|
|
3
|
+
/** Explicit settings keep their semantics, including restore-only snapshots. */
|
|
4
|
+
export declare function projectSnapshotConfig(flags: CacheFlags, projectPath: string): XcodeCacheConfig | undefined;
|
|
5
|
+
/** Share snapshots across clones and worktrees without including local paths or credentials. */
|
|
6
|
+
export declare function projectSnapshotKey(projectPath: string): string | undefined;
|
|
7
|
+
//# sourceMappingURL=snapshot-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-project.d.ts","sourceRoot":"","sources":["../../src/lib/snapshot-project.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,SAAS,CAAC;AAE/D,gFAAgF;AAChF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAK1G;AAED,gGAAgG;AAChG,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA4B1E"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.projectSnapshotConfig = projectSnapshotConfig;
|
|
7
|
+
exports.projectSnapshotKey = projectSnapshotKey;
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const cache_1 = require("./cache");
|
|
11
|
+
/** Explicit settings keep their semantics, including restore-only snapshots. */
|
|
12
|
+
function projectSnapshotConfig(flags, projectPath) {
|
|
13
|
+
const explicit = (0, cache_1.parseSnapshotConfig)(flags);
|
|
14
|
+
if (explicit || flags['no-snapshot'])
|
|
15
|
+
return explicit;
|
|
16
|
+
const key = projectSnapshotKey(projectPath);
|
|
17
|
+
return key ? { key } : undefined;
|
|
18
|
+
}
|
|
19
|
+
/** Share snapshots across clones and worktrees without including local paths or credentials. */
|
|
20
|
+
function projectSnapshotKey(projectPath) {
|
|
21
|
+
try {
|
|
22
|
+
const cwd = fs_1.default.realpathSync(projectPath);
|
|
23
|
+
const checkout = findCheckout(cwd);
|
|
24
|
+
if (!checkout)
|
|
25
|
+
return undefined;
|
|
26
|
+
const { root, gitDir } = checkout;
|
|
27
|
+
const common = readOptional(path_1.default.join(gitDir, 'commondir'))?.trim();
|
|
28
|
+
const commonDir = common ? path_1.default.resolve(gitDir, common) : gitDir;
|
|
29
|
+
const config = parseConfig(readOptional(path_1.default.join(commonDir, 'config')) ?? '');
|
|
30
|
+
if (/^(true|yes|on|1)$/i.test(config.get('extensions.worktreeconfig')?.slice(-1)[0] ?? '')) {
|
|
31
|
+
for (const [name, values] of parseConfig(readOptional(path_1.default.join(gitDir, 'config.worktree')) ?? '')) {
|
|
32
|
+
config.set(name, [...(config.get(name) ?? []), ...values]);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// Git fetch uses the first URL when a remote declares more than one.
|
|
36
|
+
const origin = config.get('remote.origin.url')?.[0];
|
|
37
|
+
if (!origin)
|
|
38
|
+
return undefined;
|
|
39
|
+
const repo = repositoryIdentity(origin);
|
|
40
|
+
if (!repo)
|
|
41
|
+
return undefined;
|
|
42
|
+
const relative = path_1.default.relative(root, cwd).split(path_1.default.sep).join('/');
|
|
43
|
+
if (relative === '..' || relative.startsWith('../'))
|
|
44
|
+
return undefined;
|
|
45
|
+
const key = relative ? `${repo}/${relative}` : repo;
|
|
46
|
+
// Match the API's key bounds. Unrepresentable identities need an explicit key.
|
|
47
|
+
return key.length <= 255 && /^[A-Za-z0-9._+/:@#-]+$/.test(key) ? key : undefined;
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// Missing or unsupported metadata leaves snapshots explicit.
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function findCheckout(start) {
|
|
55
|
+
for (let root = start;; root = path_1.default.dirname(root)) {
|
|
56
|
+
const marker = path_1.default.join(root, '.git');
|
|
57
|
+
if (fs_1.default.lstatSync(marker, { throwIfNoEntry: false })) {
|
|
58
|
+
if (fs_1.default.statSync(marker).isDirectory())
|
|
59
|
+
return { root, gitDir: marker };
|
|
60
|
+
const gitFile = /^gitdir: (.+)$/.exec(fs_1.default.readFileSync(marker, 'utf8').trim());
|
|
61
|
+
// A broken nested checkout must not inherit the parent repository's key.
|
|
62
|
+
if (!gitFile)
|
|
63
|
+
return undefined;
|
|
64
|
+
return { root, gitDir: path_1.default.resolve(root, gitFile[1]) };
|
|
65
|
+
}
|
|
66
|
+
if (path_1.default.dirname(root) === root)
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function readOptional(file) {
|
|
71
|
+
try {
|
|
72
|
+
return fs_1.default.readFileSync(file, 'utf8');
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
if (err.code === 'ENOENT')
|
|
76
|
+
return undefined;
|
|
77
|
+
throw err;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/** Read repository-local settings without inheriting machine-specific Git configuration. */
|
|
81
|
+
function parseConfig(text) {
|
|
82
|
+
const config = new Map();
|
|
83
|
+
let section = '';
|
|
84
|
+
for (let line of configLines(text)) {
|
|
85
|
+
line = line.trim();
|
|
86
|
+
if (!line)
|
|
87
|
+
continue;
|
|
88
|
+
if (line.startsWith('[')) {
|
|
89
|
+
const header = /^\[([\w.-]+)(?:[ \t]+"((?:[^"\\]|\\.)*)")?\](.*)$/.exec(line);
|
|
90
|
+
if (!header)
|
|
91
|
+
throw new Error('Invalid Git config section');
|
|
92
|
+
section = header[1].toLowerCase();
|
|
93
|
+
if (header[2] !== undefined)
|
|
94
|
+
section += `.${header[2].replace(/\\(.)/g, '$1')}`;
|
|
95
|
+
line = header[3].trim();
|
|
96
|
+
if (!line)
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
const setting = /^([a-z][a-z0-9-]*)(?:[ \t]*=[ \t]*(.*))?$/i.exec(line);
|
|
100
|
+
if (!section || !setting)
|
|
101
|
+
throw new Error('Invalid Git config setting');
|
|
102
|
+
const name = `${section}.${setting[1].toLowerCase()}`;
|
|
103
|
+
// Includes can replace the origin. Require an explicit key instead of guessing from a partial config.
|
|
104
|
+
if (name === 'include.path' ||
|
|
105
|
+
(section.startsWith('includeif.') && setting[1].toLowerCase() === 'path')) {
|
|
106
|
+
throw new Error('Git config includes require an explicit snapshot key');
|
|
107
|
+
}
|
|
108
|
+
const value = setting[2] === undefined ? 'true' : configValue(setting[2]);
|
|
109
|
+
config.set(name, [...(config.get(name) ?? []), value]);
|
|
110
|
+
}
|
|
111
|
+
return config;
|
|
112
|
+
}
|
|
113
|
+
/** Comments and continuations depend on quoting, so splitting at '#' or newlines alone loses URLs. */
|
|
114
|
+
function configLines(text) {
|
|
115
|
+
const lines = [];
|
|
116
|
+
let line = '';
|
|
117
|
+
let quoted = false;
|
|
118
|
+
let comment = false;
|
|
119
|
+
text = text.replace(/\r\n/g, '\n');
|
|
120
|
+
for (let i = 0; i < text.length; i++) {
|
|
121
|
+
const char = text[i];
|
|
122
|
+
if (char === '\n') {
|
|
123
|
+
if (quoted)
|
|
124
|
+
throw new Error('Unterminated Git config quote');
|
|
125
|
+
lines.push(line);
|
|
126
|
+
line = '';
|
|
127
|
+
comment = false;
|
|
128
|
+
}
|
|
129
|
+
else if (!comment) {
|
|
130
|
+
if (char === '\\') {
|
|
131
|
+
const next = text[++i];
|
|
132
|
+
if (next === undefined)
|
|
133
|
+
throw new Error('Incomplete Git config escape');
|
|
134
|
+
if (next !== '\n')
|
|
135
|
+
line += char + next;
|
|
136
|
+
}
|
|
137
|
+
else if (!quoted && (char === '#' || char === ';')) {
|
|
138
|
+
comment = true;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
if (char === '"')
|
|
142
|
+
quoted = !quoted;
|
|
143
|
+
line += char;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (quoted)
|
|
148
|
+
throw new Error('Unterminated Git config quote');
|
|
149
|
+
lines.push(line);
|
|
150
|
+
return lines;
|
|
151
|
+
}
|
|
152
|
+
function configValue(raw) {
|
|
153
|
+
const escapes = { n: '\n', t: '\t', b: '\b', '\\': '\\', '"': '"' };
|
|
154
|
+
let value = '';
|
|
155
|
+
for (let i = 0; i < raw.length; i++) {
|
|
156
|
+
const char = raw[i];
|
|
157
|
+
if (char === '\\') {
|
|
158
|
+
const escaped = escapes[raw[++i]];
|
|
159
|
+
if (escaped === undefined)
|
|
160
|
+
throw new Error('Invalid Git config escape');
|
|
161
|
+
value += escaped;
|
|
162
|
+
}
|
|
163
|
+
else if (char !== '"') {
|
|
164
|
+
value += char;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return value;
|
|
168
|
+
}
|
|
169
|
+
function repositoryIdentity(remote) {
|
|
170
|
+
let host;
|
|
171
|
+
let repo;
|
|
172
|
+
if (remote.includes('://')) {
|
|
173
|
+
const url = new URL(remote);
|
|
174
|
+
if (!['https:', 'http:', 'ssh:', 'git:'].includes(url.protocol))
|
|
175
|
+
return undefined;
|
|
176
|
+
host = url.host.toLowerCase();
|
|
177
|
+
repo = url.pathname;
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
const scp = /^(?:[^/@:\s]+@)?([^/:\s]+):(.+)$/.exec(remote);
|
|
181
|
+
if (!scp || /^[A-Za-z]:[\\/]/.test(remote))
|
|
182
|
+
return undefined;
|
|
183
|
+
host = scp[1].toLowerCase();
|
|
184
|
+
repo = scp[2];
|
|
185
|
+
}
|
|
186
|
+
repo = repo.replace(/^\/+|\/+$/g, '').replace(/\.git$/, '');
|
|
187
|
+
if (!repo || repo.split('/').some((part) => !part || part === '.' || part === '..'))
|
|
188
|
+
return undefined;
|
|
189
|
+
// GitHub repository names are case-insensitive; other hosts may preserve case.
|
|
190
|
+
if (host === 'github.com')
|
|
191
|
+
repo = repo.toLowerCase();
|
|
192
|
+
return `${host}/${repo}`;
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=snapshot-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-project.js","sourceRoot":"","sources":["../../src/lib/snapshot-project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-project.test.d.ts","sourceRoot":"","sources":["../../src/lib/snapshot-project.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const fs_1 = __importDefault(require("fs"));
|
|
7
|
+
const os_1 = __importDefault(require("os"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const snapshot_project_1 = require("./snapshot-project");
|
|
10
|
+
let temp;
|
|
11
|
+
let repo;
|
|
12
|
+
const writeConfig = (gitDir, remote) => {
|
|
13
|
+
fs_1.default.mkdirSync(gitDir, { recursive: true });
|
|
14
|
+
fs_1.default.writeFileSync(path_1.default.join(gitDir, 'HEAD'), 'ref: refs/heads/main\n');
|
|
15
|
+
fs_1.default.writeFileSync(path_1.default.join(gitDir, 'config'), '[core]\n\trepositoryformatversion = 0\n\tbare = false\n' +
|
|
16
|
+
(remote ? `[remote "origin"]\n\turl = ${JSON.stringify(remote)}\n` : ''));
|
|
17
|
+
};
|
|
18
|
+
const setOrigin = (remote) => writeConfig(path_1.default.join(repo, '.git'), remote);
|
|
19
|
+
beforeEach(() => {
|
|
20
|
+
temp = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'lim-snapshot-'));
|
|
21
|
+
repo = path_1.default.join(temp, 'local-checkout-name');
|
|
22
|
+
fs_1.default.mkdirSync(repo);
|
|
23
|
+
setOrigin('git@github.com:acme/monorepo.git');
|
|
24
|
+
fs_1.default.mkdirSync(path_1.default.join(repo, 'apps', 'ios'), { recursive: true });
|
|
25
|
+
});
|
|
26
|
+
afterEach(() => fs_1.default.rmSync(temp, { recursive: true, force: true }));
|
|
27
|
+
test('discovers the project with no Git binary on PATH', () => {
|
|
28
|
+
const previous = process.env.PATH;
|
|
29
|
+
try {
|
|
30
|
+
process.env.PATH = temp;
|
|
31
|
+
expect((0, snapshot_project_1.projectSnapshotKey)(path_1.default.join(repo, 'apps', 'ios'))).toBe('github.com/acme/monorepo/apps/ios');
|
|
32
|
+
}
|
|
33
|
+
finally {
|
|
34
|
+
if (previous === undefined)
|
|
35
|
+
delete process.env.PATH;
|
|
36
|
+
else
|
|
37
|
+
process.env.PATH = previous;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
test('parses quoted values, comments, continuations, and case-insensitive setting names', () => {
|
|
41
|
+
fs_1.default.writeFileSync(path_1.default.join(repo, '.git', 'config'), [
|
|
42
|
+
'[core]',
|
|
43
|
+
' editor = "tool \\"arg\\"" # unrelated escaped quotes',
|
|
44
|
+
'[ReMoTe "origin"] ; comment',
|
|
45
|
+
' URL = "https://user:sec;ret@github.com/acme/\\',
|
|
46
|
+
'monorepo.git" # origin',
|
|
47
|
+
'[remote "other"] url = https://github.com/acme/other.git',
|
|
48
|
+
].join('\r\n'));
|
|
49
|
+
expect((0, snapshot_project_1.projectSnapshotKey)(repo)).toBe('github.com/acme/monorepo');
|
|
50
|
+
});
|
|
51
|
+
test('uses the first fetch URL and supports the legacy section spelling', () => {
|
|
52
|
+
fs_1.default.writeFileSync(path_1.default.join(repo, '.git', 'config'), [
|
|
53
|
+
'[REMOTE.ORIGIN]',
|
|
54
|
+
'url = https://github.com/acme/monorepo.git',
|
|
55
|
+
'url = https://github.com/acme/mirror.git',
|
|
56
|
+
'[remote "Origin"]',
|
|
57
|
+
'url = https://github.com/acme/uppercase-name.git',
|
|
58
|
+
].join('\n'));
|
|
59
|
+
expect((0, snapshot_project_1.projectSnapshotKey)(repo)).toBe('github.com/acme/monorepo');
|
|
60
|
+
});
|
|
61
|
+
test('reads worktree-local origins only when the worktreeConfig extension is enabled', () => {
|
|
62
|
+
setOrigin();
|
|
63
|
+
const gitDir = path_1.default.join(repo, '.git');
|
|
64
|
+
fs_1.default.writeFileSync(path_1.default.join(gitDir, 'config.worktree'), '[remote "origin"]\nurl = git@github.com:acme/worktree.git\n');
|
|
65
|
+
expect((0, snapshot_project_1.projectSnapshotKey)(repo)).toBeUndefined();
|
|
66
|
+
fs_1.default.appendFileSync(path_1.default.join(gitDir, 'config'), '[extensions]\nworktreeConfig = true\n');
|
|
67
|
+
expect((0, snapshot_project_1.projectSnapshotKey)(repo)).toBe('github.com/acme/worktree');
|
|
68
|
+
});
|
|
69
|
+
test.each(['not a gitfile', 'gitdir: missing', 'gitdir: '])('does not escape a broken nested checkout: %s', (pointer) => {
|
|
70
|
+
const nested = path_1.default.join(repo, 'apps', 'ios');
|
|
71
|
+
fs_1.default.writeFileSync(path_1.default.join(nested, '.git'), pointer);
|
|
72
|
+
expect((0, snapshot_project_1.projectSnapshotKey)(nested)).toBeUndefined();
|
|
73
|
+
});
|
|
74
|
+
test.each([
|
|
75
|
+
'[remote "origin"]\nurl = "unterminated',
|
|
76
|
+
'[remote "origin"]\nurl = "https://github.com/acme/\\q"',
|
|
77
|
+
'[remote "origin"\nurl = https://github.com/acme/repo.git',
|
|
78
|
+
'[remote "origin"]\nurl = https://github.com/acme/repo.git\n[include]\npath = other.config',
|
|
79
|
+
'[remote "origin"]\nurl = https://github.com/acme/repo.git\n[includeIf "onbranch:main"]\npath = other.config',
|
|
80
|
+
])('leaves malformed or included config to an explicit key: %s', (config) => {
|
|
81
|
+
fs_1.default.writeFileSync(path_1.default.join(repo, '.git', 'config'), config);
|
|
82
|
+
expect((0, snapshot_project_1.projectSnapshotConfig)({}, repo)).toBeUndefined();
|
|
83
|
+
expect((0, snapshot_project_1.projectSnapshotConfig)({ 'snapshot-key': 'explicit' }, repo)).toEqual({ key: 'explicit' });
|
|
84
|
+
});
|
|
85
|
+
test.each([
|
|
86
|
+
'git@github.com:Acme/Monorepo.git',
|
|
87
|
+
'ssh://git@github.com/acme/monorepo.git',
|
|
88
|
+
'https://github.com/acme/monorepo.git/',
|
|
89
|
+
'https://user:secret@github.com/acme/monorepo.git?token=secret',
|
|
90
|
+
])('normalizes %s to the same project identity', (remote) => {
|
|
91
|
+
setOrigin(remote);
|
|
92
|
+
expect((0, snapshot_project_1.projectSnapshotKey)(repo)).toBe('github.com/acme/monorepo');
|
|
93
|
+
expect((0, snapshot_project_1.projectSnapshotKey)(path_1.default.join(repo, 'apps', 'ios'))).toBe('github.com/acme/monorepo/apps/ios');
|
|
94
|
+
});
|
|
95
|
+
test('preserves case-sensitive repository and app paths on other hosts', () => {
|
|
96
|
+
setOrigin('ssh://git@git.example.com:2222/Acme/Mobile.git');
|
|
97
|
+
fs_1.default.mkdirSync(path_1.default.join(repo, 'MyApp'));
|
|
98
|
+
expect((0, snapshot_project_1.projectSnapshotKey)(path_1.default.join(repo, 'MyApp'))).toBe('git.example.com:2222/Acme/Mobile/MyApp');
|
|
99
|
+
});
|
|
100
|
+
test.each(['relative', 'absolute'])('%s worktree pointers and symlinked paths share the project key', (kind) => {
|
|
101
|
+
const worktree = path_1.default.join(temp, 'other-checkout');
|
|
102
|
+
const gitDir = path_1.default.join(repo, '.git', 'worktrees', 'other-checkout');
|
|
103
|
+
fs_1.default.mkdirSync(gitDir, { recursive: true });
|
|
104
|
+
fs_1.default.mkdirSync(path_1.default.join(worktree, 'apps', 'ios'), { recursive: true });
|
|
105
|
+
fs_1.default.writeFileSync(path_1.default.join(worktree, '.git'), `gitdir: ${kind === 'absolute' ? gitDir : path_1.default.relative(worktree, gitDir)}\n`);
|
|
106
|
+
fs_1.default.writeFileSync(path_1.default.join(gitDir, 'commondir'), '../../\n');
|
|
107
|
+
fs_1.default.writeFileSync(path_1.default.join(gitDir, 'HEAD'), 'ref: refs/heads/feature\n');
|
|
108
|
+
const linked = path_1.default.join(temp, 'linked');
|
|
109
|
+
fs_1.default.symlinkSync(worktree, linked, 'junction');
|
|
110
|
+
expect((0, snapshot_project_1.projectSnapshotKey)(path_1.default.join(linked, 'apps', 'ios'))).toBe('github.com/acme/monorepo/apps/ios');
|
|
111
|
+
});
|
|
112
|
+
test('uses the nearest repository for a nested checkout', () => {
|
|
113
|
+
const nested = path_1.default.join(repo, 'apps', 'ios');
|
|
114
|
+
writeConfig(path_1.default.join(nested, '.git'), 'git@github.com:acme/ios.git');
|
|
115
|
+
expect((0, snapshot_project_1.projectSnapshotKey)(nested)).toBe('github.com/acme/ios');
|
|
116
|
+
});
|
|
117
|
+
test('follows a submodule gitfile without adopting the containing repository', () => {
|
|
118
|
+
const nested = path_1.default.join(repo, 'apps', 'ios');
|
|
119
|
+
const gitDir = path_1.default.join(repo, '.git', 'modules', 'apps', 'ios');
|
|
120
|
+
writeConfig(gitDir, 'git@github.com:acme/ios.git');
|
|
121
|
+
fs_1.default.writeFileSync(path_1.default.join(nested, '.git'), `gitdir: ${path_1.default.relative(nested, gitDir)}\n`);
|
|
122
|
+
fs_1.default.mkdirSync(path_1.default.join(nested, 'Client'));
|
|
123
|
+
expect((0, snapshot_project_1.projectSnapshotKey)(path_1.default.join(nested, 'Client'))).toBe('github.com/acme/ios/Client');
|
|
124
|
+
});
|
|
125
|
+
test.each([
|
|
126
|
+
'/tmp/local-repo',
|
|
127
|
+
'file:///tmp/local-repo',
|
|
128
|
+
'C:\\local\\repo',
|
|
129
|
+
'https://github.com/acme/bad%20name',
|
|
130
|
+
])('does not invent an identity for unsupported remote %s', (remote) => {
|
|
131
|
+
setOrigin(remote);
|
|
132
|
+
expect((0, snapshot_project_1.projectSnapshotKey)(repo)).toBeUndefined();
|
|
133
|
+
});
|
|
134
|
+
test('leaves snapshots explicit without a usable Git origin', () => {
|
|
135
|
+
expect((0, snapshot_project_1.projectSnapshotConfig)({}, temp)).toBeUndefined();
|
|
136
|
+
setOrigin();
|
|
137
|
+
expect((0, snapshot_project_1.projectSnapshotConfig)({}, repo)).toBeUndefined();
|
|
138
|
+
expect((0, snapshot_project_1.projectSnapshotConfig)({ 'snapshot-key': 'my-project' }, temp)).toEqual({ key: 'my-project' });
|
|
139
|
+
});
|
|
140
|
+
test('does not emit keys beyond the API length limit or with unsupported path characters', () => {
|
|
141
|
+
setOrigin(`https://github.com/acme/${'a'.repeat(255)}.git`);
|
|
142
|
+
expect((0, snapshot_project_1.projectSnapshotKey)(repo)).toBeUndefined();
|
|
143
|
+
setOrigin('https://github.com/acme/repo.git');
|
|
144
|
+
fs_1.default.mkdirSync(path_1.default.join(repo, 'My App'));
|
|
145
|
+
expect((0, snapshot_project_1.projectSnapshotKey)(path_1.default.join(repo, 'My App'))).toBeUndefined();
|
|
146
|
+
});
|
|
147
|
+
test('defaults to a key alone and preserves explicit keys, restore-only settings and paths', () => {
|
|
148
|
+
expect((0, snapshot_project_1.projectSnapshotConfig)({}, repo)).toEqual({ key: 'github.com/acme/monorepo' });
|
|
149
|
+
expect((0, snapshot_project_1.projectSnapshotConfig)({ 'snapshot-key': 'custom' }, repo)).toEqual({ key: 'custom' });
|
|
150
|
+
expect((0, snapshot_project_1.projectSnapshotConfig)({ 'cache-key': 'legacy' }, repo)).toEqual({ key: 'legacy' });
|
|
151
|
+
expect((0, snapshot_project_1.projectSnapshotConfig)({ 'snapshot-restore-keys': 'main' }, repo)).toEqual({ restoreKeys: ['main'] });
|
|
152
|
+
expect((0, snapshot_project_1.projectSnapshotConfig)({ 'snapshot-paths': 'Pods' }, repo)).toEqual({ paths: ['Pods'] });
|
|
153
|
+
expect((0, snapshot_project_1.projectSnapshotConfig)({ 'no-snapshot': true }, repo)).toBeUndefined();
|
|
154
|
+
expect(() => (0, snapshot_project_1.projectSnapshotConfig)({ 'no-snapshot': true, 'cache-key': 'custom' }, repo)).toThrow('cannot be combined');
|
|
155
|
+
});
|
|
156
|
+
//# sourceMappingURL=snapshot-project.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-project.test.js","sourceRoot":"","sources":["../../src/lib/snapshot-project.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lim",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.46.1",
|
|
4
4
|
"description": "Use remote XCode, Gradle, iOS Simulator, Android Emulator and more to build and test apps from Linux, Windows or macOS.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"lim": "./bin/run.js",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"test": "jest"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@limrun/api": "0.64.
|
|
29
|
+
"@limrun/api": "0.64.1",
|
|
30
30
|
"@oclif/core": "^4",
|
|
31
31
|
"cli-progress": "^3.12.0",
|
|
32
32
|
"cli-table3": "^0.6.5",
|
|
@@ -111,7 +111,8 @@
|
|
|
111
111
|
"files": [
|
|
112
112
|
"dist",
|
|
113
113
|
"bin",
|
|
114
|
-
"README.md"
|
|
114
|
+
"README.md",
|
|
115
|
+
"JSON_OUTPUT.md"
|
|
115
116
|
],
|
|
116
117
|
"resolutions": {
|
|
117
118
|
"@limrun/api/undici": "7.29.1"
|