lim 0.15.5 → 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/{xcode/rbe/install.d.ts → ios/keychain/generate-key.d.ts} +2 -7
- 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/commands/xcode/rbe.d.ts +3 -7
- package/dist/commands/xcode/rbe.d.ts.map +1 -1
- package/dist/commands/xcode/rbe.js +31 -106
- package/dist/commands/xcode/rbe.js.map +1 -1
- 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-session.d.ts +0 -13
- package/dist/lib/rbe-session.d.ts.map +1 -1
- package/dist/lib/rbe-session.js +0 -15
- package/dist/lib/rbe-session.js.map +1 -1
- package/dist/lib/rbe-workspace.d.ts +13 -33
- package/dist/lib/rbe-workspace.d.ts.map +1 -1
- package/dist/lib/rbe-workspace.js +18 -47
- package/dist/lib/rbe-workspace.js.map +1 -1
- package/package.json +3 -3
- package/dist/commands/xcode/rbe/install.d.ts.map +0 -1
- package/dist/commands/xcode/rbe/install.js +0 -128
- package/dist/commands/xcode/rbe/install.js.map +0 -1
- package/dist/lib/rbe-bep-watcher.d.ts +0 -41
- package/dist/lib/rbe-bep-watcher.d.ts.map +0 -1
- package/dist/lib/rbe-bep-watcher.js +0 -267
- package/dist/lib/rbe-bep-watcher.js.map +0 -1
|
@@ -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":";;;;;AAAA,gDAAwB;AACxB,sCAA0C;AAC1C,qDAAiD;AACjD,qDAAmD;AACnD,6CAA2D;AAC3D,2DAAgE;AAChE,iEAA8F;AAC9F,iDAAsD;AACtD,+EAAiF;AAIjF,MAAqB,SAAU,SAAQ,0BAAW;IAuFhD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,wBAAwB,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;QAClG,IAAI,CAAC,wBAAwB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC;YAC5F,IAAI,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;QACvG,CAAC;QAED,IAAI,qBAAyC,CAAC;QAC9C,IAAI,wBAAwB,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,qBAAqB,GAAG,MAAM,IAAA,sDAA4B,EAAC;oBACzD,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC;oBACtC,kBAAkB,EAAE,KAAK,CAAC,sBAAsB,CAAC;iBAClD,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5F,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClD,IAAI,CAAC,KAAK,CACR,4GAA4G,CAC7G,CAAC;YACJ,CAAC;YACD,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE5F,MAAM,UAAU,GAAa,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACjE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBACrC,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACxC,MAAM,IAAI,GAAG,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACrC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC;oBAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;wBACjD,IAAI,EAAE,QAAQ;wBACd,IAAI;wBACJ,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC;qBACxB,CAAC,CAAC;oBACH,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;YACrE,CAAC;YAED,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,IAAI;gBACV,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,SAAS;gBACpD,IAAI,EAAE,EAAE;aACT,CAAC;YAEF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAK,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACrD,IAAI,EAAE,KAAc;oBACpB,MAAM,EAAE,WAAoB;oBAC5B,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC,CAAC;YACN,CAAC;YACD,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,MAAM,aAAa,GAAG,qBAAsB,CAAC;gBAC7C,IAAI,CAAC,MAAM,CAAC,IAAI;oBAAE,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAK,CAAC,aAAa,GAAG;oBAC3B,GAAG,CAAC,MAAM,CAAC,IAAK,CAAC,aAAa,IAAI,EAAE,CAAC;oBACrC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBACvC,IAAI,EAAE,UAAmB;wBACzB,MAAM,EAAE,WAAoB;wBAC5B,SAAS,EAAE,IAAI;wBACf,aAAa;qBACd,CAAC,CAAC;oBACH,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBAC7C,IAAI,EAAE,UAAmB;wBACzB,MAAM,EAAE,KAAc;wBACtB,GAAG;wBACH,aAAa;qBACd,CAAC,CAAC;iBACJ,CAAC;YACJ,CAAC;YAED,IAAI,KAAK,CAAC,MAAM;gBAAE,MAAM,CAAC,IAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACrD,IAAI,KAAK,CAAC,KAAK;gBAAE,MAAM,CAAC,IAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAoC,CAAC;YACjF,IAAI,KAAK,CAAC,cAAc,CAAC;gBAAE,MAAM,CAAC,IAAK,CAAC,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;YAC5E,IAAI,KAAK,CAAC,oBAAoB,CAAC;gBAAE,MAAM,CAAC,IAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC9F,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAK,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;YACtD,CAAC;YAED,MAAM,MAAM,GAAG,IAAA,wBAAW,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,MAAM,EAAE,CAAC;gBACpC,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACrB,IAAI,KAAK,CAAC,cAAc,CAAC;oBAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC/E,IAAI,MAAM;oBAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;YAC9C,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;YAClD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9D,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC;YAC5D,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,IAAA,qCAAqB,EAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5F,IAAA,gCAAuB,EAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;gBACzB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC5D,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;gBAClD,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC,CAAC;YACF,IAAI,YAA+C,CAAC;YACpD,IAAI,gBAAoC,CAAC;YACzC,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC/B,YAAY,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC5D,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;gBAC9C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,IAAI,CAAC,wBAAwB,QAAQ,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC,CAAC;oBAC9E,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;wBACb,MAAM,OAAO,EAAE,CAAC;oBAClB,CAAC;oBACD,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;YACD,MAAM,cAAc,GAClB,KAAK,CAAC,KAAK,CAAC,CAAC;gBACX,oDAAoD,IAAA,2BAAgB,EAAC,gBAAgB,CAAC,GAAG;gBAC3F,CAAC,CAAC,iCAAiC,IAAA,2BAAgB,EAAC,gBAAgB,CAAC,GAAG,CAAC;YAC3E,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAC;YAC1C,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,wBAAwB,eAAe,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/C,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC5B,IAAI,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC;gBACvC,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,UAAU,eAAe,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;gBACjC,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;oBACnC,IAAI,CAAC,IAAI,CAAC,+BAA+B,IAAA,2BAAgB,EAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAClF,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,IAAA,8CAA2B,EAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;YAC9F,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;oBACjC,IAAI,CAAC,UAAU,CAAC;wBACd,GAAG,QAAQ;wBACX,MAAM,EAAE,IAAA,sCAAmB,EAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC;qBACjF,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC;YAED,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;gBAChE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAClC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;oBACjD,MAAM,QAAQ,GAAG,GAAG,EAAE;wBACpB,aAAa,CAAC,SAAS,CAAC,CAAC;wBACzB,OAAO,EAAE,CAAC;oBACZ,CAAC,CAAC;oBACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC,CAAC,CAAC;gBACH,MAAM,OAAO,EAAE,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AA9QM,iBAAO,GAAG,2BAA2B,CAAC;AACtC,qBAAW,GAChB,gLAAgL,CAAC;AAE5K,kBAAQ,GAAG;IAChB,8BAA8B;IAC9B,gDAAgD;IAChD,0EAA0E;IAC1E,qGAAqG;IACrG,uGAAuG;IACvG,oDAAoD;IACpD,2DAA2D;CAC5D,CAAC;AAEK,cAAI,GAAG;IACZ,OAAO,EAAE,WAAI,CAAC,MAAM,CAAC;QACnB,WAAW,EAAE,gFAAgF;QAC7F,QAAQ,EAAE,KAAK;KAChB,CAAC;CACH,CAAC;AAEK,eAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,EAAE,EAAE,YAAK,CAAC,OAAO,CAAC;QAChB,WAAW,EAAE,+DAA+D;QAC5E,OAAO,EAAE,KAAK;KACf,CAAC;IACF,cAAc,EAAE,YAAK,CAAC,MAAM,CAAC;QAC3B,WAAW,EAAE,+DAA+D;KAC7E,CAAC;IACF,MAAM,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,8DAA8D,EAAE,CAAC;IACrG,cAAc,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC;IACrG,oBAAoB,EAAE,YAAK,CAAC,MAAM,CAAC;QACjC,WAAW,EAAE,6EAA6E;KAC3F,CAAC;IACF,KAAK,EAAE,YAAK,CAAC,MAAM,CAAC;QAClB,WAAW,EAAE,uEAAuE;QACpF,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,KAAK,EAAE,YAAK,CAAC,MAAM,CAAC;QAClB,WAAW,EAAE,wBAAwB;QACrC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;KACrC,CAAC;IACF,iBAAiB,EAAE,YAAK,CAAC,OAAO,CAAC;QAC/B,WAAW,EAAE,mEAAmE;QAChF,OAAO,EAAE,KAAK;KACf,CAAC;IACF,eAAe,EAAE,YAAK,CAAC,MAAM,CAAC;QAC5B,WAAW,EAAE,iEAAiE;QAC9E,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,QAAQ,EAAE,YAAK,CAAC,MAAM,CAAC;QACrB,WAAW,EAAE,kEAAkE;QAC/E,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,cAAc,EAAE,YAAK,CAAC,MAAM,CAAC;QAC3B,WAAW,EAAE,kEAAkE;QAC/E,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,gBAAgB,EAAE,YAAK,CAAC,MAAM,CAAC;QAC7B,WAAW,EAAE,wEAAwE;KACtF,CAAC;IACF,sBAAsB,EAAE,YAAK,CAAC,OAAO,CAAC;QACpC,WAAW,EACT,4FAA4F;QAC9F,OAAO,EAAE,KAAK;KACf,CAAC;IACF,OAAO,EAAE,YAAK,CAAC,MAAM,CAAC;QACpB,WAAW,EACT,+FAA+F;QACjG,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,WAAW,EAAE,YAAK,CAAC,MAAM,CAAC;QACxB,WAAW,EACT,qJAAqJ;KACxJ,CAAC;IACF,KAAK,EAAE,YAAK,CAAC,OAAO,CAAC;QACnB,WAAW,EAAE,+DAA+D;QAC5E,OAAO,EAAE,KAAK;KACf,CAAC;IACF,MAAM,EAAE,YAAK,CAAC,OAAO,CAAC;QACpB,WAAW,EAAE,0DAA0D;QACvE,OAAO,EAAE,KAAK;KACf,CAAC;CACH,CAAC;kBArFiB,SAAS"}
|
|
@@ -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":"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"}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
import { BaseCommand } from '../../../base-command';
|
|
2
|
-
export default class
|
|
2
|
+
export default class IosKeychainGenerateKey extends BaseCommand {
|
|
3
3
|
static summary: string;
|
|
4
4
|
static description: string;
|
|
5
5
|
static examples: string[];
|
|
6
|
-
static args: {
|
|
7
|
-
target: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
8
|
-
};
|
|
9
6
|
static flags: {
|
|
10
|
-
id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
-
'bep-file': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
7
|
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
8
|
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
9
|
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
@@ -17,4 +12,4 @@ export default class XcodeRbeInstall extends BaseCommand {
|
|
|
17
12
|
};
|
|
18
13
|
run(): Promise<void>;
|
|
19
14
|
}
|
|
20
|
-
//# sourceMappingURL=
|
|
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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"}
|
|
@@ -9,11 +9,7 @@ export default class XcodeRbe extends BaseCommand {
|
|
|
9
9
|
daemon: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
10
10
|
stop: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
11
11
|
ios: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
|
-
'auto-install': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
|
-
target: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
|
-
'bep-file': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
12
|
serve: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
16
|
-
'workspace-root': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
17
13
|
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
18
14
|
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
19
15
|
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
@@ -29,9 +25,9 @@ export default class XcodeRbe extends BaseCommand {
|
|
|
29
25
|
*/
|
|
30
26
|
private stopBackgroundTunnel;
|
|
31
27
|
/**
|
|
32
|
-
* Create an iOS simulator and attach it to the RBE Xcode instance, so
|
|
33
|
-
*
|
|
34
|
-
*
|
|
28
|
+
* Create an iOS simulator and attach it to the RBE Xcode instance, so builds
|
|
29
|
+
* auto-install on it (server-side) and the user can watch it live. Prints the
|
|
30
|
+
* stream URL and returns the new simulator's instance id (recorded in the
|
|
35
31
|
* pidfile for --stop teardown).
|
|
36
32
|
*/
|
|
37
33
|
private createAndAttachSimulator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbe.d.ts","sourceRoot":"","sources":["../../../src/commands/xcode/rbe.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"rbe.d.ts","sourceRoot":"","sources":["../../../src/commands/xcode/rbe.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAuBjD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,MAAM,CAAC,OAAO,SAAqF;IACnG,MAAM,CAAC,WAAW,SAKwE;IAC1F,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;MA8BV;IAEF,OAAO,CAAC,QAAQ,CAAyD;IAEnE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAmP1B;;;;OAIG;YACW,oBAAoB;IAsElC;;;;;OAKG;YACW,wBAAwB;IAWtC;;;;;;;;;;OAUG;YACW,SAAS;IAUvB;;;OAGG;YACW,qBAAqB;IA6FnC,sDAAsD;YACxC,UAAU;IAOxB;;;;;;;;OAQG;YACW,SAAS;IAavB;;;;OAIG;YACW,WAAW;IAyDzB,iFAAiF;IACjF,OAAO,CAAC,UAAU;CAqDnB"}
|