lim 0.16.0 → 0.16.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/dist/commands/asset/list.d.ts +1 -0
- package/dist/commands/asset/list.d.ts.map +1 -1
- package/dist/commands/asset/list.js +10 -4
- package/dist/commands/asset/list.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 +54 -0
- package/dist/commands/ios/create.js.map +1 -1
- package/dist/commands/ios/keychain/export.d.ts +23 -0
- package/dist/commands/ios/keychain/export.d.ts.map +1 -0
- package/dist/commands/ios/keychain/export.js +86 -0
- package/dist/commands/ios/keychain/export.js.map +1 -0
- package/dist/commands/ios/keychain/generate-key.d.ts +15 -0
- package/dist/commands/ios/keychain/generate-key.d.ts.map +1 -0
- package/dist/commands/ios/keychain/generate-key.js +19 -0
- package/dist/commands/ios/keychain/generate-key.js.map +1 -0
- package/dist/commands/ios/keychain/import.d.ts +24 -0
- package/dist/commands/ios/keychain/import.d.ts.map +1 -0
- package/dist/commands/ios/keychain/import.js +109 -0
- package/dist/commands/ios/keychain/import.js.map +1 -0
- package/dist/lib/keychain-encryption-key.d.ts +8 -0
- package/dist/lib/keychain-encryption-key.d.ts.map +1 -0
- package/dist/lib/keychain-encryption-key.js +53 -0
- package/dist/lib/keychain-encryption-key.js.map +1 -0
- package/dist/lib/rbe-workspace.d.ts +6 -6
- package/dist/lib/rbe-workspace.d.ts.map +1 -1
- package/dist/lib/rbe-workspace.js +10 -7
- package/dist/lib/rbe-workspace.js.map +1 -1
- package/package.json +3 -3
|
@@ -12,6 +12,7 @@ export default class AssetList extends BaseCommand {
|
|
|
12
12
|
'download-url': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
13
|
'upload-url': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
14
|
'include-app-store': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
kind: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
16
|
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
17
|
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
17
18
|
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/asset/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,MAAM,CAAC,OAAO,SAAuC;IACrD,MAAM,CAAC,WAAW,SAC2J;IAC7K,MAAM,CAAC,QAAQ,WAMb;IAEF,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/asset/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,MAAM,CAAC,OAAO,SAAuC;IACrD,MAAM,CAAC,WAAW,SAC2J;IAC7K,MAAM,CAAC,QAAQ,WAMb;IAEF,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;MAoBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA4D3B"}
|
|
@@ -19,8 +19,8 @@ class AssetList extends base_command_1.BaseCommand {
|
|
|
19
19
|
this.outputJson(asset);
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
|
-
const headers = ['ID', 'Name', 'MD5', 'Expires At'];
|
|
23
|
-
const row = [asset.id, asset.name, asset.md5 || '', asset.expiresAt || ''];
|
|
22
|
+
const headers = ['ID', 'Name', 'Kind', 'MD5', 'Expires At'];
|
|
23
|
+
const row = [asset.id, asset.name, asset.kind || '', asset.md5 || '', asset.expiresAt || ''];
|
|
24
24
|
if (flags['download-url']) {
|
|
25
25
|
headers.push('Download URL');
|
|
26
26
|
row.push(asset.signedDownloadUrl || '');
|
|
@@ -41,14 +41,16 @@ class AssetList extends base_command_1.BaseCommand {
|
|
|
41
41
|
params.nameFilter = flags.name;
|
|
42
42
|
if (flags['name-prefix'])
|
|
43
43
|
params.namePrefixFilter = flags['name-prefix'];
|
|
44
|
+
if (flags.kind)
|
|
45
|
+
params.kindFilter = flags.kind;
|
|
44
46
|
const assets = await this.client.assets.list(params);
|
|
45
|
-
const headers = ['ID', 'Name', 'MD5', 'Expires At'];
|
|
47
|
+
const headers = ['ID', 'Name', 'Kind', 'MD5', 'Expires At'];
|
|
46
48
|
if (flags['download-url'])
|
|
47
49
|
headers.push('Download URL');
|
|
48
50
|
if (flags['upload-url'])
|
|
49
51
|
headers.push('Upload URL');
|
|
50
52
|
const rows = assets.map((a) => {
|
|
51
|
-
const row = [a.id, a.name, a.md5 || '', a.expiresAt || ''];
|
|
53
|
+
const row = [a.id, a.name, a.kind || '', a.md5 || '', a.expiresAt || ''];
|
|
52
54
|
if (flags['download-url'])
|
|
53
55
|
row.push(a.signedDownloadUrl || '');
|
|
54
56
|
if (flags['upload-url'])
|
|
@@ -92,6 +94,10 @@ AssetList.flags = {
|
|
|
92
94
|
description: 'Also include App Store assets you have access to.',
|
|
93
95
|
default: false,
|
|
94
96
|
}),
|
|
97
|
+
kind: core_1.Flags.string({
|
|
98
|
+
description: 'Filter listed assets by kind.',
|
|
99
|
+
options: ['App', 'Keychain'],
|
|
100
|
+
}),
|
|
95
101
|
};
|
|
96
102
|
exports.default = AssetList;
|
|
97
103
|
//# sourceMappingURL=list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/asset/list.ts"],"names":[],"mappings":";;AAAA,sCAA0C;AAC1C,qDAAiD;AAEjD,MAAqB,SAAU,SAAQ,0BAAW;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/asset/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,10 @@ export default class IosCreate extends BaseCommand {
|
|
|
16
16
|
model: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
17
17
|
'reuse-if-exists': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
18
18
|
'install-asset': import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
19
|
+
keychain: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
20
|
+
'keychain-url': import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
21
|
+
'encryption-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
22
|
+
'encryption-key-stdin': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
19
23
|
install: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
20
24
|
'asset-ttl': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
21
25
|
xcode: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/ios/create.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/ios/create.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAUjD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,MAAM,CAAC,OAAO,SAA+B;IAC7C,MAAM,CAAC,WAAW,SACiK;IAEnL,MAAM,CAAC,QAAQ,WAQb;IAEF,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;MA+DV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAyL3B"}
|
|
@@ -11,6 +11,7 @@ const config_1 = require("../../lib/config");
|
|
|
11
11
|
const xcode_sandbox_1 = require("../../lib/xcode-sandbox");
|
|
12
12
|
const simulator_attach_1 = require("../../lib/simulator-attach");
|
|
13
13
|
const duration_1 = require("../../lib/duration");
|
|
14
|
+
const keychain_encryption_key_1 = require("../../lib/keychain-encryption-key");
|
|
14
15
|
class IosCreate extends base_command_1.BaseCommand {
|
|
15
16
|
async run() {
|
|
16
17
|
const { args, flags } = await this.parse(IosCreate);
|
|
@@ -21,6 +22,22 @@ class IosCreate extends base_command_1.BaseCommand {
|
|
|
21
22
|
if (args.xcodeId && !flags.attach) {
|
|
22
23
|
this.error('Xcode target argument requires --attach.');
|
|
23
24
|
}
|
|
25
|
+
const hasKeychainInitialAssets = Boolean(flags.keychain?.length || flags['keychain-url']?.length);
|
|
26
|
+
if (!hasKeychainInitialAssets && (flags['encryption-key'] || flags['encryption-key-stdin'])) {
|
|
27
|
+
this.error('Use --encryption-key or --encryption-key-stdin only with --keychain or --keychain-url.');
|
|
28
|
+
}
|
|
29
|
+
let keychainEncryptionKey;
|
|
30
|
+
if (hasKeychainInitialAssets) {
|
|
31
|
+
try {
|
|
32
|
+
keychainEncryptionKey = await (0, keychain_encryption_key_1.resolveKeychainEncryptionKey)({
|
|
33
|
+
encryptionKey: flags['encryption-key'],
|
|
34
|
+
encryptionKeyStdin: flags['encryption-key-stdin'],
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
this.error(error.message);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
24
41
|
await this.withAuth(async () => {
|
|
25
42
|
const attachTarget = flags.attach ? await this.resolveXcodeTarget(args.xcodeId) : undefined;
|
|
26
43
|
if (attachTarget && attachTarget.type !== 'xcode') {
|
|
@@ -54,6 +71,26 @@ class IosCreate extends base_command_1.BaseCommand {
|
|
|
54
71
|
assetName: name,
|
|
55
72
|
}));
|
|
56
73
|
}
|
|
74
|
+
if (hasKeychainInitialAssets) {
|
|
75
|
+
const encryptionKey = keychainEncryptionKey;
|
|
76
|
+
if (!params.spec)
|
|
77
|
+
params.spec = {};
|
|
78
|
+
params.spec.initialAssets = [
|
|
79
|
+
...(params.spec.initialAssets || []),
|
|
80
|
+
...(flags.keychain || []).map((name) => ({
|
|
81
|
+
kind: 'Keychain',
|
|
82
|
+
source: 'AssetName',
|
|
83
|
+
assetName: name,
|
|
84
|
+
encryptionKey,
|
|
85
|
+
})),
|
|
86
|
+
...(flags['keychain-url'] || []).map((url) => ({
|
|
87
|
+
kind: 'Keychain',
|
|
88
|
+
source: 'URL',
|
|
89
|
+
url,
|
|
90
|
+
encryptionKey,
|
|
91
|
+
})),
|
|
92
|
+
];
|
|
93
|
+
}
|
|
57
94
|
if (flags.region)
|
|
58
95
|
params.spec.region = flags.region;
|
|
59
96
|
if (flags.model)
|
|
@@ -167,6 +204,8 @@ IosCreate.examples = [
|
|
|
167
204
|
'<%= config.bin %> ios create',
|
|
168
205
|
'<%= config.bin %> ios create --rm --model ipad',
|
|
169
206
|
'<%= config.bin %> ios create --region us-west --install-asset my-app.ipa',
|
|
207
|
+
'<%= config.bin %> ios create --keychain keychain/state.tar.gz --encryption-key-stdin < keychain.key',
|
|
208
|
+
'<%= config.bin %> ios create --keychain-url https://example.t3.storage.dev/... --encryption-key <key>',
|
|
170
209
|
'<%= config.bin %> ios create --install ./MyApp.ipa',
|
|
171
210
|
'<%= config.bin %> ios create --attach <xcode-instance-ID>',
|
|
172
211
|
];
|
|
@@ -206,6 +245,21 @@ IosCreate.flags = {
|
|
|
206
245
|
description: 'Existing asset name to install onto the instance after creation',
|
|
207
246
|
multiple: true,
|
|
208
247
|
}),
|
|
248
|
+
keychain: core_1.Flags.string({
|
|
249
|
+
description: 'Existing encrypted Keychain asset name to import after creation.',
|
|
250
|
+
multiple: true,
|
|
251
|
+
}),
|
|
252
|
+
'keychain-url': core_1.Flags.string({
|
|
253
|
+
description: 'Presigned encrypted Keychain asset URL to import after creation.',
|
|
254
|
+
multiple: true,
|
|
255
|
+
}),
|
|
256
|
+
'encryption-key': core_1.Flags.string({
|
|
257
|
+
description: 'Base64/base64url 32-byte decryption key for --keychain/--keychain-url.',
|
|
258
|
+
}),
|
|
259
|
+
'encryption-key-stdin': core_1.Flags.boolean({
|
|
260
|
+
description: 'Read the base64/base64url 32-byte decryption key for --keychain/--keychain-url from stdin.',
|
|
261
|
+
default: false,
|
|
262
|
+
}),
|
|
209
263
|
install: core_1.Flags.string({
|
|
210
264
|
description: 'Local app file to upload and install automatically after creation. Repeat for multiple files.',
|
|
211
265
|
multiple: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/ios/create.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,sCAA0C;AAC1C,qDAAiD;AACjD,qDAAmD;AACnD,6CAA2D;AAC3D,2DAAgE;AAChE,iEAA8F;AAC9F,iDAAsD;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/ios/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base-command';
|
|
2
|
+
export default class IosKeychainExport extends BaseCommand {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static args: {
|
|
7
|
+
asset_name: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
'asset-name': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
ttl: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
+
'encryption-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
|
+
'encryption-key-stdin': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
17
|
+
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
18
|
+
create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
19
|
+
workspace: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
20
|
+
};
|
|
21
|
+
run(): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../../src/commands/ios/keychain/export.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,WAAW;IACxD,MAAM,CAAC,OAAO,SAAgD;IAC9D,MAAM,CAAC,WAAW,SACyH;IAC3I,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;MAmBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA6C3B"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_command_1 = require("../../../base-command");
|
|
5
|
+
const instance_client_factory_1 = require("../../../lib/instance-client-factory");
|
|
6
|
+
const keychain_encryption_key_1 = require("../../../lib/keychain-encryption-key");
|
|
7
|
+
class IosKeychainExport extends base_command_1.BaseCommand {
|
|
8
|
+
async run() {
|
|
9
|
+
const { args, flags } = await this.parse(IosKeychainExport);
|
|
10
|
+
this.setParsedFlags(flags);
|
|
11
|
+
const assetName = args.asset_name ?? flags['asset-name'];
|
|
12
|
+
if (!assetName) {
|
|
13
|
+
this.error('Provide a keychain asset name, e.g. `lim ios keychain export keychain/state.tar.gz`.');
|
|
14
|
+
}
|
|
15
|
+
let encryptionKey;
|
|
16
|
+
try {
|
|
17
|
+
encryptionKey = await (0, keychain_encryption_key_1.resolveKeychainEncryptionKey)({
|
|
18
|
+
encryptionKey: flags['encryption-key'],
|
|
19
|
+
encryptionKeyStdin: flags['encryption-key-stdin'],
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
this.error(error.message);
|
|
24
|
+
}
|
|
25
|
+
await this.withAuth(async () => {
|
|
26
|
+
const resolvedInstance = this.resolveIosInstance(flags.id);
|
|
27
|
+
const asset = await this.client.assets.getOrCreate({
|
|
28
|
+
name: assetName,
|
|
29
|
+
kind: 'Keychain',
|
|
30
|
+
platform: 'ios',
|
|
31
|
+
ttl: flags.ttl,
|
|
32
|
+
});
|
|
33
|
+
const { client, disconnect } = await (0, instance_client_factory_1.getIosInstanceClient)(this.client, resolvedInstance);
|
|
34
|
+
try {
|
|
35
|
+
await client.exportKeychain({ url: asset.signedUploadUrl, encryptionKey });
|
|
36
|
+
}
|
|
37
|
+
finally {
|
|
38
|
+
disconnect();
|
|
39
|
+
}
|
|
40
|
+
if (flags.json) {
|
|
41
|
+
this.outputJson(asset);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this.output(`ID: ${asset.id}`);
|
|
45
|
+
this.output(`Name: ${asset.name}`);
|
|
46
|
+
if (asset.expiresAt) {
|
|
47
|
+
this.output(`Expires At: ${asset.expiresAt}`);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
IosKeychainExport.summary = 'Export iOS keychain state to asset storage';
|
|
53
|
+
IosKeychainExport.description = 'Create or reuse a Keychain asset, ask the target iOS simulator to upload its keychain tar.gz to asset storage, and print the asset ID.';
|
|
54
|
+
IosKeychainExport.examples = [
|
|
55
|
+
'<%= config.bin %> ios keychain export keychain/state.tar.gz',
|
|
56
|
+
'<%= config.bin %> ios keychain export keychain/state.tar.gz --ttl 24h --json',
|
|
57
|
+
'<%= config.bin %> ios keychain generate-key > keychain.key',
|
|
58
|
+
'<%= config.bin %> ios keychain export keychain/state.tar.gz --encryption-key-stdin < keychain.key',
|
|
59
|
+
];
|
|
60
|
+
IosKeychainExport.args = {
|
|
61
|
+
asset_name: core_1.Args.string({
|
|
62
|
+
description: 'Keychain asset name to store the exported keychain under',
|
|
63
|
+
required: false,
|
|
64
|
+
}),
|
|
65
|
+
};
|
|
66
|
+
IosKeychainExport.flags = {
|
|
67
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
68
|
+
id: core_1.Flags.string({
|
|
69
|
+
description: 'iOS instance ID to export from. Defaults to the last created iOS instance.',
|
|
70
|
+
}),
|
|
71
|
+
'asset-name': core_1.Flags.string({
|
|
72
|
+
description: 'Asset name to store the exported keychain under. Prefer the positional <asset-name> argument.',
|
|
73
|
+
}),
|
|
74
|
+
ttl: core_1.Flags.string({
|
|
75
|
+
description: 'Time-to-live as a Go duration (e.g. "24h", min 1m). Defaults to no expiry.',
|
|
76
|
+
}),
|
|
77
|
+
'encryption-key': core_1.Flags.string({
|
|
78
|
+
description: 'Base64/base64url 32-byte encryption key for the exported keychain archive.',
|
|
79
|
+
}),
|
|
80
|
+
'encryption-key-stdin': core_1.Flags.boolean({
|
|
81
|
+
description: 'Read the base64/base64url 32-byte encryption key from stdin.',
|
|
82
|
+
default: false,
|
|
83
|
+
}),
|
|
84
|
+
};
|
|
85
|
+
exports.default = IosKeychainExport;
|
|
86
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../../../src/commands/ios/keychain/export.ts"],"names":[],"mappings":";;AAAA,sCAA0C;AAC1C,wDAAoD;AACpD,kFAA4E;AAC5E,kFAAoF;AAEpF,MAAqB,iBAAkB,SAAQ,0BAAW;IAuCxD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAC;QACrG,CAAC;QACD,IAAI,aAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,aAAa,GAAG,MAAM,IAAA,sDAA4B,EAAC;gBACjD,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC;gBACtC,kBAAkB,EAAE,KAAK,CAAC,sBAAsB,CAAC;aAClD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;gBACjD,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,KAAK;gBACf,GAAG,EAAE,KAAK,CAAC,GAAG;aACf,CAAC,CAAC;YAEH,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,8CAAoB,EAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YACzF,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC;YAC7E,CAAC;oBAAS,CAAC;gBACT,UAAU,EAAE,CAAC;YACf,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACvB,OAAO;YACT,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AAlFM,yBAAO,GAAG,4CAA4C,CAAC;AACvD,6BAAW,GAChB,wIAAwI,CAAC;AACpI,0BAAQ,GAAG;IAChB,6DAA6D;IAC7D,8EAA8E;IAC9E,4DAA4D;IAC5D,mGAAmG;CACpG,CAAC;AAEK,sBAAI,GAAG;IACZ,UAAU,EAAE,WAAI,CAAC,MAAM,CAAC;QACtB,WAAW,EAAE,0DAA0D;QACvE,QAAQ,EAAE,KAAK;KAChB,CAAC;CACH,CAAC;AAEK,uBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,EAAE,EAAE,YAAK,CAAC,MAAM,CAAC;QACf,WAAW,EAAE,4EAA4E;KAC1F,CAAC;IACF,YAAY,EAAE,YAAK,CAAC,MAAM,CAAC;QACzB,WAAW,EACT,+FAA+F;KAClG,CAAC;IACF,GAAG,EAAE,YAAK,CAAC,MAAM,CAAC;QAChB,WAAW,EAAE,4EAA4E;KAC1F,CAAC;IACF,gBAAgB,EAAE,YAAK,CAAC,MAAM,CAAC;QAC7B,WAAW,EAAE,4EAA4E;KAC1F,CAAC;IACF,sBAAsB,EAAE,YAAK,CAAC,OAAO,CAAC;QACpC,WAAW,EAAE,8DAA8D;QAC3E,OAAO,EAAE,KAAK;KACf,CAAC;CACH,CAAC;kBArCiB,iBAAiB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base-command';
|
|
2
|
+
export default class IosKeychainGenerateKey extends BaseCommand {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static flags: {
|
|
7
|
+
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
9
|
+
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
workspace: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=generate-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-key.d.ts","sourceRoot":"","sources":["../../../../src/commands/ios/keychain/generate-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,WAAW;IAC7D,MAAM,CAAC,OAAO,SAA6C;IAC3D,MAAM,CAAC,WAAW,SACwH;IAC1I,MAAM,CAAC,QAAQ,WAAkE;IAEjF,MAAM,CAAC,KAAK;;;;;;MAEV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAK3B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const base_command_1 = require("../../../base-command");
|
|
4
|
+
const keychain_encryption_key_1 = require("../../../lib/keychain-encryption-key");
|
|
5
|
+
class IosKeychainGenerateKey extends base_command_1.BaseCommand {
|
|
6
|
+
async run() {
|
|
7
|
+
const { flags } = await this.parse(IosKeychainGenerateKey);
|
|
8
|
+
this.setParsedFlags(flags);
|
|
9
|
+
this.output((0, keychain_encryption_key_1.generateKeychainEncryptionKey)());
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
IosKeychainGenerateKey.summary = 'Generate an iOS keychain encryption key';
|
|
13
|
+
IosKeychainGenerateKey.description = 'Print a new 32-byte base64 key for encrypted iOS keychain export and import. Store it securely and pass it to export/import on stdin.';
|
|
14
|
+
IosKeychainGenerateKey.examples = ['<%= config.bin %> ios keychain generate-key > keychain.key'];
|
|
15
|
+
IosKeychainGenerateKey.flags = {
|
|
16
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
17
|
+
};
|
|
18
|
+
exports.default = IosKeychainGenerateKey;
|
|
19
|
+
//# sourceMappingURL=generate-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-key.js","sourceRoot":"","sources":["../../../../src/commands/ios/keychain/generate-key.ts"],"names":[],"mappings":";;AAAA,wDAAoD;AACpD,kFAAqF;AAErF,MAAqB,sBAAuB,SAAQ,0BAAW;IAU7D,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC3D,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAA,uDAA6B,GAAE,CAAC,CAAC;IAC/C,CAAC;;AAbM,8BAAO,GAAG,yCAAyC,CAAC;AACpD,kCAAW,GAChB,uIAAuI,CAAC;AACnI,+BAAQ,GAAG,CAAC,4DAA4D,CAAC,CAAC;AAE1E,4BAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;CACzB,CAAC;kBARiB,sBAAsB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base-command';
|
|
2
|
+
export default class IosKeychainImport extends BaseCommand {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static args: {
|
|
7
|
+
asset_name: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
url: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
'asset-id': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
+
'encryption-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
|
+
'encryption-key-stdin': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
17
|
+
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
18
|
+
create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
19
|
+
workspace: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
20
|
+
};
|
|
21
|
+
run(): Promise<void>;
|
|
22
|
+
private resolveKeychainAssetDownloadUrl;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=import.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../../../src/commands/ios/keychain/import.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAWpD,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,WAAW;IACxD,MAAM,CAAC,OAAO,SAAkD;IAChE,MAAM,CAAC,WAAW,SACuI;IACzJ,MAAM,CAAC,QAAQ,WAMb;IAEF,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;MAkBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAiCZ,+BAA+B;CAsC9C"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_command_1 = require("../../../base-command");
|
|
5
|
+
const instance_client_factory_1 = require("../../../lib/instance-client-factory");
|
|
6
|
+
const keychain_encryption_key_1 = require("../../../lib/keychain-encryption-key");
|
|
7
|
+
class IosKeychainImport extends base_command_1.BaseCommand {
|
|
8
|
+
async run() {
|
|
9
|
+
const { args, flags } = await this.parse(IosKeychainImport);
|
|
10
|
+
this.setParsedFlags(flags);
|
|
11
|
+
let encryptionKey;
|
|
12
|
+
try {
|
|
13
|
+
encryptionKey = await (0, keychain_encryption_key_1.resolveKeychainEncryptionKey)({
|
|
14
|
+
encryptionKey: flags['encryption-key'],
|
|
15
|
+
encryptionKeyStdin: flags['encryption-key-stdin'],
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
this.error(error.message);
|
|
20
|
+
}
|
|
21
|
+
await this.withAuth(async () => {
|
|
22
|
+
const resolvedInstance = this.resolveIosInstance(flags.id);
|
|
23
|
+
const url = flags.url ?? (await this.resolveKeychainAssetDownloadUrl(args.asset_name, flags['asset-id']));
|
|
24
|
+
const { client, disconnect } = await (0, instance_client_factory_1.getIosInstanceClient)(this.client, resolvedInstance);
|
|
25
|
+
try {
|
|
26
|
+
const result = await client.importKeychain({ url, encryptionKey });
|
|
27
|
+
if (flags.json) {
|
|
28
|
+
this.outputJson(result);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
this.output('Keychain applied');
|
|
32
|
+
this.output(`Duration: ${result.durationMs}ms`);
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
disconnect();
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
async resolveKeychainAssetDownloadUrl(assetName, assetID) {
|
|
40
|
+
if (assetName && assetID) {
|
|
41
|
+
this.error('Use either a keychain asset name or --asset-id, not both.');
|
|
42
|
+
}
|
|
43
|
+
if (!assetName && !assetID) {
|
|
44
|
+
this.error('Provide a keychain asset name, --asset-id, or --url.');
|
|
45
|
+
}
|
|
46
|
+
let asset;
|
|
47
|
+
if (assetID) {
|
|
48
|
+
asset = await this.client.assets.get(assetID, { includeDownloadUrl: true });
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
const matches = (await this.client.assets.list({
|
|
52
|
+
nameFilter: assetName,
|
|
53
|
+
kindFilter: 'Keychain',
|
|
54
|
+
includeDownloadUrl: true,
|
|
55
|
+
}));
|
|
56
|
+
if (matches.length === 0) {
|
|
57
|
+
this.error(`Keychain asset with name "${assetName}" not found`);
|
|
58
|
+
}
|
|
59
|
+
if (matches.length > 1) {
|
|
60
|
+
const ids = matches
|
|
61
|
+
.map((item) => item.id || item.name || '<unknown>')
|
|
62
|
+
.slice(0, 5)
|
|
63
|
+
.join(', ');
|
|
64
|
+
this.error(`Keychain asset name "${assetName}" matched multiple assets (${ids}). Use --asset-id.`);
|
|
65
|
+
}
|
|
66
|
+
asset = matches[0];
|
|
67
|
+
}
|
|
68
|
+
if (asset.kind !== 'Keychain') {
|
|
69
|
+
this.error(`Asset "${asset.id || asset.name}" is ${asset.kind || 'unknown'} kind, expected Keychain.`);
|
|
70
|
+
}
|
|
71
|
+
if (!asset.signedDownloadUrl) {
|
|
72
|
+
this.error('Keychain asset does not have a download URL');
|
|
73
|
+
}
|
|
74
|
+
return asset.signedDownloadUrl;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
IosKeychainImport.summary = 'Import iOS keychain state from asset storage';
|
|
78
|
+
IosKeychainImport.description = 'Resolve a Keychain asset by name, then ask the target iOS simulator to download and apply the keychain tar.gz. Use --asset-id to import by asset ID.';
|
|
79
|
+
IosKeychainImport.examples = [
|
|
80
|
+
'<%= config.bin %> ios keychain import keychain/state.tar.gz',
|
|
81
|
+
'<%= config.bin %> ios keychain import keychain/state.tar.gz --id <instance-ID>',
|
|
82
|
+
'<%= config.bin %> ios keychain import --asset-id <asset-ID>',
|
|
83
|
+
'<%= config.bin %> ios keychain import --url https://example.t3.storage.dev/... --json',
|
|
84
|
+
'<%= config.bin %> ios keychain import keychain/state.tar.gz --encryption-key-stdin < keychain.key',
|
|
85
|
+
];
|
|
86
|
+
IosKeychainImport.args = {
|
|
87
|
+
asset_name: core_1.Args.string({ description: 'Keychain asset name to import', required: false }),
|
|
88
|
+
};
|
|
89
|
+
IosKeychainImport.flags = {
|
|
90
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
91
|
+
id: core_1.Flags.string({
|
|
92
|
+
description: 'iOS instance ID to import into. Defaults to the last created iOS instance.',
|
|
93
|
+
}),
|
|
94
|
+
url: core_1.Flags.string({
|
|
95
|
+
description: 'Presigned download URL to import directly instead of resolving an asset.',
|
|
96
|
+
}),
|
|
97
|
+
'asset-id': core_1.Flags.string({
|
|
98
|
+
description: 'Keychain asset ID to import instead of resolving the positional asset name.',
|
|
99
|
+
}),
|
|
100
|
+
'encryption-key': core_1.Flags.string({
|
|
101
|
+
description: 'Base64/base64url 32-byte decryption key for the keychain archive.',
|
|
102
|
+
}),
|
|
103
|
+
'encryption-key-stdin': core_1.Flags.boolean({
|
|
104
|
+
description: 'Read the base64/base64url 32-byte decryption key from stdin.',
|
|
105
|
+
default: false,
|
|
106
|
+
}),
|
|
107
|
+
};
|
|
108
|
+
exports.default = IosKeychainImport;
|
|
109
|
+
//# sourceMappingURL=import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../src/commands/ios/keychain/import.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function generateKeychainEncryptionKey(): string;
|
|
2
|
+
export declare function resolveKeychainEncryptionKey(options: {
|
|
3
|
+
encryptionKey?: string;
|
|
4
|
+
encryptionKeyStdin?: boolean;
|
|
5
|
+
}): Promise<string>;
|
|
6
|
+
export declare function readKeychainEncryptionKeyFromStdin(): Promise<string>;
|
|
7
|
+
export declare function validateKeychainEncryptionKey(key: string): void;
|
|
8
|
+
//# sourceMappingURL=keychain-encryption-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keychain-encryption-key.d.ts","sourceRoot":"","sources":["../../src/lib/keychain-encryption-key.ts"],"names":[],"mappings":"AAEA,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAED,wBAAsB,4BAA4B,CAAC,OAAO,EAAE;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,OAAO,CAAC,MAAM,CAAC,CAalB;AAED,wBAAsB,kCAAkC,IAAI,OAAO,CAAC,MAAM,CAAC,CAc1E;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAe/D"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateKeychainEncryptionKey = generateKeychainEncryptionKey;
|
|
4
|
+
exports.resolveKeychainEncryptionKey = resolveKeychainEncryptionKey;
|
|
5
|
+
exports.readKeychainEncryptionKeyFromStdin = readKeychainEncryptionKeyFromStdin;
|
|
6
|
+
exports.validateKeychainEncryptionKey = validateKeychainEncryptionKey;
|
|
7
|
+
const crypto_1 = require("crypto");
|
|
8
|
+
function generateKeychainEncryptionKey() {
|
|
9
|
+
return (0, crypto_1.randomBytes)(32).toString('base64');
|
|
10
|
+
}
|
|
11
|
+
async function resolveKeychainEncryptionKey(options) {
|
|
12
|
+
if (options.encryptionKey && options.encryptionKeyStdin) {
|
|
13
|
+
throw new Error('Use either --encryption-key or --encryption-key-stdin, not both.');
|
|
14
|
+
}
|
|
15
|
+
if (options.encryptionKey) {
|
|
16
|
+
const key = options.encryptionKey.trim();
|
|
17
|
+
validateKeychainEncryptionKey(key);
|
|
18
|
+
return key;
|
|
19
|
+
}
|
|
20
|
+
if (options.encryptionKeyStdin) {
|
|
21
|
+
return readKeychainEncryptionKeyFromStdin();
|
|
22
|
+
}
|
|
23
|
+
throw new Error('Provide --encryption-key or --encryption-key-stdin.');
|
|
24
|
+
}
|
|
25
|
+
async function readKeychainEncryptionKeyFromStdin() {
|
|
26
|
+
if (process.stdin.isTTY) {
|
|
27
|
+
throw new Error('Provide a 32-byte base64 key on stdin.');
|
|
28
|
+
}
|
|
29
|
+
const chunks = [];
|
|
30
|
+
process.stdin.setEncoding('utf8');
|
|
31
|
+
for await (const chunk of process.stdin) {
|
|
32
|
+
chunks.push(chunk);
|
|
33
|
+
}
|
|
34
|
+
const key = chunks.join('').trim();
|
|
35
|
+
validateKeychainEncryptionKey(key);
|
|
36
|
+
return key;
|
|
37
|
+
}
|
|
38
|
+
function validateKeychainEncryptionKey(key) {
|
|
39
|
+
if (!key) {
|
|
40
|
+
throw new Error('Keychain encryption key is empty.');
|
|
41
|
+
}
|
|
42
|
+
if (!/^[A-Za-z0-9+/_=-]+$/.test(key)) {
|
|
43
|
+
throw new Error('Keychain encryption key must be base64 or base64url.');
|
|
44
|
+
}
|
|
45
|
+
let normalized = key.replace(/-/g, '+').replace(/_/g, '/');
|
|
46
|
+
const padding = (4 - (normalized.length % 4)) % 4;
|
|
47
|
+
normalized += '='.repeat(padding);
|
|
48
|
+
const decoded = Buffer.from(normalized, 'base64');
|
|
49
|
+
if (decoded.length !== 32) {
|
|
50
|
+
throw new Error('Keychain encryption key must decode to exactly 32 bytes.');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=keychain-encryption-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keychain-encryption-key.js","sourceRoot":"","sources":["../../src/lib/keychain-encryption-key.ts"],"names":[],"mappings":";;AAEA,sEAEC;AAED,oEAgBC;AAED,gFAcC;AAED,sEAeC;AAvDD,mCAAqC;AAErC,SAAgB,6BAA6B;IAC3C,OAAO,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAEM,KAAK,UAAU,4BAA4B,CAAC,OAGlD;IACC,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACzC,6BAA6B,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,OAAO,kCAAkC,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;AACzE,CAAC;AAEM,KAAK,UAAU,kCAAkC;IACtD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,6BAA6B,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,6BAA6B,CAAC,GAAW;IACvD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClD,UAAU,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Generates the .limrun/ workspace companion for
|
|
2
|
+
* Generates the .limrun/ workspace companion for Limrun remote execution: a Bazel
|
|
3
3
|
* package pinning the remote fleet's Xcode version and an rc fragment with the
|
|
4
4
|
* remote-execution flags under the `limrun` config. The caller learns the
|
|
5
5
|
* fleet's version key from the instance's RBE status, so the generated config
|
|
6
|
-
* always matches the fleet without any user action;
|
|
7
|
-
* after a fleet Xcode upgrade
|
|
6
|
+
* always matches the fleet without any user action; regenerating the files
|
|
7
|
+
* after a fleet Xcode upgrade refreshes the pin.
|
|
8
8
|
*/
|
|
9
9
|
export declare const LIMRUN_DIR = ".limrun";
|
|
10
10
|
export declare const TRY_IMPORT_LINE = "try-import %workspace%/.limrun/bazelrc";
|
|
@@ -21,7 +21,7 @@ export declare function findBazelWorkspaceRoot(startDir: string): string | null;
|
|
|
21
21
|
* Best-effort guess of a single buildable app target to show in the printed
|
|
22
22
|
* build command, so it reads `//App` instead of a `//your:target` placeholder.
|
|
23
23
|
* Scans the workspace's BUILD files (buildifier-formatted) for apple
|
|
24
|
-
* `*_application` rules
|
|
24
|
+
* `*_application` rules (no bazel invocation) and returns the label in short
|
|
25
25
|
* form (`//pkg` when the target name matches the package's last segment).
|
|
26
26
|
* Returns null when there are zero or multiple candidates (ambiguous → caller
|
|
27
27
|
* keeps the placeholder).
|
|
@@ -110,8 +110,8 @@ export declare function renderXcodeConfigBuild(remoteVersionKey: string, emitLoa
|
|
|
110
110
|
* - `--ios_multi_cpus=sim_arm64` pins the app to the **arm64 iOS simulator**.
|
|
111
111
|
* Limrun's Mac fleet (workers and the attached simulators) is Apple Silicon,
|
|
112
112
|
* so the build product must be arm64. Without this, the simulator cpu follows
|
|
113
|
-
* the CLIENT's Bazel default
|
|
114
|
-
* `x86_64` on an Intel Mac or a Linux client
|
|
113
|
+
* the CLIENT's Bazel default (`sim_arm64` on an Apple Silicon Mac, but
|
|
114
|
+
* `x86_64` on an Intel Mac or a Linux client), and an x86_64 app installed on
|
|
115
115
|
* the arm64 fleet simulator fails to launch with "needs to be updated by the
|
|
116
116
|
* developer to work on this version of iOS". The pin makes the artifact match
|
|
117
117
|
* the fleet regardless of where bazel runs (the whole point of RBE).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbe-workspace.d.ts","sourceRoot":"","sources":["../../src/lib/rbe-workspace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rbe-workspace.d.ts","sourceRoot":"","sources":["../../src/lib/rbe-workspace.ts"],"names":[],"mappings":"AAMA;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,MAAM,CA4BlG;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,CAcnB"}
|
|
@@ -12,19 +12,22 @@ exports.renderXcodeConfigBuild = renderXcodeConfigBuild;
|
|
|
12
12
|
exports.renderLimrunBazelrc = renderLimrunBazelrc;
|
|
13
13
|
exports.ensureTryImport = ensureTryImport;
|
|
14
14
|
exports.writeRbeWorkspaceFiles = writeRbeWorkspaceFiles;
|
|
15
|
+
// Mirrored between src/rbe-workspace.ts (canonical) and packages/cli/src/lib/rbe-workspace.ts
|
|
16
|
+
// until the CLI imports it from a published @limrun/api; tests/rbe-copy-sync.test.ts keeps the
|
|
17
|
+
// two copies byte-identical. Apply any edit to both.
|
|
15
18
|
const fs_1 = __importDefault(require("fs"));
|
|
16
19
|
const path_1 = __importDefault(require("path"));
|
|
17
20
|
/**
|
|
18
|
-
* Generates the .limrun/ workspace companion for
|
|
21
|
+
* Generates the .limrun/ workspace companion for Limrun remote execution: a Bazel
|
|
19
22
|
* package pinning the remote fleet's Xcode version and an rc fragment with the
|
|
20
23
|
* remote-execution flags under the `limrun` config. The caller learns the
|
|
21
24
|
* fleet's version key from the instance's RBE status, so the generated config
|
|
22
|
-
* always matches the fleet without any user action;
|
|
23
|
-
* after a fleet Xcode upgrade
|
|
25
|
+
* always matches the fleet without any user action; regenerating the files
|
|
26
|
+
* after a fleet Xcode upgrade refreshes the pin.
|
|
24
27
|
*/
|
|
25
28
|
exports.LIMRUN_DIR = '.limrun';
|
|
26
29
|
exports.TRY_IMPORT_LINE = 'try-import %workspace%/.limrun/bazelrc';
|
|
27
|
-
const TRY_IMPORT_COMMENT = '# Added by
|
|
30
|
+
const TRY_IMPORT_COMMENT = '# Added by Limrun remote-execution setup: loads the generated config.';
|
|
28
31
|
const WORKSPACE_MARKERS = ['MODULE.bazel', 'WORKSPACE', 'WORKSPACE.bazel'];
|
|
29
32
|
/**
|
|
30
33
|
* Finds the Bazel workspace root by walking up from `startDir` to the first
|
|
@@ -54,7 +57,7 @@ const TARGET_SCAN_SKIP_DIRS = new Set(['.git', 'node_modules', '.limrun']);
|
|
|
54
57
|
* Best-effort guess of a single buildable app target to show in the printed
|
|
55
58
|
* build command, so it reads `//App` instead of a `//your:target` placeholder.
|
|
56
59
|
* Scans the workspace's BUILD files (buildifier-formatted) for apple
|
|
57
|
-
* `*_application` rules
|
|
60
|
+
* `*_application` rules (no bazel invocation) and returns the label in short
|
|
58
61
|
* form (`//pkg` when the target name matches the package's last segment).
|
|
59
62
|
* Returns null when there are zero or multiple candidates (ambiguous → caller
|
|
60
63
|
* keeps the placeholder).
|
|
@@ -289,8 +292,8 @@ xcode_config(
|
|
|
289
292
|
* - `--ios_multi_cpus=sim_arm64` pins the app to the **arm64 iOS simulator**.
|
|
290
293
|
* Limrun's Mac fleet (workers and the attached simulators) is Apple Silicon,
|
|
291
294
|
* so the build product must be arm64. Without this, the simulator cpu follows
|
|
292
|
-
* the CLIENT's Bazel default
|
|
293
|
-
* `x86_64` on an Intel Mac or a Linux client
|
|
295
|
+
* the CLIENT's Bazel default (`sim_arm64` on an Apple Silicon Mac, but
|
|
296
|
+
* `x86_64` on an Intel Mac or a Linux client), and an x86_64 app installed on
|
|
294
297
|
* the arm64 fleet simulator fails to launch with "needs to be updated by the
|
|
295
298
|
* developer to work on this version of iOS". The pin makes the artifact match
|
|
296
299
|
* the fleet regardless of where bazel runs (the whole point of RBE).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbe-workspace.js","sourceRoot":"","sources":["../../src/lib/rbe-workspace.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"rbe-workspace.js","sourceRoot":"","sources":["../../src/lib/rbe-workspace.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lim",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.1",
|
|
4
4
|
"description": "Use remote XCode, 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.37.1",
|
|
29
29
|
"@oclif/core": "^4",
|
|
30
30
|
"cli-progress": "^3.12.0",
|
|
31
31
|
"cli-table3": "^0.6.5",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"topicSeparator": " ",
|
|
50
50
|
"topics": {
|
|
51
51
|
"ios": {
|
|
52
|
-
"description": "Execute any task on remote iOS Simulators: create, list, get, delete, info, list-apps, launch-app, terminate-app, app-log, syslog, sync, screenshot, tap, tap-element, element-tree, type, press-key, toggle-keyboard, scroll, open-url, install-app, record, perform, simctl, cp, xcrun, xcodebuild, lsof, reverse"
|
|
52
|
+
"description": "Execute any task on remote iOS Simulators: create, list, get, delete, info, list-apps, launch-app, terminate-app, app-log, syslog, sync, screenshot, tap, tap-element, element-tree, type, press-key, toggle-keyboard, scroll, open-url, install-app, keychain, record, perform, simctl, cp, xcrun, xcodebuild, lsof, reverse"
|
|
53
53
|
},
|
|
54
54
|
"android": {
|
|
55
55
|
"description": "Execute any task on remote Android Emulators: create, list, get, delete, connect, screenshot, tap, tap-element, find-element, element-tree, type, press-key, scroll, open-url, install-app, record, play-on-microphone, set-wifi-bandwidth"
|