eas-cli 0.38.0 → 0.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -30
- package/build/build/android/configure.d.ts +3 -2
- package/build/build/configure.js +1 -1
- package/build/build/ios/configure.d.ts +3 -2
- package/build/build/ios/version.d.ts +1 -1
- package/build/build/ios/version.js +4 -1
- package/build/build/local.js +1 -1
- package/build/build/metadata.js +14 -0
- package/build/commandUtils/EasCommand.js +0 -2
- package/build/commands/branch/publish.js +10 -0
- package/build/commands/build/configure.js +1 -1
- package/build/commands/build/index.js +17 -10
- package/build/commands/channel/edit.js +1 -1
- package/build/commands/channel/view.js +3 -3
- package/build/commands/config.js +1 -1
- package/build/commands/diagnostics.d.ts +1 -0
- package/build/commands/diagnostics.js +19 -1
- package/build/commands/submit.js +1 -1
- package/build/commands/update/configure.d.ts +7 -0
- package/build/commands/update/configure.js +75 -0
- package/build/credentials/ios/actions/AscApiKeyUtils.js +1 -1
- package/build/credentials/ios/appstore/ensureAppExists.js +3 -3
- package/build/credentials/ios/appstore/entitlements.js +1 -1
- package/build/credentials/manager/SelectBuildProfileFromEasJson.js +1 -1
- package/build/credentials/manager/SelectIosDistributionTypeGraphqlFromBuildProfile.d.ts +3 -2
- package/build/project/ios/scheme.d.ts +3 -2
- package/build/project/ios/target.js +32 -7
- package/build/submit/ios/AppProduce.js +3 -3
- package/build/submit/ios/IosSubmitCommand.js +1 -1
- package/build/submit/utils/wait.js +1 -1
- package/build/update/utils.js +1 -1
- package/build/utils/profiles.d.ts +2 -3
- package/build/utils/profiles.js +20 -7
- package/oclif.manifest.json +1 -1
- package/package.json +13 -13
package/README.md
CHANGED
|
@@ -7,9 +7,9 @@ EAS command line tool
|
|
|
7
7
|
[](https://npmjs.org/package/eas-cli)
|
|
8
8
|
[](https://github.com/expo/eas-cli/blob/main/package.json)
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
- [Installation](#installation)
|
|
11
|
+
- [Usage](#usage)
|
|
12
|
+
- [Commands](#commands)
|
|
13
13
|
|
|
14
14
|
# Installation
|
|
15
15
|
|
|
@@ -55,6 +55,7 @@ eas --help COMMAND
|
|
|
55
55
|
* [`eas secret:delete`](#eas-secretdelete)
|
|
56
56
|
* [`eas secret:list`](#eas-secretlist)
|
|
57
57
|
* [`eas submit`](#eas-submit)
|
|
58
|
+
* [`eas update:configure`](#eas-updateconfigure)
|
|
58
59
|
* [`eas webhook:create`](#eas-webhookcreate)
|
|
59
60
|
* [`eas webhook:delete [ID]`](#eas-webhookdelete-id)
|
|
60
61
|
* [`eas webhook:list`](#eas-webhooklist)
|
|
@@ -73,7 +74,7 @@ ALIASES
|
|
|
73
74
|
$ eas login
|
|
74
75
|
```
|
|
75
76
|
|
|
76
|
-
_See code: [src/commands/account/login.
|
|
77
|
+
_See code: [src/commands/account/login.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/account/login.ts)_
|
|
77
78
|
|
|
78
79
|
## `eas account:logout`
|
|
79
80
|
|
|
@@ -87,7 +88,7 @@ ALIASES
|
|
|
87
88
|
$ eas logout
|
|
88
89
|
```
|
|
89
90
|
|
|
90
|
-
_See code: [src/commands/account/logout.
|
|
91
|
+
_See code: [src/commands/account/logout.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/account/logout.ts)_
|
|
91
92
|
|
|
92
93
|
## `eas account:view`
|
|
93
94
|
|
|
@@ -101,7 +102,7 @@ ALIASES
|
|
|
101
102
|
$ eas whoami
|
|
102
103
|
```
|
|
103
104
|
|
|
104
|
-
_See code: [src/commands/account/view.
|
|
105
|
+
_See code: [src/commands/account/view.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/account/view.ts)_
|
|
105
106
|
|
|
106
107
|
## `eas analytics [STATUS]`
|
|
107
108
|
|
|
@@ -112,7 +113,7 @@ USAGE
|
|
|
112
113
|
$ eas analytics [STATUS]
|
|
113
114
|
```
|
|
114
115
|
|
|
115
|
-
_See code: [src/commands/analytics.
|
|
116
|
+
_See code: [src/commands/analytics.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/analytics.ts)_
|
|
116
117
|
|
|
117
118
|
## `eas build`
|
|
118
119
|
|
|
@@ -146,7 +147,7 @@ OPTIONS
|
|
|
146
147
|
--[no-]wait Wait for build(s) to complete
|
|
147
148
|
```
|
|
148
149
|
|
|
149
|
-
_See code: [src/commands/build/index.
|
|
150
|
+
_See code: [src/commands/build/index.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/build/index.ts)_
|
|
150
151
|
|
|
151
152
|
## `eas build:cancel [BUILD_ID]`
|
|
152
153
|
|
|
@@ -157,7 +158,7 @@ USAGE
|
|
|
157
158
|
$ eas build:cancel [BUILD_ID]
|
|
158
159
|
```
|
|
159
160
|
|
|
160
|
-
_See code: [src/commands/build/cancel.
|
|
161
|
+
_See code: [src/commands/build/cancel.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/build/cancel.ts)_
|
|
161
162
|
|
|
162
163
|
## `eas build:configure`
|
|
163
164
|
|
|
@@ -171,7 +172,7 @@ OPTIONS
|
|
|
171
172
|
-p, --platform=(android|ios|all) Platform to configure
|
|
172
173
|
```
|
|
173
174
|
|
|
174
|
-
_See code: [src/commands/build/configure.
|
|
175
|
+
_See code: [src/commands/build/configure.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/build/configure.ts)_
|
|
175
176
|
|
|
176
177
|
## `eas build:list`
|
|
177
178
|
|
|
@@ -204,7 +205,7 @@ OPTIONS
|
|
|
204
205
|
--status=(new|in-queue|in-progress|errored|finished|canceled)
|
|
205
206
|
```
|
|
206
207
|
|
|
207
|
-
_See code: [src/commands/build/list.
|
|
208
|
+
_See code: [src/commands/build/list.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/build/list.ts)_
|
|
208
209
|
|
|
209
210
|
## `eas build:view [BUILD_ID]`
|
|
210
211
|
|
|
@@ -218,7 +219,7 @@ OPTIONS
|
|
|
218
219
|
--json Enable JSON output, non-JSON messages will be printed to stderr
|
|
219
220
|
```
|
|
220
221
|
|
|
221
|
-
_See code: [src/commands/build/view.
|
|
222
|
+
_See code: [src/commands/build/view.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/build/view.ts)_
|
|
222
223
|
|
|
223
224
|
## `eas config`
|
|
224
225
|
|
|
@@ -233,7 +234,7 @@ OPTIONS
|
|
|
233
234
|
--profile=profile
|
|
234
235
|
```
|
|
235
236
|
|
|
236
|
-
_See code: [src/commands/config.
|
|
237
|
+
_See code: [src/commands/config.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/config.ts)_
|
|
237
238
|
|
|
238
239
|
## `eas credentials`
|
|
239
240
|
|
|
@@ -244,7 +245,7 @@ USAGE
|
|
|
244
245
|
$ eas credentials
|
|
245
246
|
```
|
|
246
247
|
|
|
247
|
-
_See code: [src/commands/credentials.
|
|
248
|
+
_See code: [src/commands/credentials.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/credentials.ts)_
|
|
248
249
|
|
|
249
250
|
## `eas device:create`
|
|
250
251
|
|
|
@@ -255,7 +256,7 @@ USAGE
|
|
|
255
256
|
$ eas device:create
|
|
256
257
|
```
|
|
257
258
|
|
|
258
|
-
_See code: [src/commands/device/create.
|
|
259
|
+
_See code: [src/commands/device/create.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/device/create.ts)_
|
|
259
260
|
|
|
260
261
|
## `eas device:list`
|
|
261
262
|
|
|
@@ -269,7 +270,7 @@ OPTIONS
|
|
|
269
270
|
--apple-team-id=apple-team-id
|
|
270
271
|
```
|
|
271
272
|
|
|
272
|
-
_See code: [src/commands/device/list.
|
|
273
|
+
_See code: [src/commands/device/list.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/device/list.ts)_
|
|
273
274
|
|
|
274
275
|
## `eas device:view [UDID]`
|
|
275
276
|
|
|
@@ -280,7 +281,7 @@ USAGE
|
|
|
280
281
|
$ eas device:view [UDID]
|
|
281
282
|
```
|
|
282
283
|
|
|
283
|
-
_See code: [src/commands/device/view.
|
|
284
|
+
_See code: [src/commands/device/view.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/device/view.ts)_
|
|
284
285
|
|
|
285
286
|
## `eas diagnostics`
|
|
286
287
|
|
|
@@ -291,7 +292,7 @@ USAGE
|
|
|
291
292
|
$ eas diagnostics
|
|
292
293
|
```
|
|
293
294
|
|
|
294
|
-
_See code: [src/commands/diagnostics.
|
|
295
|
+
_See code: [src/commands/diagnostics.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/diagnostics.ts)_
|
|
295
296
|
|
|
296
297
|
## `eas help [COMMAND]`
|
|
297
298
|
|
|
@@ -319,7 +320,7 @@ USAGE
|
|
|
319
320
|
$ eas project:info
|
|
320
321
|
```
|
|
321
322
|
|
|
322
|
-
_See code: [src/commands/project/info.
|
|
323
|
+
_See code: [src/commands/project/info.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/project/info.ts)_
|
|
323
324
|
|
|
324
325
|
## `eas project:init`
|
|
325
326
|
|
|
@@ -333,7 +334,7 @@ ALIASES
|
|
|
333
334
|
$ eas init
|
|
334
335
|
```
|
|
335
336
|
|
|
336
|
-
_See code: [src/commands/project/init.
|
|
337
|
+
_See code: [src/commands/project/init.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/project/init.ts)_
|
|
337
338
|
|
|
338
339
|
## `eas secret:create`
|
|
339
340
|
|
|
@@ -350,7 +351,7 @@ OPTIONS
|
|
|
350
351
|
--value=value Value of the secret
|
|
351
352
|
```
|
|
352
353
|
|
|
353
|
-
_See code: [src/commands/secret/create.
|
|
354
|
+
_See code: [src/commands/secret/create.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/secret/create.ts)_
|
|
354
355
|
|
|
355
356
|
## `eas secret:delete`
|
|
356
357
|
|
|
@@ -367,7 +368,7 @@ DESCRIPTION
|
|
|
367
368
|
Unsure where to find the secret's ID? Run eas secret:list
|
|
368
369
|
```
|
|
369
370
|
|
|
370
|
-
_See code: [src/commands/secret/delete.
|
|
371
|
+
_See code: [src/commands/secret/delete.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/secret/delete.ts)_
|
|
371
372
|
|
|
372
373
|
## `eas secret:list`
|
|
373
374
|
|
|
@@ -378,11 +379,11 @@ USAGE
|
|
|
378
379
|
$ eas secret:list
|
|
379
380
|
```
|
|
380
381
|
|
|
381
|
-
_See code: [src/commands/secret/list.
|
|
382
|
+
_See code: [src/commands/secret/list.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/secret/list.ts)_
|
|
382
383
|
|
|
383
384
|
## `eas submit`
|
|
384
385
|
|
|
385
|
-
submit build archive to
|
|
386
|
+
submit build archive to App Store Connect
|
|
386
387
|
|
|
387
388
|
```
|
|
388
389
|
USAGE
|
|
@@ -411,7 +412,18 @@ ALIASES
|
|
|
411
412
|
$ eas build:submit
|
|
412
413
|
```
|
|
413
414
|
|
|
414
|
-
_See code: [src/commands/submit.
|
|
415
|
+
_See code: [src/commands/submit.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/submit.ts)_
|
|
416
|
+
|
|
417
|
+
## `eas update:configure`
|
|
418
|
+
|
|
419
|
+
Configure the project to support EAS Update.
|
|
420
|
+
|
|
421
|
+
```
|
|
422
|
+
USAGE
|
|
423
|
+
$ eas update:configure
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
_See code: [src/commands/update/configure.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/update/configure.ts)_
|
|
415
427
|
|
|
416
428
|
## `eas webhook:create`
|
|
417
429
|
|
|
@@ -430,7 +442,7 @@ OPTIONS
|
|
|
430
442
|
--url=url Webhook URL
|
|
431
443
|
```
|
|
432
444
|
|
|
433
|
-
_See code: [src/commands/webhook/create.
|
|
445
|
+
_See code: [src/commands/webhook/create.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/webhook/create.ts)_
|
|
434
446
|
|
|
435
447
|
## `eas webhook:delete [ID]`
|
|
436
448
|
|
|
@@ -444,7 +456,7 @@ ARGUMENTS
|
|
|
444
456
|
ID ID of the webhook to delete
|
|
445
457
|
```
|
|
446
458
|
|
|
447
|
-
_See code: [src/commands/webhook/delete.
|
|
459
|
+
_See code: [src/commands/webhook/delete.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/webhook/delete.ts)_
|
|
448
460
|
|
|
449
461
|
## `eas webhook:list`
|
|
450
462
|
|
|
@@ -458,7 +470,7 @@ OPTIONS
|
|
|
458
470
|
--event=(BUILD|SUBMIT) Event type that triggers the webhook
|
|
459
471
|
```
|
|
460
472
|
|
|
461
|
-
_See code: [src/commands/webhook/list.
|
|
473
|
+
_See code: [src/commands/webhook/list.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/webhook/list.ts)_
|
|
462
474
|
|
|
463
475
|
## `eas webhook:update`
|
|
464
476
|
|
|
@@ -478,7 +490,7 @@ OPTIONS
|
|
|
478
490
|
--url=url Webhook URL
|
|
479
491
|
```
|
|
480
492
|
|
|
481
|
-
_See code: [src/commands/webhook/update.
|
|
493
|
+
_See code: [src/commands/webhook/update.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/webhook/update.ts)_
|
|
482
494
|
|
|
483
495
|
## `eas webhook:view ID`
|
|
484
496
|
|
|
@@ -492,5 +504,5 @@ ARGUMENTS
|
|
|
492
504
|
ID ID of the webhook to view
|
|
493
505
|
```
|
|
494
506
|
|
|
495
|
-
_See code: [src/commands/webhook/view.
|
|
507
|
+
_See code: [src/commands/webhook/view.ts](https://github.com/expo/eas-cli/blob/v0.39.0/packages/eas-cli/src/commands/webhook/view.ts)_
|
|
496
508
|
<!-- commandsstop -->
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ExpoConfig } from '@expo/config';
|
|
2
|
-
import {
|
|
2
|
+
import { Platform } from '@expo/eas-build-job';
|
|
3
|
+
import { BuildProfile } from '@expo/eas-json';
|
|
3
4
|
import { ConfigureContext } from '../context';
|
|
4
5
|
export declare function configureAndroidAsync(ctx: ConfigureContext): Promise<void>;
|
|
5
6
|
export declare function validateAndSyncProjectConfigurationAsync({ projectDir, exp, buildProfile, }: {
|
|
6
7
|
projectDir: string;
|
|
7
8
|
exp: ExpoConfig;
|
|
8
|
-
buildProfile:
|
|
9
|
+
buildProfile: BuildProfile<Platform.ANDROID>;
|
|
9
10
|
}): Promise<void>;
|
package/build/build/configure.js
CHANGED
|
@@ -119,7 +119,7 @@ async function ensureEasJsonExistsAsync(ctx) {
|
|
|
119
119
|
const easJsonPath = eas_json_1.EasJsonReader.formatEasJsonPath(ctx.projectDir);
|
|
120
120
|
if (await fs_extra_1.default.pathExists(easJsonPath)) {
|
|
121
121
|
const reader = new eas_json_1.EasJsonReader(ctx.projectDir);
|
|
122
|
-
await reader.
|
|
122
|
+
await reader.readAsync();
|
|
123
123
|
log_1.default.withTick('Validated eas.json');
|
|
124
124
|
return;
|
|
125
125
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { ExpoConfig } from '@expo/config';
|
|
2
|
-
import {
|
|
2
|
+
import { Platform } from '@expo/eas-build-job';
|
|
3
|
+
import { BuildProfile } from '@expo/eas-json';
|
|
3
4
|
import type { XCBuildConfiguration } from 'xcode';
|
|
4
5
|
import { ConfigureContext } from '../context';
|
|
5
6
|
export declare function configureIosAsync(ctx: ConfigureContext): Promise<void>;
|
|
6
7
|
export declare function validateAndSyncProjectConfigurationAsync({ projectDir, exp, buildProfile, buildSettings, }: {
|
|
7
8
|
projectDir: string;
|
|
8
9
|
exp: ExpoConfig;
|
|
9
|
-
buildProfile:
|
|
10
|
+
buildProfile: BuildProfile<Platform.IOS>;
|
|
10
11
|
buildSettings: XCBuildConfiguration['buildSettings'];
|
|
11
12
|
}): Promise<void>;
|
|
@@ -23,4 +23,4 @@ export declare function maybeResolveVersionsAsync(projectDir: string, exp: ExpoC
|
|
|
23
23
|
appBuildVersion?: string;
|
|
24
24
|
}>;
|
|
25
25
|
export declare function getInfoPlistPath(projectDir: string, buildSettings: XCBuildConfiguration['buildSettings']): string;
|
|
26
|
-
export declare function evaluateTemplateString(s: string,
|
|
26
|
+
export declare function evaluateTemplateString(s: string, buildSettings: XCBuildConfiguration['buildSettings']): string;
|
|
@@ -98,6 +98,7 @@ async function maybeResolveVersionsAsync(projectDir, exp, buildSettings) {
|
|
|
98
98
|
}
|
|
99
99
|
catch (err) {
|
|
100
100
|
log_1.default.warn('Failed to read app versions.');
|
|
101
|
+
log_1.default.debug(err);
|
|
101
102
|
log_1.default.warn(err.message);
|
|
102
103
|
log_1.default.warn('Proceeding anyway...');
|
|
103
104
|
return {};
|
|
@@ -142,7 +143,9 @@ function ensureStaticConfigExists(projectDir) {
|
|
|
142
143
|
throw new Error('autoIncrement option is not supported when using app.config.js');
|
|
143
144
|
}
|
|
144
145
|
}
|
|
145
|
-
function evaluateTemplateString(s,
|
|
146
|
+
function evaluateTemplateString(s, buildSettings) {
|
|
147
|
+
// necessary because XCBuildConfiguration['buildSettings'] is not a plain object
|
|
148
|
+
const vars = { ...buildSettings };
|
|
146
149
|
return s.replace(/\$\((\w+)\)/g, (match, key) => {
|
|
147
150
|
if (vars.hasOwnProperty(key)) {
|
|
148
151
|
const value = String(vars[key]);
|
package/build/build/local.js
CHANGED
|
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const spawn_async_1 = (0, tslib_1.__importDefault)(require("@expo/spawn-async"));
|
|
6
6
|
const semver_1 = (0, tslib_1.__importDefault)(require("semver"));
|
|
7
7
|
const PLUGIN_PACKAGE_NAME = 'eas-cli-local-build-plugin';
|
|
8
|
-
const PLUGIN_PACKAGE_VERSION = '0.0.
|
|
8
|
+
const PLUGIN_PACKAGE_VERSION = '0.0.54';
|
|
9
9
|
async function runLocalBuildAsync(job) {
|
|
10
10
|
const { command, args } = await getCommandAndArgsAsync(job);
|
|
11
11
|
await (0, spawn_async_1.default)(command, args, {
|
package/build/build/metadata.js
CHANGED
|
@@ -4,6 +4,8 @@ exports.collectMetadataAsync = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const config_plugins_1 = require("@expo/config-plugins");
|
|
6
6
|
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
7
|
+
const fs_extra_1 = (0, tslib_1.__importDefault)(require("fs-extra"));
|
|
8
|
+
const resolve_from_1 = (0, tslib_1.__importDefault)(require("resolve-from"));
|
|
7
9
|
const log_1 = (0, tslib_1.__importDefault)(require("../log"));
|
|
8
10
|
const projectUtils_1 = require("../project/projectUtils");
|
|
9
11
|
const actions_1 = require("../user/actions");
|
|
@@ -38,6 +40,7 @@ async function collectMetadataAsync(ctx) {
|
|
|
38
40
|
credentialsSource: ctx.buildProfile.credentialsSource,
|
|
39
41
|
sdkVersion: ctx.exp.sdkVersion,
|
|
40
42
|
runtimeVersion: (_b = getRuntimeVersionNullable(ctx.exp, ctx.platform)) !== null && _b !== void 0 ? _b : undefined,
|
|
43
|
+
reactNativeVersion: await getReactNativeVersionAsync(ctx),
|
|
41
44
|
...channelOrReleaseChannel,
|
|
42
45
|
distribution,
|
|
43
46
|
appName: ctx.exp.name,
|
|
@@ -116,6 +119,17 @@ async function getNativeChannelAsync(ctx) {
|
|
|
116
119
|
}
|
|
117
120
|
return undefined;
|
|
118
121
|
}
|
|
122
|
+
async function getReactNativeVersionAsync(ctx) {
|
|
123
|
+
try {
|
|
124
|
+
const reactNativePackageJsonPath = (0, resolve_from_1.default)(ctx.projectDir, 'react-native/package.json');
|
|
125
|
+
return (await fs_extra_1.default.readJson(reactNativePackageJsonPath)).version;
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
log_1.default.debug('Failed to resolve react-native version:');
|
|
129
|
+
log_1.default.debug(err);
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
119
133
|
function resolveIosEnterpriseProvisioning(ctx) {
|
|
120
134
|
return ctx.buildProfile.enterpriseProvisioning;
|
|
121
135
|
}
|
|
@@ -5,7 +5,6 @@ const eas_json_1 = require("@expo/eas-json");
|
|
|
5
5
|
const command_1 = require("@oclif/command");
|
|
6
6
|
const semver_1 = (0, tslib_1.__importDefault)(require("semver"));
|
|
7
7
|
const rudderstackClient_1 = require("../analytics/rudderstackClient");
|
|
8
|
-
const log_1 = (0, tslib_1.__importDefault)(require("../log"));
|
|
9
8
|
const projectUtils_1 = require("../project/projectUtils");
|
|
10
9
|
const User_1 = require("../user/User");
|
|
11
10
|
const actions_1 = require("../user/actions");
|
|
@@ -24,7 +23,6 @@ class EasCommand extends command_1.Command {
|
|
|
24
23
|
// eslint-disable-next-line async-protect/async-suffix
|
|
25
24
|
async run() {
|
|
26
25
|
var _a;
|
|
27
|
-
eas_json_1.EasJsonReader.setLog(log_1.default);
|
|
28
26
|
await (0, rudderstackClient_1.initAsync)();
|
|
29
27
|
await this.applyCliConfigAsync();
|
|
30
28
|
if (this.requiresAuthentication) {
|
|
@@ -24,6 +24,7 @@ const uniqBy_1 = (0, tslib_1.__importDefault)(require("../../utils/expodash/uniq
|
|
|
24
24
|
const formatFields_1 = (0, tslib_1.__importDefault)(require("../../utils/formatFields"));
|
|
25
25
|
const vcs_1 = require("../../vcs");
|
|
26
26
|
const create_1 = require("../channel/create");
|
|
27
|
+
const configure_1 = require("../update/configure");
|
|
27
28
|
const create_2 = require("./create");
|
|
28
29
|
const list_1 = require("./list");
|
|
29
30
|
const view_1 = require("./view");
|
|
@@ -95,6 +96,7 @@ class BranchPublish extends EasCommand_1.default {
|
|
|
95
96
|
});
|
|
96
97
|
const runtimeVersions = await getRuntimeVersionObjectAsync(exp, platformFlag, projectDir);
|
|
97
98
|
const projectId = await (0, projectUtils_1.getProjectIdAsync)(exp);
|
|
99
|
+
await checkEASUpdateURLIsSetAsync(exp);
|
|
98
100
|
if (!branchName && autoFlag) {
|
|
99
101
|
branchName =
|
|
100
102
|
(await (0, vcs_1.getVcsClient)().getBranchNameAsync()) ||
|
|
@@ -352,3 +354,11 @@ function formatUpdateTitle(update) {
|
|
|
352
354
|
}
|
|
353
355
|
return `[${(0, dateformat_1.default)(createdAt, 'mmm dd HH:MM')} by ${actorName}, runtimeVersion: ${runtimeVersion}] ${message}`;
|
|
354
356
|
}
|
|
357
|
+
async function checkEASUpdateURLIsSetAsync(exp) {
|
|
358
|
+
var _a;
|
|
359
|
+
const configuredURL = (_a = exp.updates) === null || _a === void 0 ? void 0 : _a.url;
|
|
360
|
+
const expectedURL = await (0, configure_1.getEASUpdateURLAsync)(exp);
|
|
361
|
+
if (configuredURL !== expectedURL) {
|
|
362
|
+
throw new Error(`The update URL is incorrectly configured for EAS Update. Please set updates.url to ${expectedURL} in your app.json.`);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
@@ -44,7 +44,7 @@ function logSuccess(platform) {
|
|
|
44
44
|
}
|
|
45
45
|
else if (platform === 'ios') {
|
|
46
46
|
platformsText = 'iOS project is';
|
|
47
|
-
storesText = 'the Apple App Store';
|
|
47
|
+
storesText = 'the Apple App Store Connect';
|
|
48
48
|
}
|
|
49
49
|
log_1.default.log(`🎉 Your ${platformsText} ready to build.
|
|
50
50
|
|
|
@@ -40,6 +40,7 @@ class Build extends EasCommand_1.default {
|
|
|
40
40
|
this.metroConfigValidated = false;
|
|
41
41
|
}
|
|
42
42
|
async runAsync() {
|
|
43
|
+
var _a;
|
|
43
44
|
const { flags: rawFlags } = this.parse(Build);
|
|
44
45
|
if (rawFlags.json) {
|
|
45
46
|
(0, json_1.enableJsonOutput)();
|
|
@@ -56,7 +57,7 @@ class Build extends EasCommand_1.default {
|
|
|
56
57
|
type: 'build',
|
|
57
58
|
projectDir,
|
|
58
59
|
platforms,
|
|
59
|
-
profileName: flags.profile,
|
|
60
|
+
profileName: (_a = flags.profile) !== null && _a !== void 0 ? _a : undefined,
|
|
60
61
|
});
|
|
61
62
|
await (0, devClient_1.ensureExpoDevClientInstalledForDevClientBuildsAsync)({
|
|
62
63
|
projectDir,
|
|
@@ -85,14 +86,22 @@ class Build extends EasCommand_1.default {
|
|
|
85
86
|
log_1.default.newLine();
|
|
86
87
|
const submissions = [];
|
|
87
88
|
if (flags.autoSubmit) {
|
|
89
|
+
const submitProfiles = await (0, profiles_1.getProfilesAsync)({
|
|
90
|
+
projectDir,
|
|
91
|
+
platforms,
|
|
92
|
+
profileName: flags.submitProfile,
|
|
93
|
+
type: 'submit',
|
|
94
|
+
});
|
|
88
95
|
for (const startedBuild of startedBuilds) {
|
|
96
|
+
const submitProfile = (0, nullthrows_1.default)(submitProfiles.find(({ platform }) => (0, AppPlatform_1.toAppPlatform)(platform) === startedBuild.build.platform)).profile;
|
|
89
97
|
const submission = await this.prepareAndStartSubmissionAsync({
|
|
90
98
|
build: startedBuild.build,
|
|
91
99
|
buildCtx: (0, nullthrows_1.default)(buildCtxByPlatform[startedBuild.build.platform]),
|
|
92
|
-
flags,
|
|
93
100
|
moreBuilds: startedBuilds.length > 1,
|
|
94
101
|
projectDir,
|
|
95
|
-
buildProfile: startedBuild.buildProfile,
|
|
102
|
+
buildProfile: startedBuild.buildProfile.profile,
|
|
103
|
+
submitProfile,
|
|
104
|
+
nonInteractive: flags.nonInteractive,
|
|
96
105
|
});
|
|
97
106
|
submissions.push(submission);
|
|
98
107
|
}
|
|
@@ -144,7 +153,7 @@ class Build extends EasCommand_1.default {
|
|
|
144
153
|
return {
|
|
145
154
|
requestedPlatform,
|
|
146
155
|
skipProjectConfiguration: flags['skip-project-configuration'],
|
|
147
|
-
profile
|
|
156
|
+
profile,
|
|
148
157
|
nonInteractive,
|
|
149
158
|
local: flags['local'],
|
|
150
159
|
wait: flags['wait'],
|
|
@@ -190,19 +199,17 @@ class Build extends EasCommand_1.default {
|
|
|
190
199
|
}
|
|
191
200
|
return await sendBuildRequestAsync();
|
|
192
201
|
}
|
|
193
|
-
async prepareAndStartSubmissionAsync({ build, buildCtx,
|
|
202
|
+
async prepareAndStartSubmissionAsync({ build, buildCtx, moreBuilds, projectDir, buildProfile, submitProfile, nonInteractive, }) {
|
|
194
203
|
var _a, _b, _c;
|
|
195
|
-
const easJsonReader = new eas_json_1.EasJsonReader(projectDir);
|
|
196
204
|
const platform = (0, AppPlatform_1.toPlatform)(build.platform);
|
|
197
|
-
const submitProfile = await easJsonReader.readSubmitProfileAsync(platform, flags.submitProfile);
|
|
198
205
|
const submissionCtx = await (0, context_1.createSubmissionContextAsync)({
|
|
199
206
|
platform,
|
|
200
207
|
projectDir,
|
|
201
208
|
projectId: build.project.id,
|
|
202
209
|
profile: submitProfile,
|
|
203
210
|
archiveFlags: { id: build.id },
|
|
204
|
-
nonInteractive
|
|
205
|
-
env: buildProfile.
|
|
211
|
+
nonInteractive,
|
|
212
|
+
env: buildProfile.env,
|
|
206
213
|
credentialsCtx: buildCtx.credentialsCtx,
|
|
207
214
|
applicationIdentifier: (_b = (_a = buildCtx.android) === null || _a === void 0 ? void 0 : _a.applicationId) !== null && _b !== void 0 ? _b : (_c = buildCtx.ios) === null || _c === void 0 ? void 0 : _c.bundleIdentifier,
|
|
208
215
|
});
|
|
@@ -276,7 +283,7 @@ async function handleDeprecatedEasJsonAsync(projectDir, nonInteractive) {
|
|
|
276
283
|
return;
|
|
277
284
|
}
|
|
278
285
|
const easJsonReader = new eas_json_1.EasJsonReader(projectDir);
|
|
279
|
-
const rawEasJson = await easJsonReader.
|
|
286
|
+
const rawEasJson = await easJsonReader.readAsync();
|
|
280
287
|
if (rawEasJson === null || rawEasJson === void 0 ? void 0 : rawEasJson.cli) {
|
|
281
288
|
return;
|
|
282
289
|
}
|
|
@@ -54,7 +54,7 @@ async function updateChannelBranchMappingAsync({ channelId, branchMapping, }) {
|
|
|
54
54
|
.toPromise());
|
|
55
55
|
const channel = data.updateChannel.editUpdateChannel;
|
|
56
56
|
if (!channel) {
|
|
57
|
-
throw new Error(`Could not
|
|
57
|
+
throw new Error(`Could not find a channel with id: ${channelId}`);
|
|
58
58
|
}
|
|
59
59
|
return data.updateChannel.editUpdateChannel;
|
|
60
60
|
}
|
|
@@ -133,7 +133,7 @@ function logChannelDetails(channel) {
|
|
|
133
133
|
: []),
|
|
134
134
|
(0, utils_1.formatUpdate)(update),
|
|
135
135
|
(_a = update === null || update === void 0 ? void 0 : update.runtimeVersion) !== null && _a !== void 0 ? _a : 'N/A',
|
|
136
|
-
(_b = update === null || update === void 0 ? void 0 : update.group) !== null && _b !== void 0 ? _b : 'N/A
|
|
136
|
+
(_b = update === null || update === void 0 ? void 0 : update.group) !== null && _b !== void 0 ? _b : 'N/A',
|
|
137
137
|
(0, utils_1.getPlatformsForGroup)({
|
|
138
138
|
updates: branch.updates,
|
|
139
139
|
group: (_c = branch.updates[0]) === null || _c === void 0 ? void 0 : _c.group,
|
|
@@ -168,7 +168,7 @@ class ChannelView extends EasCommand_1.default {
|
|
|
168
168
|
});
|
|
169
169
|
const channel = (_a = getUpdateChannelByNameForAppresult.app) === null || _a === void 0 ? void 0 : _a.byId.updateChannelByName;
|
|
170
170
|
if (!channel) {
|
|
171
|
-
throw new Error(`Could not
|
|
171
|
+
throw new Error(`Could not find a channel with name: ${channelName}`);
|
|
172
172
|
}
|
|
173
173
|
if (jsonFlag) {
|
|
174
174
|
log_1.default.log(JSON.stringify(channel));
|
|
@@ -181,7 +181,7 @@ class ChannelView extends EasCommand_1.default {
|
|
|
181
181
|
{ label: 'ID', value: channel.id },
|
|
182
182
|
]));
|
|
183
183
|
log_1.default.addNewLineIfNone();
|
|
184
|
-
log_1.default.log((0, chalk_1.default) `{bold Branches
|
|
184
|
+
log_1.default.log((0, chalk_1.default) `{bold Branches pointed at this channel and their most recent update group:}`);
|
|
185
185
|
logChannelDetails(channel);
|
|
186
186
|
}
|
|
187
187
|
}
|
package/build/commands/config.js
CHANGED
|
@@ -36,7 +36,7 @@ class Config extends EasCommand_1.default {
|
|
|
36
36
|
value: eas_build_job_1.Platform.IOS,
|
|
37
37
|
},
|
|
38
38
|
]));
|
|
39
|
-
const profile = await reader.
|
|
39
|
+
const profile = await reader.getBuildProfileAsync(platform, profileName);
|
|
40
40
|
const config = (0, expoConfig_1.getExpoConfig)(projectDir, { env: profile.env, isPublicConfig: true });
|
|
41
41
|
log_1.default.log((0, config_1.getProjectConfigDescription)(projectDir));
|
|
42
42
|
log_1.default.newLine();
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
+
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
4
5
|
const envinfo_1 = (0, tslib_1.__importDefault)(require("envinfo"));
|
|
5
6
|
const EasCommand_1 = (0, tslib_1.__importDefault)(require("../commandUtils/EasCommand"));
|
|
6
7
|
const log_1 = (0, tslib_1.__importDefault)(require("../log"));
|
|
8
|
+
const projectUtils_1 = require("../project/projectUtils");
|
|
9
|
+
const workflow_1 = require("../project/workflow");
|
|
7
10
|
const easCli_1 = require("../utils/easCli");
|
|
8
11
|
class Diagnostics extends EasCommand_1.default {
|
|
9
12
|
constructor() {
|
|
@@ -30,7 +33,22 @@ class Diagnostics extends EasCommand_1.default {
|
|
|
30
33
|
}, {
|
|
31
34
|
title: `EAS CLI ${easCli_1.easCliVersion} environment info`,
|
|
32
35
|
});
|
|
33
|
-
log_1.default.log(info);
|
|
36
|
+
log_1.default.log(info.trimEnd());
|
|
37
|
+
await this.printWorkflowAsync();
|
|
38
|
+
log_1.default.newLine();
|
|
39
|
+
}
|
|
40
|
+
async printWorkflowAsync() {
|
|
41
|
+
const projectDir = await (0, projectUtils_1.findProjectRootAsync)();
|
|
42
|
+
const androidWorkflow = await (0, workflow_1.resolveWorkflowAsync)(projectDir, eas_build_job_1.Platform.ANDROID);
|
|
43
|
+
const iosWorkflow = await (0, workflow_1.resolveWorkflowAsync)(projectDir, eas_build_job_1.Platform.IOS);
|
|
44
|
+
if (androidWorkflow === iosWorkflow) {
|
|
45
|
+
log_1.default.log(` Project workflow: ${androidWorkflow}`);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
log_1.default.log(` Project Workflow:`);
|
|
49
|
+
log_1.default.log(` Android: ${androidWorkflow}`);
|
|
50
|
+
log_1.default.log(` iOS: ${iosWorkflow}`);
|
|
51
|
+
}
|
|
34
52
|
}
|
|
35
53
|
}
|
|
36
54
|
exports.default = Diagnostics;
|
package/build/commands/submit.js
CHANGED
|
@@ -74,7 +74,7 @@ class Submit extends EasCommand_1.default {
|
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
exports.default = Submit;
|
|
77
|
-
Submit.description = `submit build archive to
|
|
77
|
+
Submit.description = `submit build archive to App Store Connect
|
|
78
78
|
See how to configure submits with eas.json: ${(0, log_1.link)('https://docs.expo.dev/submit/eas-json/')}`;
|
|
79
79
|
Submit.aliases = ['build:submit'];
|
|
80
80
|
Submit.flags = {
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ExpoConfig } from '@expo/config';
|
|
2
|
+
import EasCommand from '../../commandUtils/EasCommand';
|
|
3
|
+
export declare function getEASUpdateURLAsync(exp: ExpoConfig): Promise<string>;
|
|
4
|
+
export default class UpdateConfigure extends EasCommand {
|
|
5
|
+
static description: string;
|
|
6
|
+
runAsync(): Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getEASUpdateURLAsync = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const config_1 = require("@expo/config");
|
|
6
|
+
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
7
|
+
const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
|
|
8
|
+
const EasCommand_1 = (0, tslib_1.__importDefault)(require("../../commandUtils/EasCommand"));
|
|
9
|
+
const log_1 = (0, tslib_1.__importStar)(require("../../log"));
|
|
10
|
+
const projectUtils_1 = require("../../project/projectUtils");
|
|
11
|
+
const workflow_1 = require("../../project/workflow");
|
|
12
|
+
const EAS_UPDATE_URL = 'https://u.expo.dev';
|
|
13
|
+
const DEFAULT_RUNTIME_VERSION = { policy: 'sdkVersion' };
|
|
14
|
+
async function getEASUpdateURLAsync(exp) {
|
|
15
|
+
const projectId = await (0, projectUtils_1.getProjectIdAsync)(exp);
|
|
16
|
+
return new URL(projectId, EAS_UPDATE_URL).href;
|
|
17
|
+
}
|
|
18
|
+
exports.getEASUpdateURLAsync = getEASUpdateURLAsync;
|
|
19
|
+
async function configureProjectForEASUpdateAsync(projectDir, exp) {
|
|
20
|
+
var _a, _b;
|
|
21
|
+
const easUpdateURL = await getEASUpdateURLAsync(exp);
|
|
22
|
+
const preexistingRuntimeVersion = exp.runtimeVersion;
|
|
23
|
+
const result = await (0, config_1.modifyConfigAsync)(projectDir, {
|
|
24
|
+
runtimeVersion: preexistingRuntimeVersion !== null && preexistingRuntimeVersion !== void 0 ? preexistingRuntimeVersion : DEFAULT_RUNTIME_VERSION,
|
|
25
|
+
updates: { ...exp.updates, url: easUpdateURL },
|
|
26
|
+
});
|
|
27
|
+
switch (result.type) {
|
|
28
|
+
case 'success':
|
|
29
|
+
if ((_a = exp.updates) === null || _a === void 0 ? void 0 : _a.url) {
|
|
30
|
+
if (exp.updates.url !== easUpdateURL) {
|
|
31
|
+
log_1.default.withTick(`Overwrote "${(_b = exp.updates) === null || _b === void 0 ? void 0 : _b.url}" with "${easUpdateURL}" for the updates.url value in app.json`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
log_1.default.withTick(`Set updates.url value, to "${easUpdateURL}" in app.json`);
|
|
36
|
+
}
|
|
37
|
+
if (!preexistingRuntimeVersion) {
|
|
38
|
+
log_1.default.withTick(`Set runtimeVersion to "${JSON.stringify(DEFAULT_RUNTIME_VERSION)}" in app.json`);
|
|
39
|
+
}
|
|
40
|
+
break;
|
|
41
|
+
case 'warn': {
|
|
42
|
+
log_1.default.addNewLineIfNone();
|
|
43
|
+
log_1.default.warn(`It looks like you are using a dynamic configuration! ${(0, log_1.learnMore)('https://docs.expo.dev/workflow/configuration/#dynamic-configuration-with-appconfigjs)')}`);
|
|
44
|
+
log_1.default.warn(`In order to finish configuring your project for EAS Update, you are going to need manually add the following to your app.config.js:\n${(0, log_1.learnMore)('https://expo.fyi/eas-update-config.md')}\n`);
|
|
45
|
+
log_1.default.log(chalk_1.default.bold(`{\n updates": {\n "url": "${easUpdateURL}"\n },\n "runtimeVersion": {\n "policy": "sdkVersion"\n }\n}`));
|
|
46
|
+
log_1.default.addNewLineIfNone();
|
|
47
|
+
throw new Error(result.message);
|
|
48
|
+
}
|
|
49
|
+
case 'fail':
|
|
50
|
+
throw new Error(result.message);
|
|
51
|
+
default:
|
|
52
|
+
throw new Error('Unexpected result type from modifyConfigAsync');
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
class UpdateConfigure extends EasCommand_1.default {
|
|
56
|
+
async runAsync() {
|
|
57
|
+
log_1.default.log('💡 The following process will configure your project to run EAS Update. These changes only apply to your local project files and you can safely revert them at any time.');
|
|
58
|
+
const projectDir = await (0, projectUtils_1.findProjectRootAsync)();
|
|
59
|
+
const { exp } = (0, config_1.getConfig)(projectDir, {
|
|
60
|
+
skipSDKVersionRequirement: true,
|
|
61
|
+
});
|
|
62
|
+
await configureProjectForEASUpdateAsync(projectDir, exp);
|
|
63
|
+
const hasAndroidNativeProject = (await (0, workflow_1.resolveWorkflowAsync)(projectDir, eas_build_job_1.Platform.ANDROID)) === eas_build_job_1.Workflow.GENERIC;
|
|
64
|
+
const hasIosNativeProject = (await (0, workflow_1.resolveWorkflowAsync)(projectDir, eas_build_job_1.Platform.IOS)) === eas_build_job_1.Workflow.GENERIC;
|
|
65
|
+
log_1.default.addNewLineIfNone();
|
|
66
|
+
if (hasAndroidNativeProject || hasIosNativeProject) {
|
|
67
|
+
log_1.default.log(`🧐 It seems you are on the bare workflow! Please also update your native files. You can do this by either running ${chalk_1.default.bold('eas build:configure')} or manually editing Expo.plist/AndroidManifest.xml. ${(0, log_1.learnMore)('https://expo.fyi/eas-update-config.md#native-configuration')}`);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
log_1.default.log(`🎉 Your app is configured to run EAS Update!`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.default = UpdateConfigure;
|
|
75
|
+
UpdateConfigure.description = 'Configure the project to support EAS Update.';
|
|
@@ -93,7 +93,7 @@ async function promptForAscApiKeyAsync(ctx) {
|
|
|
93
93
|
}
|
|
94
94
|
async function promptForKeyP8AndIdAsync() {
|
|
95
95
|
var _a, _b;
|
|
96
|
-
log_1.default.log(chalk_1.default.bold('An App Store Connect Api key is required to upload your app to the Apple App Store'));
|
|
96
|
+
log_1.default.log(chalk_1.default.bold('An App Store Connect Api key is required to upload your app to the Apple App Store Connect'));
|
|
97
97
|
log_1.default.log(`If you're not sure what this is or how to create one, ${(0, log_1.learnMore)('https://expo.fyi/creating-asc-api-key')}`);
|
|
98
98
|
const { keyP8Path } = await (0, prompts_1.promptAsync)({
|
|
99
99
|
type: 'text',
|
|
@@ -96,10 +96,10 @@ exports.syncCapabilityIdentifiersAsync = syncCapabilityIdentifiersAsync;
|
|
|
96
96
|
async function ensureAppExistsAsync(authCtx, { name, language, companyName, bundleIdentifier, sku, }) {
|
|
97
97
|
var _a;
|
|
98
98
|
const context = (0, authenticate_1.getRequestContext)(authCtx);
|
|
99
|
-
const spinner = (0, ora_1.ora)(`Linking to App Store ${chalk_1.default.dim(bundleIdentifier)}`).start();
|
|
99
|
+
const spinner = (0, ora_1.ora)(`Linking to App Store Connect ${chalk_1.default.dim(bundleIdentifier)}`).start();
|
|
100
100
|
let app = await apple_utils_1.App.findAsync(context, { bundleId: bundleIdentifier });
|
|
101
101
|
if (!app) {
|
|
102
|
-
spinner.text = `Creating App Store app ${chalk_1.default.bold(name)} ${chalk_1.default.dim(bundleIdentifier)}`;
|
|
102
|
+
spinner.text = `Creating App Store Connect app ${chalk_1.default.bold(name)} ${chalk_1.default.dim(bundleIdentifier)}`;
|
|
103
103
|
try {
|
|
104
104
|
// Assert contract errors when the user needs to create an app.
|
|
105
105
|
await (0, contractMessages_1.assertContractMessagesAsync)(context, spinner);
|
|
@@ -125,7 +125,7 @@ async function ensureAppExistsAsync(authCtx, { name, language, companyName, bund
|
|
|
125
125
|
else {
|
|
126
126
|
// TODO: Update app name when API gives us that possibility
|
|
127
127
|
}
|
|
128
|
-
spinner.succeed(`Prepared App Store for ${chalk_1.default.bold(name)} ${chalk_1.default.dim(bundleIdentifier)}`);
|
|
128
|
+
spinner.succeed(`Prepared App Store Connect for ${chalk_1.default.bold(name)} ${chalk_1.default.dim(bundleIdentifier)}`);
|
|
129
129
|
return app;
|
|
130
130
|
}
|
|
131
131
|
exports.ensureAppExistsAsync = ensureAppExistsAsync;
|
|
@@ -13,7 +13,7 @@ async function getManagedEntitlementsJsonAsync(projectDir, env) {
|
|
|
13
13
|
...process.env,
|
|
14
14
|
...env,
|
|
15
15
|
};
|
|
16
|
-
const { exp } = (0, prebuild_config_1.
|
|
16
|
+
const { exp } = await (0, prebuild_config_1.getPrebuildConfigAsync)(projectDir, { platforms: ['ios'] });
|
|
17
17
|
const expWithMods = await (0, config_plugins_1.compileModsAsync)(exp, {
|
|
18
18
|
projectRoot: projectDir,
|
|
19
19
|
platforms: ['ios'],
|
|
@@ -12,7 +12,7 @@ class SelectBuildProfileFromEasJson {
|
|
|
12
12
|
}
|
|
13
13
|
async runAsync(ctx) {
|
|
14
14
|
const profileName = await this.getProfileNameFromEasConfigAsync(ctx);
|
|
15
|
-
const easConfig = await this.easJsonReader.
|
|
15
|
+
const easConfig = await this.easJsonReader.getBuildProfileAsync(this.platform, profileName);
|
|
16
16
|
log_1.default.succeed(`Using build profile: ${profileName}`);
|
|
17
17
|
return easConfig;
|
|
18
18
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Platform } from '@expo/eas-build-job';
|
|
2
|
+
import { BuildProfile } from '@expo/eas-json';
|
|
2
3
|
import { IosDistributionType as IosDistributionTypeGraphql } from '../../graphql/generated';
|
|
3
4
|
import { CredentialsContext } from '../context';
|
|
4
5
|
export declare class SelectIosDistributionTypeGraphqlFromBuildProfile {
|
|
5
6
|
private buildProfile;
|
|
6
|
-
constructor(buildProfile:
|
|
7
|
+
constructor(buildProfile: BuildProfile<Platform.IOS>);
|
|
7
8
|
runAsync(ctx: CredentialsContext): Promise<IosDistributionTypeGraphql>;
|
|
8
9
|
resolveInternalDistributionAsync(ctx: CredentialsContext): Promise<IosDistributionTypeGraphql>;
|
|
9
10
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ExpoConfig } from '@expo/config';
|
|
2
|
-
import {
|
|
2
|
+
import { Platform } from '@expo/eas-build-job';
|
|
3
|
+
import { BuildProfile } from '@expo/eas-json';
|
|
3
4
|
export interface XcodeBuildContext {
|
|
4
5
|
buildScheme: string;
|
|
5
6
|
buildConfiguration?: string;
|
|
@@ -8,7 +9,7 @@ export declare function resolveXcodeBuildContextAsync({ exp, projectDir, nonInte
|
|
|
8
9
|
exp: ExpoConfig;
|
|
9
10
|
projectDir: string;
|
|
10
11
|
nonInteractive: boolean;
|
|
11
|
-
}, buildProfile:
|
|
12
|
+
}, buildProfile: BuildProfile<Platform.IOS>): Promise<XcodeBuildContext>;
|
|
12
13
|
export declare function selectSchemeAsync({ projectDir, nonInteractive, }: {
|
|
13
14
|
projectDir: string;
|
|
14
15
|
nonInteractive?: boolean;
|
|
@@ -17,22 +17,47 @@ async function resolveTargetsAsync({ exp, projectDir }, { buildConfiguration, bu
|
|
|
17
17
|
bundleIdentifier,
|
|
18
18
|
buildConfiguration,
|
|
19
19
|
});
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
const dependencies = await resolveDependenciesAsync({
|
|
21
|
+
exp,
|
|
22
|
+
projectDir,
|
|
23
|
+
buildConfiguration,
|
|
24
|
+
target: applicationTarget,
|
|
25
|
+
bundleIdentifier,
|
|
26
|
+
});
|
|
27
|
+
if (dependencies.length > 0) {
|
|
28
|
+
result.push(...dependencies);
|
|
29
|
+
}
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
exports.resolveTargetsAsync = resolveTargetsAsync;
|
|
33
|
+
async function resolveDependenciesAsync({ exp, projectDir, buildConfiguration, target, bundleIdentifier, }) {
|
|
34
|
+
const result = [];
|
|
35
|
+
if (target.dependencies && target.dependencies.length > 0) {
|
|
36
|
+
for (const dependency of target.dependencies) {
|
|
37
|
+
const dependencyBundleIdentifier = await (0, bundleIdentifier_1.getBundleIdentifierAsync)(projectDir, exp, {
|
|
38
|
+
targetName: dependency.name,
|
|
39
|
+
buildConfiguration,
|
|
40
|
+
});
|
|
22
41
|
result.push({
|
|
23
42
|
targetName: dependency.name,
|
|
24
43
|
buildConfiguration,
|
|
25
|
-
bundleIdentifier:
|
|
26
|
-
targetName: dependency.name,
|
|
27
|
-
buildConfiguration,
|
|
28
|
-
}),
|
|
44
|
+
bundleIdentifier: dependencyBundleIdentifier,
|
|
29
45
|
parentBundleIdentifier: bundleIdentifier,
|
|
30
46
|
});
|
|
47
|
+
const dependencyDependencies = await resolveDependenciesAsync({
|
|
48
|
+
exp,
|
|
49
|
+
projectDir,
|
|
50
|
+
buildConfiguration,
|
|
51
|
+
target: dependency,
|
|
52
|
+
bundleIdentifier: dependencyBundleIdentifier,
|
|
53
|
+
});
|
|
54
|
+
if (dependencyDependencies.length > 0) {
|
|
55
|
+
result.push(...dependencyDependencies);
|
|
56
|
+
}
|
|
31
57
|
}
|
|
32
58
|
}
|
|
33
59
|
return result;
|
|
34
60
|
}
|
|
35
|
-
exports.resolveTargetsAsync = resolveTargetsAsync;
|
|
36
61
|
async function readApplicationTargetForSchemeAsync(projectDir, scheme) {
|
|
37
62
|
const workflow = await (0, workflow_1.resolveWorkflowAsync)(projectDir, eas_build_job_1.Platform.IOS);
|
|
38
63
|
if (workflow === eas_build_job_1.Workflow.GENERIC) {
|
|
@@ -11,13 +11,13 @@ const bundleIdentifier_1 = require("../../project/ios/bundleIdentifier");
|
|
|
11
11
|
const prompts_1 = require("../../prompts");
|
|
12
12
|
const language_1 = require("./utils/language");
|
|
13
13
|
async function ensureAppStoreConnectAppExistsAsync(ctx) {
|
|
14
|
-
var _a;
|
|
14
|
+
var _a, _b, _c;
|
|
15
15
|
const { exp } = ctx;
|
|
16
16
|
const { appName, language } = ctx.profile;
|
|
17
17
|
const options = {
|
|
18
18
|
...ctx.profile,
|
|
19
|
-
bundleIdentifier: await (0, bundleIdentifier_1.getBundleIdentifierAsync)(ctx.projectDir, exp),
|
|
20
|
-
appName: (
|
|
19
|
+
bundleIdentifier: (_b = (_a = ctx.applicationIdentifierOverride) !== null && _a !== void 0 ? _a : ctx.profile.bundleIdentifier) !== null && _b !== void 0 ? _b : (await (0, bundleIdentifier_1.getBundleIdentifierAsync)(ctx.projectDir, exp)),
|
|
20
|
+
appName: (_c = appName !== null && appName !== void 0 ? appName : exp.name) !== null && _c !== void 0 ? _c : (await promptForAppNameAsync()),
|
|
21
21
|
language: (0, language_1.sanitizeLanguage)(language),
|
|
22
22
|
};
|
|
23
23
|
return await createAppStoreConnectAppAsync(ctx, options);
|
|
@@ -159,7 +159,7 @@ class IosSubmitCommand {
|
|
|
159
159
|
return (0, results_1.result)(ascAppId);
|
|
160
160
|
}
|
|
161
161
|
else if (this.ctx.nonInteractive) {
|
|
162
|
-
return (0, results_1.result)(new Error('Set ascAppId in the submit profile (eas.json).'));
|
|
162
|
+
return (0, results_1.result)(new Error('Set ascAppId in the submit profile (eas.json) or re-run this command in interactive mode.'));
|
|
163
163
|
}
|
|
164
164
|
else {
|
|
165
165
|
log_1.default.log((0, wrap_ansi_1.default)(`Ensuring your app exists on App Store Connect. This step can be skipped by providing ${chalk_1.default.bold(`ascAppId`)} in the submit profile. ${(0, log_1.learnMore)('https://expo.fyi/asc-app-id')}`, process.stdout.columns || 80));
|
|
@@ -10,7 +10,7 @@ const ora_1 = require("../../ora");
|
|
|
10
10
|
const promise_1 = require("../../utils/promise");
|
|
11
11
|
const APP_STORE_NAMES = {
|
|
12
12
|
[generated_1.AppPlatform.Android]: 'Google Play Store',
|
|
13
|
-
[generated_1.AppPlatform.Ios]: 'Apple App Store',
|
|
13
|
+
[generated_1.AppPlatform.Ios]: 'Apple App Store Connect',
|
|
14
14
|
};
|
|
15
15
|
const CHECK_TIMEOUT_MS = 3600000;
|
|
16
16
|
const CHECK_INTERVAL_MS = 5000;
|
package/build/update/utils.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Platform } from '@expo/eas-build-job';
|
|
2
|
-
import { BuildProfile, SubmitProfile } from '@expo/eas-json';
|
|
3
|
-
declare type ProfileType = 'build' | 'submit';
|
|
2
|
+
import { BuildProfile, ProfileType, SubmitProfile } from '@expo/eas-json';
|
|
4
3
|
declare type EasProfile<T extends ProfileType> = T extends 'build' ? BuildProfile<Platform> : SubmitProfile<Platform>;
|
|
5
4
|
export declare type ProfileData<T extends ProfileType> = {
|
|
6
5
|
profile: EasProfile<T>;
|
|
@@ -10,7 +9,7 @@ export declare type ProfileData<T extends ProfileType> = {
|
|
|
10
9
|
export declare function getProfilesAsync<T extends ProfileType>({ projectDir, platforms, profileName: profileNameArg, type, }: {
|
|
11
10
|
projectDir: string;
|
|
12
11
|
platforms: Platform[];
|
|
13
|
-
profileName?: string
|
|
12
|
+
profileName?: string;
|
|
14
13
|
type: T;
|
|
15
14
|
}): Promise<ProfileData<T>[]>;
|
|
16
15
|
export {};
|
package/build/utils/profiles.js
CHANGED
|
@@ -10,23 +10,28 @@ async function getProfilesAsync({ projectDir, platforms, profileName: profileNam
|
|
|
10
10
|
let profileName = profileNameArg;
|
|
11
11
|
if (!profileName) {
|
|
12
12
|
try {
|
|
13
|
-
profile = await readProfileAsync({ projectDir, platform, type, profileName: 'production' });
|
|
14
13
|
profileName = 'production';
|
|
14
|
+
profile = await readProfileAsync({ projectDir, platform, type, profileName });
|
|
15
15
|
}
|
|
16
16
|
catch (errorOuter) {
|
|
17
|
-
if (errorOuter instanceof eas_json_1.errors.
|
|
17
|
+
if (!(errorOuter instanceof eas_json_1.errors.MissingProfileError)) {
|
|
18
18
|
throw errorOuter;
|
|
19
19
|
}
|
|
20
20
|
try {
|
|
21
|
-
profile = await readProfileAsync({ projectDir, platform, type, profileName: 'release' });
|
|
22
21
|
profileName = 'release';
|
|
22
|
+
profile = await readProfileAsync({ projectDir, platform, type, profileName });
|
|
23
23
|
log_1.default.warn('The default profile changed from "release" to "production". We detected that you still have a "release" build profile, so we are using it. Update eas.json to have a profile named "production" under the `build` key, or specify which profile you\'d like to use with the --profile flag. This fallback behavior will be removed in the next major version of EAS CLI.');
|
|
24
24
|
}
|
|
25
25
|
catch (errorInner) {
|
|
26
|
-
if (errorInner instanceof eas_json_1.errors.
|
|
26
|
+
if (!(errorInner instanceof eas_json_1.errors.MissingProfileError)) {
|
|
27
27
|
throw errorInner;
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
const defaultProfile = getDefaultProfile({ platform, type });
|
|
30
|
+
if (!defaultProfile) {
|
|
31
|
+
throw errorInner;
|
|
32
|
+
}
|
|
33
|
+
profileName = '__default__';
|
|
34
|
+
profile = defaultProfile;
|
|
30
35
|
}
|
|
31
36
|
}
|
|
32
37
|
}
|
|
@@ -45,9 +50,17 @@ exports.getProfilesAsync = getProfilesAsync;
|
|
|
45
50
|
async function readProfileAsync({ projectDir, platform, type, profileName, }) {
|
|
46
51
|
const easJsonReader = new eas_json_1.EasJsonReader(projectDir);
|
|
47
52
|
if (type === 'build') {
|
|
48
|
-
return (await easJsonReader.
|
|
53
|
+
return (await easJsonReader.getBuildProfileAsync(platform, profileName));
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
return (await easJsonReader.getSubmitProfileAsync(platform, profileName));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function getDefaultProfile({ platform, type, }) {
|
|
60
|
+
if (type === 'build') {
|
|
61
|
+
return null;
|
|
49
62
|
}
|
|
50
63
|
else {
|
|
51
|
-
return (
|
|
64
|
+
return (0, eas_json_1.getDefaultSubmitProfile)(platform);
|
|
52
65
|
}
|
|
53
66
|
}
|
package/oclif.manifest.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"0.38.0","commands":{"analytics":{"id":"analytics","description":"view or change analytics settings","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"STATUS","options":["on","off"]}]},"config":{"id":"config","description":"show the eas.json config","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios)","options":["android","ios"]},"profile":{"name":"profile","type":"option"}},"args":[]},"credentials":{"id":"credentials","description":"manage your credentials","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"diagnostics":{"id":"diagnostics","description":"log environment info to the console","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"submit":{"id":"submit","description":"submit build archive to app store\nSee how to configure submits with eas.json: https://docs.expo.dev/submit/eas-json/","pluginName":"eas-cli","pluginType":"core","aliases":["build:submit"],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios|all)","options":["android","ios","all"]},"profile":{"name":"profile","type":"option","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json."},"latest":{"name":"latest","type":"boolean","description":"Submit the latest build for specified platform","allowNo":false},"id":{"name":"id","type":"option","description":"ID of the build to submit"},"path":{"name":"path","type":"option","description":"Path to the .apk/.aab/.ipa file"},"url":{"name":"url","type":"option","description":"App archive url"},"verbose":{"name":"verbose","type":"boolean","description":"Always print logs from Submission Service","allowNo":false},"wait":{"name":"wait","type":"boolean","description":"Wait for submission to complete","allowNo":true},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false}},"args":[]},"account:login":{"id":"account:login","description":"log in with your Expo account","pluginName":"eas-cli","pluginType":"core","aliases":["login"],"flags":{},"args":[]},"account:logout":{"id":"account:logout","description":"log out","pluginName":"eas-cli","pluginType":"core","aliases":["logout"],"flags":{},"args":[]},"account:view":{"id":"account:view","description":"show the username you are logged in as","pluginName":"eas-cli","pluginType":"core","aliases":["whoami"],"flags":{},"args":[]},"branch:create":{"id":"branch:create","description":"Create a branch on the current project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return a json with the new branch ID and name.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to create","required":false}]},"branch:delete":{"id":"branch:delete","description":"Republish an update group","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return JSON with the edited branch's ID and name.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to delete","required":false}]},"branch:list":{"id":"branch:list","description":"List all branches on this project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return output as JSON","allowNo":false}},"args":[]},"branch:publish":{"id":"branch:publish","description":"Publish an update group to a branch.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"message":{"name":"message","type":"option","description":"short message describing the updates.","required":false},"republish":{"name":"republish","type":"boolean","description":"republish an update group","allowNo":false},"group":{"name":"group","type":"option","description":"update group to republish"},"input-dir":{"name":"input-dir","type":"option","description":"location of the bundle","required":false,"default":"dist"},"skip-bundler":{"name":"skip-bundler","type":"boolean","description":"skip running Expo CLI to bundle the app before publishing","allowNo":false},"platform":{"name":"platform","type":"option","char":"p","description":"only publish to a single platform","required":false,"helpValue":"(android|ios|all)","options":["android","ios","all"],"default":"all"},"json":{"name":"json","type":"boolean","description":"return a json with the new update group.","allowNo":false},"auto":{"name":"auto","type":"boolean","description":"use the current git branch and commit message for the EAS branch and update message","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to publish on"}]},"branch:rename":{"id":"branch:rename","description":"Rename a branch.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"from":{"name":"from","type":"option","description":"current name of the branch.","required":false},"to":{"name":"to","type":"option","description":"new name of the branch.","required":false},"json":{"name":"json","type":"boolean","description":"return a json with the edited branch's ID and name.","allowNo":false}},"args":[]},"branch:view":{"id":"branch:view","description":"View a branch.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return a json with the branch's ID name and recent update groups.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to view","required":false}]},"build:cancel":{"id":"build:cancel","description":"Cancel a build.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"BUILD_ID"}]},"build:configure":{"id":"build:configure","description":"Configure the project to support EAS Build.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","description":"Platform to configure","helpValue":"(android|ios|all)","options":["android","ios","all"]}},"args":[]},"build":{"id":"build","description":"start a build","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios|all)","options":["android","ios","all"]},"skip-credentials-check":{"name":"skip-credentials-check","type":"boolean","hidden":true,"allowNo":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"skip-project-configuration":{"name":"skip-project-configuration","type":"boolean","description":"Skip project configuration","allowNo":false},"profile":{"name":"profile","type":"option","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME"},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false},"local":{"name":"local","type":"boolean","description":"Run build locally [experimental]","allowNo":false},"wait":{"name":"wait","type":"boolean","description":"Wait for build(s) to complete","allowNo":true},"clear-cache":{"name":"clear-cache","type":"boolean","description":"Clear cache before the build","allowNo":false},"auto-submit":{"name":"auto-submit","type":"boolean","description":"Submit on build complete using the submit profile with the same name as the build profile","allowNo":false},"auto-submit-with-profile":{"name":"auto-submit-with-profile","type":"option","description":"Submit on build complete using the submit profile with provided name","helpValue":"PROFILE_NAME"}},"args":[]},"build:list":{"id":"build:list","description":"list all builds for your project","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","helpValue":"(all|android|ios)","options":["all","android","ios"]},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"status":{"name":"status","type":"option","helpValue":"(new|in-queue|in-progress|errored|finished|canceled)","options":["new","in-queue","in-progress","errored","finished","canceled"]},"distribution":{"name":"distribution","type":"option","helpValue":"(store|internal|simulator)","options":["store","internal","simulator"]},"channel":{"name":"channel","type":"option"},"appVersion":{"name":"appVersion","type":"option"},"appBuildVersion":{"name":"appBuildVersion","type":"option"},"sdkVersion":{"name":"sdkVersion","type":"option"},"runtimeVersion":{"name":"runtimeVersion","type":"option"},"appIdentifier":{"name":"appIdentifier","type":"option"},"buildProfile":{"name":"buildProfile","type":"option"},"gitCommitHash":{"name":"gitCommitHash","type":"option"},"limit":{"name":"limit","type":"option"}},"args":[]},"build:view":{"id":"build:view","description":"view a build for your project","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false}},"args":[{"name":"BUILD_ID"}]},"channel:create":{"id":"channel:create","description":"Create a channel on the current project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the new channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to create","required":false}]},"channel:edit":{"id":"channel:edit","description":"Point a channel at a new branch.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"Name of the branch to point to"},"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to edit","required":false}]},"channel:list":{"id":"channel:list","description":"List all channels on the current project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[]},"channel:rollout":{"id":"channel:rollout","description":"Rollout a new branch out to a channel incrementally.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"branch to rollout","required":false},"percent":{"name":"percent","type":"option","description":"percent of traffic to redirect to the new branch","required":false},"end":{"name":"end","type":"boolean","description":"end the rollout","allowNo":false},"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the new channel ID, name and branch mapping","allowNo":false}},"args":[{"name":"channel","description":"rollout that the channel is on","required":true}]},"channel:view":{"id":"channel:view","description":"View a channel on the current project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to view","required":false}]},"device:create":{"id":"device:create","description":"register new Apple Devices to use for internal distribution","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"device:list":{"id":"device:list","description":"list all registered devices for your account","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"apple-team-id":{"name":"apple-team-id","type":"option"}},"args":[]},"device:view":{"id":"device:view","description":"view a device for your project","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"UDID"}]},"project:info":{"id":"project:info","description":"information about the current project","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"project:init":{"id":"project:init","description":"create or link an EAS project","pluginName":"eas-cli","pluginType":"core","aliases":["init"],"flags":{},"args":[]},"secret:create":{"id":"secret:create","description":"Create an environment secret on the current project or owner account.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"scope":{"name":"scope","type":"option","description":"Scope for the secret","helpValue":"(account|project)","options":["account","project"],"default":"project"},"name":{"name":"name","type":"option","description":"Name of the secret"},"value":{"name":"value","type":"option","description":"Value of the secret"},"force":{"name":"force","type":"boolean","description":"Delete and recreate existing secrets","allowNo":false}},"args":[]},"secret:delete":{"id":"secret:delete","description":"Delete an environment secret by ID.\nUnsure where to find the secret's ID? Run eas secret:list","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"id":{"name":"id","type":"option","description":"ID of the secret to delete"}},"args":[]},"secret:list":{"id":"secret:list","description":"Lists environment secrets available for your current app","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"update:delete":{"id":"update:delete","description":"Delete all the updates in an update Group.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Return a json with the group ID of the deleted updates.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group to delete.","required":true}]},"update:view":{"id":"update:view","description":"Update group details.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Return a json with the updates belonging to the group.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group.","required":true}]},"webhook:create":{"id":"webhook:create","description":"Create a webhook on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","options":["BUILD","SUBMIT"]},"url":{"name":"url","type":"option","description":"Webhook URL"},"secret":{"name":"secret","type":"option","description":"Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header."}},"args":[]},"webhook:delete":{"id":"webhook:delete","description":"Delete a webhook on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"ID","description":"ID of the webhook to delete","required":false}]},"webhook:list":{"id":"webhook:list","description":"List webhooks on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","options":["BUILD","SUBMIT"]}},"args":[]},"webhook:update":{"id":"webhook:update","description":"Create a webhook on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"id":{"name":"id","type":"option","description":"Webhook ID","required":true},"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","options":["BUILD","SUBMIT"]},"url":{"name":"url","type":"option","description":"Webhook URL"},"secret":{"name":"secret","type":"option","description":"Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header."}},"args":[]},"webhook:view":{"id":"webhook:view","description":"View a webhook on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"ID","description":"ID of the webhook to view","required":true}]}}}
|
|
1
|
+
{"version":"0.39.0","commands":{"analytics":{"id":"analytics","description":"view or change analytics settings","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"STATUS","options":["on","off"]}]},"config":{"id":"config","description":"show the eas.json config","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios)","options":["android","ios"]},"profile":{"name":"profile","type":"option"}},"args":[]},"credentials":{"id":"credentials","description":"manage your credentials","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"diagnostics":{"id":"diagnostics","description":"log environment info to the console","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"submit":{"id":"submit","description":"submit build archive to App Store Connect\nSee how to configure submits with eas.json: https://docs.expo.dev/submit/eas-json/","pluginName":"eas-cli","pluginType":"core","aliases":["build:submit"],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios|all)","options":["android","ios","all"]},"profile":{"name":"profile","type":"option","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json."},"latest":{"name":"latest","type":"boolean","description":"Submit the latest build for specified platform","allowNo":false},"id":{"name":"id","type":"option","description":"ID of the build to submit"},"path":{"name":"path","type":"option","description":"Path to the .apk/.aab/.ipa file"},"url":{"name":"url","type":"option","description":"App archive url"},"verbose":{"name":"verbose","type":"boolean","description":"Always print logs from Submission Service","allowNo":false},"wait":{"name":"wait","type":"boolean","description":"Wait for submission to complete","allowNo":true},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false}},"args":[]},"account:login":{"id":"account:login","description":"log in with your Expo account","pluginName":"eas-cli","pluginType":"core","aliases":["login"],"flags":{},"args":[]},"account:logout":{"id":"account:logout","description":"log out","pluginName":"eas-cli","pluginType":"core","aliases":["logout"],"flags":{},"args":[]},"account:view":{"id":"account:view","description":"show the username you are logged in as","pluginName":"eas-cli","pluginType":"core","aliases":["whoami"],"flags":{},"args":[]},"branch:create":{"id":"branch:create","description":"Create a branch on the current project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return a json with the new branch ID and name.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to create","required":false}]},"branch:delete":{"id":"branch:delete","description":"Republish an update group","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return JSON with the edited branch's ID and name.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to delete","required":false}]},"branch:list":{"id":"branch:list","description":"List all branches on this project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return output as JSON","allowNo":false}},"args":[]},"branch:publish":{"id":"branch:publish","description":"Publish an update group to a branch.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"message":{"name":"message","type":"option","description":"short message describing the updates.","required":false},"republish":{"name":"republish","type":"boolean","description":"republish an update group","allowNo":false},"group":{"name":"group","type":"option","description":"update group to republish"},"input-dir":{"name":"input-dir","type":"option","description":"location of the bundle","required":false,"default":"dist"},"skip-bundler":{"name":"skip-bundler","type":"boolean","description":"skip running Expo CLI to bundle the app before publishing","allowNo":false},"platform":{"name":"platform","type":"option","char":"p","description":"only publish to a single platform","required":false,"helpValue":"(android|ios|all)","options":["android","ios","all"],"default":"all"},"json":{"name":"json","type":"boolean","description":"return a json with the new update group.","allowNo":false},"auto":{"name":"auto","type":"boolean","description":"use the current git branch and commit message for the EAS branch and update message","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to publish on"}]},"branch:rename":{"id":"branch:rename","description":"Rename a branch.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"from":{"name":"from","type":"option","description":"current name of the branch.","required":false},"to":{"name":"to","type":"option","description":"new name of the branch.","required":false},"json":{"name":"json","type":"boolean","description":"return a json with the edited branch's ID and name.","allowNo":false}},"args":[]},"branch:view":{"id":"branch:view","description":"View a branch.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return a json with the branch's ID name and recent update groups.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to view","required":false}]},"build:cancel":{"id":"build:cancel","description":"Cancel a build.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"BUILD_ID"}]},"build:configure":{"id":"build:configure","description":"Configure the project to support EAS Build.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","description":"Platform to configure","helpValue":"(android|ios|all)","options":["android","ios","all"]}},"args":[]},"build":{"id":"build","description":"start a build","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios|all)","options":["android","ios","all"]},"skip-credentials-check":{"name":"skip-credentials-check","type":"boolean","hidden":true,"allowNo":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"skip-project-configuration":{"name":"skip-project-configuration","type":"boolean","description":"Skip project configuration","allowNo":false},"profile":{"name":"profile","type":"option","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME"},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false},"local":{"name":"local","type":"boolean","description":"Run build locally [experimental]","allowNo":false},"wait":{"name":"wait","type":"boolean","description":"Wait for build(s) to complete","allowNo":true},"clear-cache":{"name":"clear-cache","type":"boolean","description":"Clear cache before the build","allowNo":false},"auto-submit":{"name":"auto-submit","type":"boolean","description":"Submit on build complete using the submit profile with the same name as the build profile","allowNo":false},"auto-submit-with-profile":{"name":"auto-submit-with-profile","type":"option","description":"Submit on build complete using the submit profile with provided name","helpValue":"PROFILE_NAME"}},"args":[]},"build:list":{"id":"build:list","description":"list all builds for your project","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","helpValue":"(all|android|ios)","options":["all","android","ios"]},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"status":{"name":"status","type":"option","helpValue":"(new|in-queue|in-progress|errored|finished|canceled)","options":["new","in-queue","in-progress","errored","finished","canceled"]},"distribution":{"name":"distribution","type":"option","helpValue":"(store|internal|simulator)","options":["store","internal","simulator"]},"channel":{"name":"channel","type":"option"},"appVersion":{"name":"appVersion","type":"option"},"appBuildVersion":{"name":"appBuildVersion","type":"option"},"sdkVersion":{"name":"sdkVersion","type":"option"},"runtimeVersion":{"name":"runtimeVersion","type":"option"},"appIdentifier":{"name":"appIdentifier","type":"option"},"buildProfile":{"name":"buildProfile","type":"option"},"gitCommitHash":{"name":"gitCommitHash","type":"option"},"limit":{"name":"limit","type":"option"}},"args":[]},"build:view":{"id":"build:view","description":"view a build for your project","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false}},"args":[{"name":"BUILD_ID"}]},"channel:create":{"id":"channel:create","description":"Create a channel on the current project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the new channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to create","required":false}]},"channel:edit":{"id":"channel:edit","description":"Point a channel at a new branch.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"Name of the branch to point to"},"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to edit","required":false}]},"channel:list":{"id":"channel:list","description":"List all channels on the current project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[]},"channel:rollout":{"id":"channel:rollout","description":"Rollout a new branch out to a channel incrementally.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"branch to rollout","required":false},"percent":{"name":"percent","type":"option","description":"percent of traffic to redirect to the new branch","required":false},"end":{"name":"end","type":"boolean","description":"end the rollout","allowNo":false},"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the new channel ID, name and branch mapping","allowNo":false}},"args":[{"name":"channel","description":"rollout that the channel is on","required":true}]},"channel:view":{"id":"channel:view","description":"View a channel on the current project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to view","required":false}]},"device:create":{"id":"device:create","description":"register new Apple Devices to use for internal distribution","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"device:list":{"id":"device:list","description":"list all registered devices for your account","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"apple-team-id":{"name":"apple-team-id","type":"option"}},"args":[]},"device:view":{"id":"device:view","description":"view a device for your project","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"UDID"}]},"project:info":{"id":"project:info","description":"information about the current project","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"project:init":{"id":"project:init","description":"create or link an EAS project","pluginName":"eas-cli","pluginType":"core","aliases":["init"],"flags":{},"args":[]},"secret:create":{"id":"secret:create","description":"Create an environment secret on the current project or owner account.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"scope":{"name":"scope","type":"option","description":"Scope for the secret","helpValue":"(account|project)","options":["account","project"],"default":"project"},"name":{"name":"name","type":"option","description":"Name of the secret"},"value":{"name":"value","type":"option","description":"Value of the secret"},"force":{"name":"force","type":"boolean","description":"Delete and recreate existing secrets","allowNo":false}},"args":[]},"secret:delete":{"id":"secret:delete","description":"Delete an environment secret by ID.\nUnsure where to find the secret's ID? Run eas secret:list","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"id":{"name":"id","type":"option","description":"ID of the secret to delete"}},"args":[]},"secret:list":{"id":"secret:list","description":"Lists environment secrets available for your current app","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"update:configure":{"id":"update:configure","description":"Configure the project to support EAS Update.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"update:delete":{"id":"update:delete","description":"Delete all the updates in an update Group.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Return a json with the group ID of the deleted updates.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group to delete.","required":true}]},"update:view":{"id":"update:view","description":"Update group details.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Return a json with the updates belonging to the group.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group.","required":true}]},"webhook:create":{"id":"webhook:create","description":"Create a webhook on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","options":["BUILD","SUBMIT"]},"url":{"name":"url","type":"option","description":"Webhook URL"},"secret":{"name":"secret","type":"option","description":"Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header."}},"args":[]},"webhook:delete":{"id":"webhook:delete","description":"Delete a webhook on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"ID","description":"ID of the webhook to delete","required":false}]},"webhook:list":{"id":"webhook:list","description":"List webhooks on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","options":["BUILD","SUBMIT"]}},"args":[]},"webhook:update":{"id":"webhook:update","description":"Create a webhook on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"id":{"name":"id","type":"option","description":"Webhook ID","required":true},"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","options":["BUILD","SUBMIT"]},"url":{"name":"url","type":"option","description":"Webhook URL"},"secret":{"name":"secret","type":"option","description":"Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header."}},"args":[]},"webhook:view":{"id":"webhook:view","description":"View a webhook on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"ID","description":"ID of the webhook to view","required":true}]}}}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eas-cli",
|
|
3
3
|
"description": "EAS command line tool",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.39.0",
|
|
5
5
|
"author": "Expo <support@expo.dev>",
|
|
6
6
|
"bin": {
|
|
7
7
|
"eas": "./bin/run"
|
|
@@ -9,18 +9,17 @@
|
|
|
9
9
|
"bugs": "https://github.com/expo/eas-cli/issues",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@expo/apple-utils": "0.0.0-alpha.26",
|
|
12
|
-
"@expo/config": "6.0.
|
|
13
|
-
"@expo/config-plugins": "4.0.
|
|
14
|
-
"@expo/eas-build-job": "0.2.
|
|
15
|
-
"@expo/eas-json": "^0.
|
|
16
|
-
"@expo/json-file": "8.2.
|
|
17
|
-
"@expo/pkcs12": "0.0.
|
|
18
|
-
"@expo/plist": "0.0.
|
|
19
|
-
"@expo/plugin-warn-if-update-available": "1.7.
|
|
20
|
-
"@expo/prebuild-config": "3.0.
|
|
12
|
+
"@expo/config": "6.0.11",
|
|
13
|
+
"@expo/config-plugins": "4.0.11",
|
|
14
|
+
"@expo/eas-build-job": "0.2.61",
|
|
15
|
+
"@expo/eas-json": "^0.39.0",
|
|
16
|
+
"@expo/json-file": "8.2.34",
|
|
17
|
+
"@expo/pkcs12": "0.0.6",
|
|
18
|
+
"@expo/plist": "0.0.16",
|
|
19
|
+
"@expo/plugin-warn-if-update-available": "1.7.1",
|
|
20
|
+
"@expo/prebuild-config": "3.0.11",
|
|
21
21
|
"@expo/results": "1.0.0",
|
|
22
22
|
"@expo/rudder-sdk-node": "1.1.1",
|
|
23
|
-
"@expo/sdk-runtime-versions": "1.0.0",
|
|
24
23
|
"@expo/spawn-async": "1.5.0",
|
|
25
24
|
"@expo/timeago.js": "1.0.0",
|
|
26
25
|
"@oclif/command": "1.8.3",
|
|
@@ -96,7 +95,8 @@
|
|
|
96
95
|
"mockdate": "^3.0.2",
|
|
97
96
|
"nock": "^13.0.5",
|
|
98
97
|
"tempy": "0.7.0",
|
|
99
|
-
"ts-deepmerge": "1.0.8"
|
|
98
|
+
"ts-deepmerge": "1.0.8",
|
|
99
|
+
"typescript": "4.5.2"
|
|
100
100
|
},
|
|
101
101
|
"engines": {
|
|
102
102
|
"node": ">=12.0.0"
|
|
@@ -179,5 +179,5 @@
|
|
|
179
179
|
"generate-graphql-code": "graphql-codegen --config graphql-codegen.yml",
|
|
180
180
|
"clean": "rm -rf dist build node_modules yarn-error.log"
|
|
181
181
|
},
|
|
182
|
-
"gitHead": "
|
|
182
|
+
"gitHead": "a344c11ba143819d4e3ac0b0ebcea1d69d7de2b5"
|
|
183
183
|
}
|