lim 0.49.2 → 0.50.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.
Files changed (70) hide show
  1. package/README.md +13 -3
  2. package/dist/base-command.d.ts +2 -0
  3. package/dist/base-command.d.ts.map +1 -1
  4. package/dist/base-command.js +35 -7
  5. package/dist/base-command.js.map +1 -1
  6. package/dist/base-command.snapshots.test.js +2 -2
  7. package/dist/base-command.snapshots.test.js.map +1 -1
  8. package/dist/base-command.uploads.test.js +135 -7
  9. package/dist/base-command.uploads.test.js.map +1 -1
  10. package/dist/commands/android/create.js +2 -2
  11. package/dist/commands/android/create.js.map +1 -1
  12. package/dist/commands/android/tunnel/index.d.ts +1 -0
  13. package/dist/commands/android/tunnel/index.d.ts.map +1 -1
  14. package/dist/commands/android/tunnel/index.js +11 -5
  15. package/dist/commands/android/tunnel/index.js.map +1 -1
  16. package/dist/commands/android/tunnel/index.test.js +15 -2
  17. package/dist/commands/android/tunnel/index.test.js.map +1 -1
  18. package/dist/commands/gradle/build.d.ts.map +1 -1
  19. package/dist/commands/gradle/build.js +3 -0
  20. package/dist/commands/gradle/build.js.map +1 -1
  21. package/dist/commands/gradle/create.js +2 -2
  22. package/dist/commands/gradle/create.js.map +1 -1
  23. package/dist/commands/ios/create.js +3 -3
  24. package/dist/commands/ios/create.js.map +1 -1
  25. package/dist/commands/ios/tunnel/index.d.ts +1 -0
  26. package/dist/commands/ios/tunnel/index.d.ts.map +1 -1
  27. package/dist/commands/ios/tunnel/index.js +11 -5
  28. package/dist/commands/ios/tunnel/index.js.map +1 -1
  29. package/dist/commands/run.js +1 -1
  30. package/dist/commands/run.js.map +1 -1
  31. package/dist/commands/tunnel/run.d.ts +1 -0
  32. package/dist/commands/tunnel/run.d.ts.map +1 -1
  33. package/dist/commands/tunnel/run.js +3 -0
  34. package/dist/commands/tunnel/run.js.map +1 -1
  35. package/dist/commands/tunnel/run.test.js +15 -1
  36. package/dist/commands/tunnel/run.test.js.map +1 -1
  37. package/dist/commands/xcode/build.d.ts.map +1 -1
  38. package/dist/commands/xcode/build.js +1 -0
  39. package/dist/commands/xcode/build.js.map +1 -1
  40. package/dist/commands/xcode/create.js +4 -4
  41. package/dist/commands/xcode/create.js.map +1 -1
  42. package/dist/commands/xcode/rbe/index.d.ts.map +1 -1
  43. package/dist/commands/xcode/rbe/index.js +4 -0
  44. package/dist/commands/xcode/rbe/index.js.map +1 -1
  45. package/dist/commands/xcode/rbe/upload.d.ts.map +1 -1
  46. package/dist/commands/xcode/rbe/upload.js +1 -0
  47. package/dist/commands/xcode/rbe/upload.js.map +1 -1
  48. package/dist/creation-permissions.test.js +4 -4
  49. package/dist/creation-permissions.test.js.map +1 -1
  50. package/dist/lib/tunnel-activity-flags.d.ts +5 -0
  51. package/dist/lib/tunnel-activity-flags.d.ts.map +1 -0
  52. package/dist/lib/tunnel-activity-flags.js +15 -0
  53. package/dist/lib/tunnel-activity-flags.js.map +1 -0
  54. package/dist/lib/tunnel-command.d.ts +8 -0
  55. package/dist/lib/tunnel-command.d.ts.map +1 -1
  56. package/dist/lib/tunnel-command.js +3 -0
  57. package/dist/lib/tunnel-command.js.map +1 -1
  58. package/dist/lib/tunnel-command.test.js +35 -9
  59. package/dist/lib/tunnel-command.test.js.map +1 -1
  60. package/dist/lib/tunnel-process.d.ts +1 -0
  61. package/dist/lib/tunnel-process.d.ts.map +1 -1
  62. package/dist/lib/tunnel-process.js +1 -0
  63. package/dist/lib/tunnel-process.js.map +1 -1
  64. package/dist/lib/tunnel-process.test.js +12 -0
  65. package/dist/lib/tunnel-process.test.js.map +1 -1
  66. package/dist/prepared-build-uploads.test.d.ts +2 -0
  67. package/dist/prepared-build-uploads.test.d.ts.map +1 -0
  68. package/dist/prepared-build-uploads.test.js +118 -0
  69. package/dist/prepared-build-uploads.test.js.map +1 -0
  70. package/package.json +2 -2
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const build_1 = __importDefault(require("./commands/xcode/build"));
7
+ const build_2 = __importDefault(require("./commands/gradle/build"));
8
+ const config_1 = require("./lib/config");
9
+ jest.mock('./lib/config', () => ({
10
+ ...jest.requireActual('./lib/config'),
11
+ loadLastXcodeInstance: jest.fn(),
12
+ loadLastGradleInstance: jest.fn(),
13
+ }));
14
+ jest.mock('./lib/set-instance', () => ({ envInstanceTarget: () => undefined }));
15
+ beforeEach(() => jest.clearAllMocks());
16
+ test.each([
17
+ [build_1.default, 'xcode', 'sandbox_euna_prepared', config_1.loadLastXcodeInstance],
18
+ [build_2.default, 'gradle', 'gradle_euna_prepared', config_1.loadLastGradleInstance],
19
+ ])('%s uploads from the prepared workspace after updating the live workload role', async (Command, platform, id, loadLast) => {
20
+ jest.mocked(loadLast).mockReturnValue({ id, type: platform });
21
+ const stop = new Error('captured build submission');
22
+ const build = jest.fn(() => {
23
+ throw stop;
24
+ });
25
+ const sync = jest.fn().mockResolvedValue({ bytesSent: 0 });
26
+ const update = jest.fn().mockResolvedValue(undefined);
27
+ const get = jest.fn(() => ({
28
+ withResponse: async () => ({
29
+ data: { spec: { role: { permissions: ['asset:name/input:read'] } }, status: { state: 'ready' } },
30
+ response: new Response(null, { headers: { etag: '"42"' } }),
31
+ }),
32
+ }));
33
+ const create = jest.fn();
34
+ const command = new Command([], {});
35
+ Object.assign(command, {
36
+ parse: async () => ({
37
+ args: { path: process.cwd() },
38
+ flags: {
39
+ upload: 'releases/app.ipa',
40
+ 'no-snapshot': true,
41
+ create: false,
42
+ },
43
+ }),
44
+ withAuth: async (run) => run(),
45
+ getCommandParts: () => [platform, 'build'],
46
+ applyBuildCacheToTarget: jest.fn(),
47
+ resolveXcodeClientForWork: jest.fn(async () => ({ sync, xcodebuild: build })),
48
+ resolveGradleClient: jest.fn(async () => ({ sync, gradlebuild: build })),
49
+ info: jest.fn(),
50
+ });
51
+ Object.defineProperty(command, 'client', {
52
+ value: {
53
+ xcodeInstances: { create, get, update },
54
+ gradleInstances: { create, get, update },
55
+ },
56
+ });
57
+ await expect(command.run()).rejects.toThrow(stop);
58
+ expect(create).not.toHaveBeenCalled();
59
+ expect(update).toHaveBeenCalledWith(id, {
60
+ ifMatch: '"42"',
61
+ spec: {
62
+ role: {
63
+ permissions: [
64
+ 'asset:name/input:read',
65
+ 'asset:name/releases/app.ipa:create',
66
+ 'asset:name/releases/app.ipa:upload',
67
+ 'asset:name/releases/app.ipa:update',
68
+ ],
69
+ },
70
+ },
71
+ });
72
+ const resolver = platform === 'xcode' ? command['resolveXcodeClientForWork'] : command['resolveGradleClient'];
73
+ expect(resolver).toHaveBeenCalledWith(...(platform === 'xcode' ?
74
+ [expect.objectContaining({ id }), undefined]
75
+ : [expect.objectContaining({ id })]));
76
+ const options = build.mock.calls[0];
77
+ expect(options[platform === 'xcode' ? 1 : 0]).toEqual(expect.objectContaining({
78
+ upload: expect.objectContaining({
79
+ target: 'name/releases/app.ipa',
80
+ }),
81
+ }));
82
+ });
83
+ test.each([
84
+ [build_1.default, 'xcode', 'sandbox_euna_prepared', config_1.loadLastXcodeInstance],
85
+ [build_2.default, 'gradle', 'gradle_euna_prepared', config_1.loadLastGradleInstance],
86
+ ])('%s signed URL uploads never read or change permissions', async (Command, platform, id, loadLast) => {
87
+ jest.mocked(loadLast).mockReturnValue({ id, type: platform });
88
+ const stop = new Error('captured signed upload');
89
+ const build = jest.fn(() => {
90
+ throw stop;
91
+ });
92
+ const sync = jest.fn().mockResolvedValue({ bytesSent: 0 });
93
+ const get = jest.fn();
94
+ const update = jest.fn();
95
+ const create = jest.fn();
96
+ const command = new Command([], {});
97
+ Object.assign(command, {
98
+ parse: async () => ({
99
+ args: { path: process.cwd() },
100
+ flags: { 'signed-upload-url': 'https://storage.example/upload', 'no-snapshot': true, create: false },
101
+ }),
102
+ withAuth: async (run) => run(),
103
+ getCommandParts: () => [platform, 'build'],
104
+ applyBuildCacheToTarget: jest.fn(),
105
+ resolveXcodeClientForWork: jest.fn(async () => ({ sync, xcodebuild: build })),
106
+ resolveGradleClient: jest.fn(async () => ({ sync, gradlebuild: build })),
107
+ info: jest.fn(),
108
+ });
109
+ Object.defineProperty(command, 'client', {
110
+ value: { xcodeInstances: { get, update, create }, gradleInstances: { get, update, create } },
111
+ });
112
+ await expect(command.run()).rejects.toThrow(stop);
113
+ expect(update).not.toHaveBeenCalled();
114
+ expect(get).not.toHaveBeenCalled();
115
+ const args = build.mock.calls[0];
116
+ expect(args[platform === 'xcode' ? 1 : 0]).toEqual(expect.objectContaining({ upload: { signedUploadUrl: 'https://storage.example/upload' } }));
117
+ });
118
+ //# sourceMappingURL=prepared-build-uploads.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepared-build-uploads.test.js","sourceRoot":"","sources":["../src/prepared-build-uploads.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lim",
3
- "version": "0.49.2",
3
+ "version": "0.50.1",
4
4
  "description": "Use remote XCode, Gradle, iOS Simulator, Android Emulator and more to build and test apps from Linux, Windows or macOS.",
5
5
  "bin": {
6
6
  "lim": "./bin/run.js",
@@ -26,7 +26,7 @@
26
26
  "test": "jest"
27
27
  },
28
28
  "dependencies": {
29
- "@limrun/api": "0.67.1",
29
+ "@limrun/api": "0.68.1",
30
30
  "@oclif/core": "^4",
31
31
  "cli-progress": "^3.12.0",
32
32
  "cli-table3": "^0.6.5",