lim 0.20.0 → 0.21.0
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/README.md +28 -25
- package/dist/commands/gradle/build.d.ts +2 -0
- package/dist/commands/gradle/build.d.ts.map +1 -1
- package/dist/commands/gradle/build.js +8 -0
- package/dist/commands/gradle/build.js.map +1 -1
- package/dist/commands/run.d.ts +1 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +31 -10
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/skills/install.d.ts +2 -3
- package/dist/commands/skills/install.d.ts.map +1 -1
- package/dist/commands/skills/install.js +90 -311
- package/dist/commands/skills/install.js.map +1 -1
- package/dist/commands/xcode/build.d.ts +3 -0
- package/dist/commands/xcode/build.d.ts.map +1 -1
- package/dist/commands/xcode/build.js +26 -2
- package/dist/commands/xcode/build.js.map +1 -1
- package/dist/lib/gradle-build-options.d.ts +2 -1
- package/dist/lib/gradle-build-options.d.ts.map +1 -1
- package/dist/lib/gradle-build-options.js +5 -0
- package/dist/lib/gradle-build-options.js.map +1 -1
- package/dist/lib/onboarding.d.ts +12 -4
- package/dist/lib/onboarding.d.ts.map +1 -1
- package/dist/lib/onboarding.js +34 -16
- package/dist/lib/onboarding.js.map +1 -1
- package/dist/lib/project-detection.d.ts +6 -0
- package/dist/lib/project-detection.d.ts.map +1 -1
- package/dist/lib/project-detection.js +55 -4
- package/dist/lib/project-detection.js.map +1 -1
- package/dist/lib/skills.d.ts +30 -2
- package/dist/lib/skills.d.ts.map +1 -1
- package/dist/lib/skills.js +61 -17
- package/dist/lib/skills.js.map +1 -1
- package/dist/lib/webhook-options.d.ts +18 -0
- package/dist/lib/webhook-options.d.ts.map +1 -0
- package/dist/lib/webhook-options.js +43 -0
- package/dist/lib/webhook-options.js.map +1 -0
- package/dist/lib/webhook-options.test.d.ts +2 -0
- package/dist/lib/webhook-options.test.d.ts.map +1 -0
- package/dist/lib/webhook-options.test.js +51 -0
- package/dist/lib/webhook-options.test.js.map +1 -0
- package/package.json +2 -2
package/dist/lib/skills.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/lib/skills.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/lib/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { WebhookConfig } from '@limrun/api';
|
|
2
|
+
export interface WebhookFlagValues {
|
|
3
|
+
'webhook-url'?: string;
|
|
4
|
+
'webhook-header'?: string[];
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Maps the shared --webhook-url / --webhook-header flags onto the exec
|
|
8
|
+
* request's webhook config, throwing on invalid combinations. Pure and
|
|
9
|
+
* oclif-free so both `xcode build` and `gradle build` share it and it is
|
|
10
|
+
* unit-testable.
|
|
11
|
+
*
|
|
12
|
+
* Duplicate header names are rejected (case-insensitively: header names are
|
|
13
|
+
* case-insensitive on the wire, and the daemon canonicalizes them) instead
|
|
14
|
+
* of last-one-wins, so a misconfigured CI auth header fails at the command
|
|
15
|
+
* line rather than silently at callback time.
|
|
16
|
+
*/
|
|
17
|
+
export declare function webhookConfigFromFlags(flags: WebhookFlagValues): WebhookConfig | undefined;
|
|
18
|
+
//# sourceMappingURL=webhook-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-options.d.ts","sourceRoot":"","sources":["../../src/lib/webhook-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,GAAG,aAAa,GAAG,SAAS,CA2B1F"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.webhookConfigFromFlags = webhookConfigFromFlags;
|
|
4
|
+
/**
|
|
5
|
+
* Maps the shared --webhook-url / --webhook-header flags onto the exec
|
|
6
|
+
* request's webhook config, throwing on invalid combinations. Pure and
|
|
7
|
+
* oclif-free so both `xcode build` and `gradle build` share it and it is
|
|
8
|
+
* unit-testable.
|
|
9
|
+
*
|
|
10
|
+
* Duplicate header names are rejected (case-insensitively: header names are
|
|
11
|
+
* case-insensitive on the wire, and the daemon canonicalizes them) instead
|
|
12
|
+
* of last-one-wins, so a misconfigured CI auth header fails at the command
|
|
13
|
+
* line rather than silently at callback time.
|
|
14
|
+
*/
|
|
15
|
+
function webhookConfigFromFlags(flags) {
|
|
16
|
+
const headerEntries = flags['webhook-header'] ?? [];
|
|
17
|
+
if (!flags['webhook-url']) {
|
|
18
|
+
if (headerEntries.length > 0) {
|
|
19
|
+
throw new Error('--webhook-header requires --webhook-url.');
|
|
20
|
+
}
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
const headers = {};
|
|
24
|
+
const seen = new Set();
|
|
25
|
+
for (const entry of headerEntries) {
|
|
26
|
+
const separator = entry.indexOf('=');
|
|
27
|
+
if (separator <= 0) {
|
|
28
|
+
throw new Error(`Invalid --webhook-header ${JSON.stringify(entry)}: expected NAME=VALUE.`);
|
|
29
|
+
}
|
|
30
|
+
const name = entry.slice(0, separator);
|
|
31
|
+
const key = name.toLowerCase();
|
|
32
|
+
if (seen.has(key)) {
|
|
33
|
+
throw new Error(`Duplicate --webhook-header name ${JSON.stringify(name)}.`);
|
|
34
|
+
}
|
|
35
|
+
seen.add(key);
|
|
36
|
+
headers[name] = entry.slice(separator + 1);
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
url: flags['webhook-url'],
|
|
40
|
+
...(Object.keys(headers).length > 0 && { headers }),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=webhook-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-options.js","sourceRoot":"","sources":["../../src/lib/webhook-options.ts"],"names":[],"mappings":";;AAkBA,wDA2BC;AAtCD;;;;;;;;;;GAUG;AACH,SAAgB,sBAAsB,CAAC,KAAwB;IAC7D,MAAM,aAAa,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QAC1B,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC7F,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO;QACL,GAAG,EAAE,KAAK,CAAC,aAAa,CAAC;QACzB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-options.test.d.ts","sourceRoot":"","sources":["../../src/lib/webhook-options.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const webhook_options_1 = require("./webhook-options");
|
|
4
|
+
describe('webhookConfigFromFlags', () => {
|
|
5
|
+
test('returns undefined without flags', () => {
|
|
6
|
+
expect((0, webhook_options_1.webhookConfigFromFlags)({})).toBeUndefined();
|
|
7
|
+
});
|
|
8
|
+
test('maps url and headers', () => {
|
|
9
|
+
expect((0, webhook_options_1.webhookConfigFromFlags)({
|
|
10
|
+
'webhook-url': 'https://ci.example.com/hooks/limrun',
|
|
11
|
+
'webhook-header': ['Authorization=Bearer secret', 'X-Build=release'],
|
|
12
|
+
})).toEqual({
|
|
13
|
+
url: 'https://ci.example.com/hooks/limrun',
|
|
14
|
+
headers: { Authorization: 'Bearer secret', 'X-Build': 'release' },
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
test('omits headers key when none are given', () => {
|
|
18
|
+
expect((0, webhook_options_1.webhookConfigFromFlags)({ 'webhook-url': 'https://ci.example.com/h' })).toEqual({
|
|
19
|
+
url: 'https://ci.example.com/h',
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
test('preserves = in header values', () => {
|
|
23
|
+
expect((0, webhook_options_1.webhookConfigFromFlags)({
|
|
24
|
+
'webhook-url': 'https://ci.example.com/h',
|
|
25
|
+
'webhook-header': ['X-Sig=a=b=c'],
|
|
26
|
+
})).toEqual({ url: 'https://ci.example.com/h', headers: { 'X-Sig': 'a=b=c' } });
|
|
27
|
+
});
|
|
28
|
+
test('rejects headers without a url', () => {
|
|
29
|
+
expect(() => (0, webhook_options_1.webhookConfigFromFlags)({ 'webhook-header': ['A=b'] })).toThrow('--webhook-header requires --webhook-url.');
|
|
30
|
+
});
|
|
31
|
+
test('rejects entries without NAME=VALUE shape', () => {
|
|
32
|
+
for (const entry of ['NoSeparator', '=value-only']) {
|
|
33
|
+
expect(() => (0, webhook_options_1.webhookConfigFromFlags)({ 'webhook-url': 'https://ci.example.com/h', 'webhook-header': [entry] })).toThrow('expected NAME=VALUE');
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
test('rejects duplicate header names', () => {
|
|
37
|
+
expect(() => (0, webhook_options_1.webhookConfigFromFlags)({
|
|
38
|
+
'webhook-url': 'https://ci.example.com/h',
|
|
39
|
+
'webhook-header': ['Authorization=Bearer one', 'Authorization=Bearer two'],
|
|
40
|
+
})).toThrow('Duplicate --webhook-header name "Authorization".');
|
|
41
|
+
});
|
|
42
|
+
test('rejects duplicate header names case-insensitively', () => {
|
|
43
|
+
// Header names are case-insensitive on the wire and the daemon
|
|
44
|
+
// canonicalizes them, so a different casing would still overwrite.
|
|
45
|
+
expect(() => (0, webhook_options_1.webhookConfigFromFlags)({
|
|
46
|
+
'webhook-url': 'https://ci.example.com/h',
|
|
47
|
+
'webhook-header': ['Authorization=Bearer one', 'authorization=Bearer two'],
|
|
48
|
+
})).toThrow('Duplicate --webhook-header name "authorization".');
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=webhook-options.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-options.test.js","sourceRoot":"","sources":["../../src/lib/webhook-options.test.ts"],"names":[],"mappings":";;AAAA,uDAA2D;AAE3D,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,IAAA,wCAAsB,EAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAChC,MAAM,CACJ,IAAA,wCAAsB,EAAC;YACrB,aAAa,EAAE,qCAAqC;YACpD,gBAAgB,EAAE,CAAC,6BAA6B,EAAE,iBAAiB,CAAC;SACrE,CAAC,CACH,CAAC,OAAO,CAAC;YACR,GAAG,EAAE,qCAAqC;YAC1C,OAAO,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE;SAClE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,IAAA,wCAAsB,EAAC,EAAE,aAAa,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACpF,GAAG,EAAE,0BAA0B;SAChC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACxC,MAAM,CACJ,IAAA,wCAAsB,EAAC;YACrB,aAAa,EAAE,0BAA0B;YACzC,gBAAgB,EAAE,CAAC,aAAa,CAAC;SAClC,CAAC,CACH,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,0BAA0B,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,wCAAsB,EAAC,EAAE,gBAAgB,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CACzE,0CAA0C,CAC3C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACpD,KAAK,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,GAAG,EAAE,CACV,IAAA,wCAAsB,EAAC,EAAE,aAAa,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CACjG,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,GAAG,EAAE,CACV,IAAA,wCAAsB,EAAC;YACrB,aAAa,EAAE,0BAA0B;YACzC,gBAAgB,EAAE,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;SAC3E,CAAC,CACH,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC7D,+DAA+D;QAC/D,mEAAmE;QACnE,MAAM,CAAC,GAAG,EAAE,CACV,IAAA,wCAAsB,EAAC;YACrB,aAAa,EAAE,0BAA0B;YACzC,gBAAgB,EAAE,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;SAC3E,CAAC,CACH,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lim",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
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"
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"test": "jest"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@limrun/api": "0.
|
|
28
|
+
"@limrun/api": "0.45.0",
|
|
29
29
|
"@oclif/core": "^4",
|
|
30
30
|
"cli-progress": "^3.12.0",
|
|
31
31
|
"cli-table3": "^0.6.5",
|