eas-cli 3.9.3 → 3.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -53
- package/build/build/android/prepareJob.js +1 -1
- package/build/build/ios/prepareJob.js +1 -1
- package/build/build/utils/resourceClass.js +9 -5
- package/build/commands/device/delete.js +5 -2
- package/build/commands/device/rename.d.ts +24 -0
- package/build/commands/device/rename.js +127 -0
- package/build/credentials/ios/api/graphql/mutations/AppleDeviceMutation.d.ts +2 -1
- package/build/credentials/ios/api/graphql/mutations/AppleDeviceMutation.js +22 -0
- package/build/devices/actions/create/inputMethod.js +1 -1
- package/build/graphql/generated.d.ts +133 -22
- package/build/graphql/generated.js +7 -2
- package/build/ora.js +3 -1
- package/build/project/publish.js +1 -1
- package/build/utils/profiles.d.ts +5 -0
- package/build/utils/profiles.js +12 -4
- package/oclif.manifest.json +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const apple_utils_1 = require("@expo/apple-utils");
|
|
6
|
+
const core_1 = require("@oclif/core");
|
|
7
|
+
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
8
|
+
const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
|
|
9
|
+
const flags_1 = require("../../commandUtils/flags");
|
|
10
|
+
const pagination_1 = require("../../commandUtils/pagination");
|
|
11
|
+
const AppleDeviceMutation_1 = require("../../credentials/ios/api/graphql/mutations/AppleDeviceMutation");
|
|
12
|
+
const AppleDeviceQuery_1 = require("../../credentials/ios/api/graphql/queries/AppleDeviceQuery");
|
|
13
|
+
const authenticate_1 = require("../../credentials/ios/appstore/authenticate");
|
|
14
|
+
const queries_1 = require("../../devices/queries");
|
|
15
|
+
const formatDevice_1 = tslib_1.__importDefault(require("../../devices/utils/formatDevice"));
|
|
16
|
+
const log_1 = tslib_1.__importDefault(require("../../log"));
|
|
17
|
+
const ora_1 = require("../../ora");
|
|
18
|
+
const projectUtils_1 = require("../../project/projectUtils");
|
|
19
|
+
const prompts_1 = require("../../prompts");
|
|
20
|
+
const json_1 = require("../../utils/json");
|
|
21
|
+
class DeviceRename extends EasCommand_1.default {
|
|
22
|
+
async runAsync() {
|
|
23
|
+
const { flags } = await this.parse(DeviceRename);
|
|
24
|
+
const paginatedQueryOptions = (0, pagination_1.getPaginatedQueryOptions)(flags);
|
|
25
|
+
let { 'apple-team-id': appleTeamIdentifier, udid, name } = flags;
|
|
26
|
+
const { projectConfig: { projectId }, loggedIn: { graphqlClient }, } = await this.getContextAsync(DeviceRename, {
|
|
27
|
+
nonInteractive: paginatedQueryOptions.nonInteractive,
|
|
28
|
+
});
|
|
29
|
+
const account = await (0, projectUtils_1.getOwnerAccountForProjectIdAsync)(graphqlClient, projectId);
|
|
30
|
+
let appleTeamName;
|
|
31
|
+
if (paginatedQueryOptions.json) {
|
|
32
|
+
(0, json_1.enableJsonOutput)();
|
|
33
|
+
}
|
|
34
|
+
let appleTeam;
|
|
35
|
+
if (!appleTeamIdentifier) {
|
|
36
|
+
appleTeam = await (0, queries_1.selectAppleTeamOnAccountAsync)(graphqlClient, {
|
|
37
|
+
accountName: account.name,
|
|
38
|
+
selectionPromptTitle: `What Apple team would you like to list devices for?`,
|
|
39
|
+
paginatedQueryOptions,
|
|
40
|
+
});
|
|
41
|
+
appleTeamIdentifier = appleTeam.appleTeamIdentifier;
|
|
42
|
+
appleTeamName = appleTeam.appleTeamName;
|
|
43
|
+
}
|
|
44
|
+
(0, assert_1.default)(appleTeamIdentifier, 'No team identifier is specified');
|
|
45
|
+
const chosenDevice = udid
|
|
46
|
+
? await AppleDeviceQuery_1.AppleDeviceQuery.getByDeviceIdentifierAsync(graphqlClient, account.name, udid)
|
|
47
|
+
: await (0, queries_1.selectAppleDeviceOnAppleTeamAsync)(graphqlClient, {
|
|
48
|
+
accountName: account.name,
|
|
49
|
+
appleTeamIdentifier,
|
|
50
|
+
selectionPromptTitle: `Which device would you like to rename?`,
|
|
51
|
+
paginatedQueryOptions,
|
|
52
|
+
});
|
|
53
|
+
const newDeviceName = name ? name : await this.promptForNewDeviceNameAsync(chosenDevice.name);
|
|
54
|
+
this.logChosenDevice(chosenDevice, appleTeamName, appleTeamIdentifier, paginatedQueryOptions);
|
|
55
|
+
await this.renameDeviceOnExpoAsync(graphqlClient, chosenDevice, newDeviceName);
|
|
56
|
+
await this.renameDeviceOnAppleAsync(chosenDevice, appleTeamIdentifier, newDeviceName);
|
|
57
|
+
}
|
|
58
|
+
async promptForNewDeviceNameAsync(initial) {
|
|
59
|
+
const { name } = await (0, prompts_1.promptAsync)({
|
|
60
|
+
type: 'text',
|
|
61
|
+
name: 'name',
|
|
62
|
+
message: 'New device name:',
|
|
63
|
+
initial: initial !== null && initial !== void 0 ? initial : undefined,
|
|
64
|
+
});
|
|
65
|
+
return name;
|
|
66
|
+
}
|
|
67
|
+
async renameDeviceOnExpoAsync(graphqlClient, chosenDevice, newDeviceName) {
|
|
68
|
+
const removalSpinner = (0, ora_1.ora)(`Renaming Apple device on Expo`).start();
|
|
69
|
+
try {
|
|
70
|
+
await AppleDeviceMutation_1.AppleDeviceMutation.updateAppleDeviceAsync(graphqlClient, chosenDevice.id, {
|
|
71
|
+
name: newDeviceName,
|
|
72
|
+
});
|
|
73
|
+
removalSpinner.succeed('Renamed Apple device on Expo');
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
removalSpinner.fail();
|
|
77
|
+
throw err;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async renameDeviceOnAppleAsync(device, appleTeamIdentifier, newDeviceName) {
|
|
81
|
+
const ctx = await (0, authenticate_1.authenticateAsync)({ teamId: appleTeamIdentifier });
|
|
82
|
+
const context = (0, authenticate_1.getRequestContext)(ctx);
|
|
83
|
+
log_1.default.addNewLineIfNone();
|
|
84
|
+
const removeAppleSpinner = (0, ora_1.ora)('Renaming device on Apple').start();
|
|
85
|
+
try {
|
|
86
|
+
const appleValidatedDevices = await apple_utils_1.Device.getAsync(context);
|
|
87
|
+
const appleValidatedDevice = appleValidatedDevices.find(d => d.attributes.udid === device.identifier);
|
|
88
|
+
if (appleValidatedDevice) {
|
|
89
|
+
await appleValidatedDevice.updateAsync({ name: newDeviceName });
|
|
90
|
+
removeAppleSpinner.succeed('Renamed device on Apple');
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
removeAppleSpinner.warn('Device not found on Apple Developer Portal. Expo-registered devices will not appear there until they are chosen for an internal distribution build.');
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
removeAppleSpinner.fail();
|
|
98
|
+
throw err;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
logChosenDevice(device, appleTeamName, appleTeamIdentifier, { json }) {
|
|
102
|
+
if (json) {
|
|
103
|
+
(0, json_1.printJsonOnlyOutput)(device);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
log_1.default.addNewLineIfNone();
|
|
107
|
+
log_1.default.log((0, formatDevice_1.default)(device, {
|
|
108
|
+
appleTeamName,
|
|
109
|
+
appleTeamIdentifier: appleTeamIdentifier,
|
|
110
|
+
}));
|
|
111
|
+
log_1.default.newLine();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.default = DeviceRename;
|
|
116
|
+
_a = DeviceRename;
|
|
117
|
+
DeviceRename.description = 'rename a registered device';
|
|
118
|
+
DeviceRename.flags = {
|
|
119
|
+
'apple-team-id': core_1.Flags.string({ description: 'The Apple team ID on which to find the device' }),
|
|
120
|
+
udid: core_1.Flags.string({ description: 'The Apple device ID to rename' }),
|
|
121
|
+
name: core_1.Flags.string({ description: 'The new name for the device' }),
|
|
122
|
+
...flags_1.EasNonInteractiveAndJsonFlags,
|
|
123
|
+
};
|
|
124
|
+
DeviceRename.contextDefinition = {
|
|
125
|
+
..._a.ContextOptions.ProjectConfig,
|
|
126
|
+
..._a.ContextOptions.LoggedIn,
|
|
127
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ExpoGraphqlClient } from '../../../../../commandUtils/context/contextUtils/createGraphqlClient';
|
|
2
|
-
import { AppleDeviceFragment, AppleDeviceInput } from '../../../../../graphql/generated';
|
|
2
|
+
import { AppleDeviceFragment, AppleDeviceInput, AppleDeviceUpdateInput } from '../../../../../graphql/generated';
|
|
3
3
|
export declare const AppleDeviceMutation: {
|
|
4
4
|
createAppleDeviceAsync(graphqlClient: ExpoGraphqlClient, appleDeviceInput: AppleDeviceInput, accountId: string): Promise<AppleDeviceFragment>;
|
|
5
5
|
deleteAppleDeviceAsync(graphqlClient: ExpoGraphqlClient, deviceId: string): Promise<string>;
|
|
6
|
+
updateAppleDeviceAsync(graphqlClient: ExpoGraphqlClient, id: string, appleDeviceUpdateInput: AppleDeviceUpdateInput): Promise<AppleDeviceFragment>;
|
|
6
7
|
};
|
|
@@ -45,4 +45,26 @@ exports.AppleDeviceMutation = {
|
|
|
45
45
|
.toPromise());
|
|
46
46
|
return data.id;
|
|
47
47
|
},
|
|
48
|
+
async updateAppleDeviceAsync(graphqlClient, id, appleDeviceUpdateInput) {
|
|
49
|
+
const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
50
|
+
.mutation((0, graphql_tag_1.default) `
|
|
51
|
+
mutation UpdateAppleDeviceMutation(
|
|
52
|
+
$id: ID!
|
|
53
|
+
$appleDeviceUpdateInput: AppleDeviceUpdateInput!
|
|
54
|
+
) {
|
|
55
|
+
appleDevice {
|
|
56
|
+
updateAppleDevice(id: $id, appleDeviceUpdateInput: $appleDeviceUpdateInput) {
|
|
57
|
+
id
|
|
58
|
+
...AppleDeviceFragment
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
${(0, graphql_1.print)(AppleDevice_1.AppleDeviceFragmentNode)}
|
|
63
|
+
`, {
|
|
64
|
+
id,
|
|
65
|
+
appleDeviceUpdateInput,
|
|
66
|
+
})
|
|
67
|
+
.toPromise());
|
|
68
|
+
return data.appleDevice.updateAppleDevice;
|
|
69
|
+
},
|
|
48
70
|
};
|
|
@@ -52,7 +52,7 @@ async function collectDeviceDataAsync(appleTeam, initialValues = {}) {
|
|
|
52
52
|
};
|
|
53
53
|
log_1.default.newLine();
|
|
54
54
|
log_1.default.log(`We are going to register the following device in our database.
|
|
55
|
-
This will ${chalk_1.default.bold('not')}
|
|
55
|
+
This device will ${chalk_1.default.bold('not')} be registered on the Apple Developer Portal until it is chosen for an internal distribution build.`);
|
|
56
56
|
log_1.default.newLine();
|
|
57
57
|
log_1.default.log((0, formatDevice_1.formatNewDevice)({ ...deviceData, identifier: deviceData.udid }, appleTeam));
|
|
58
58
|
log_1.default.newLine();
|
|
@@ -84,6 +84,7 @@ export type Account = {
|
|
|
84
84
|
appleTeams: Array<AppleTeam>;
|
|
85
85
|
/** Apps associated with this account */
|
|
86
86
|
apps: Array<App>;
|
|
87
|
+
appsPaginated: AccountAppsConnection;
|
|
87
88
|
/** @deprecated Build packs are no longer supported */
|
|
88
89
|
availableBuilds?: Maybe<Scalars['Int']>;
|
|
89
90
|
/** Billing information. Only visible to members with the ADMIN or OWNER role. */
|
|
@@ -194,6 +195,16 @@ export type AccountAppsArgs = {
|
|
|
194
195
|
limit: Scalars['Int'];
|
|
195
196
|
offset: Scalars['Int'];
|
|
196
197
|
};
|
|
198
|
+
/**
|
|
199
|
+
* An account is a container owning projects, credentials, billing and other organization
|
|
200
|
+
* data and settings. Actors may own and be members of accounts.
|
|
201
|
+
*/
|
|
202
|
+
export type AccountAppsPaginatedArgs = {
|
|
203
|
+
after?: InputMaybe<Scalars['String']>;
|
|
204
|
+
before?: InputMaybe<Scalars['String']>;
|
|
205
|
+
first?: InputMaybe<Scalars['Int']>;
|
|
206
|
+
last?: InputMaybe<Scalars['Int']>;
|
|
207
|
+
};
|
|
197
208
|
/**
|
|
198
209
|
* An account is a container owning projects, credentials, billing and other organization
|
|
199
210
|
* data and settings. Actors may own and be members of accounts.
|
|
@@ -254,6 +265,16 @@ export type AccountTimelineActivityArgs = {
|
|
|
254
265
|
first?: InputMaybe<Scalars['Int']>;
|
|
255
266
|
last?: InputMaybe<Scalars['Int']>;
|
|
256
267
|
};
|
|
268
|
+
export type AccountAppsConnection = {
|
|
269
|
+
__typename?: 'AccountAppsConnection';
|
|
270
|
+
edges: Array<AccountAppsEdge>;
|
|
271
|
+
pageInfo: PageInfo;
|
|
272
|
+
};
|
|
273
|
+
export type AccountAppsEdge = {
|
|
274
|
+
__typename?: 'AccountAppsEdge';
|
|
275
|
+
cursor: Scalars['String'];
|
|
276
|
+
node: App;
|
|
277
|
+
};
|
|
257
278
|
export type AccountDataInput = {
|
|
258
279
|
name: Scalars['String'];
|
|
259
280
|
};
|
|
@@ -264,6 +285,8 @@ export type AccountMutation = {
|
|
|
264
285
|
* @deprecated Build packs are no longer supported
|
|
265
286
|
*/
|
|
266
287
|
buyProduct?: Maybe<Account>;
|
|
288
|
+
/** Cancels all subscriptions immediately */
|
|
289
|
+
cancelAllSubscriptionsImmediately: Account;
|
|
267
290
|
/** Cancel scheduled subscription change */
|
|
268
291
|
cancelScheduledSubscriptionChange: Account;
|
|
269
292
|
/** Cancels the active subscription */
|
|
@@ -294,6 +317,9 @@ export type AccountMutationBuyProductArgs = {
|
|
|
294
317
|
paymentSource?: InputMaybe<Scalars['ID']>;
|
|
295
318
|
productId: Scalars['ID'];
|
|
296
319
|
};
|
|
320
|
+
export type AccountMutationCancelAllSubscriptionsImmediatelyArgs = {
|
|
321
|
+
accountID: Scalars['ID'];
|
|
322
|
+
};
|
|
297
323
|
export type AccountMutationCancelScheduledSubscriptionChangeArgs = {
|
|
298
324
|
accountID: Scalars['ID'];
|
|
299
325
|
};
|
|
@@ -429,6 +455,7 @@ export type AccountSsoConfigurationPublicDataQueryPublicDataByAccountNameArgs =
|
|
|
429
455
|
};
|
|
430
456
|
export type AccountUsageEasBuildMetadata = {
|
|
431
457
|
__typename?: 'AccountUsageEASBuildMetadata';
|
|
458
|
+
billingResourceClass: EasBuildBillingResourceClass;
|
|
432
459
|
platform: AppPlatform;
|
|
433
460
|
};
|
|
434
461
|
export type AccountUsageMetadata = AccountUsageEasBuildMetadata;
|
|
@@ -834,6 +861,8 @@ export type App = Project & {
|
|
|
834
861
|
isLikedByMe: Scalars['Boolean'];
|
|
835
862
|
/** @deprecated No longer supported */
|
|
836
863
|
lastPublishedTime: Scalars['DateTime'];
|
|
864
|
+
/** Time of the last user activity (update, branch, submission). */
|
|
865
|
+
latestActivity: Scalars['DateTime'];
|
|
837
866
|
latestAppVersionByPlatformAndApplicationIdentifier?: Maybe<AppVersion>;
|
|
838
867
|
latestReleaseForReleaseChannel?: Maybe<AppRelease>;
|
|
839
868
|
/** ID of latest classic update release */
|
|
@@ -860,6 +889,7 @@ export type App = Project & {
|
|
|
860
889
|
releaseChannels: Array<Scalars['String']>;
|
|
861
890
|
/** @deprecated Legacy access tokens are deprecated */
|
|
862
891
|
requiresAccessTokenForPushSecurity: Scalars['Boolean'];
|
|
892
|
+
scopeKey: Scalars['String'];
|
|
863
893
|
/** SDK version of the latest classic update publish, 0.0.0 otherwise */
|
|
864
894
|
sdkVersion: Scalars['String'];
|
|
865
895
|
slug: Scalars['String'];
|
|
@@ -1342,6 +1372,8 @@ export type AppleDeviceMutation = {
|
|
|
1342
1372
|
createAppleDevice: AppleDevice;
|
|
1343
1373
|
/** Delete an Apple Device */
|
|
1344
1374
|
deleteAppleDevice: DeleteAppleDeviceResult;
|
|
1375
|
+
/** Update an Apple Device */
|
|
1376
|
+
updateAppleDevice: AppleDevice;
|
|
1345
1377
|
};
|
|
1346
1378
|
export type AppleDeviceMutationCreateAppleDeviceArgs = {
|
|
1347
1379
|
accountId: Scalars['ID'];
|
|
@@ -1350,6 +1382,10 @@ export type AppleDeviceMutationCreateAppleDeviceArgs = {
|
|
|
1350
1382
|
export type AppleDeviceMutationDeleteAppleDeviceArgs = {
|
|
1351
1383
|
id: Scalars['ID'];
|
|
1352
1384
|
};
|
|
1385
|
+
export type AppleDeviceMutationUpdateAppleDeviceArgs = {
|
|
1386
|
+
appleDeviceUpdateInput: AppleDeviceUpdateInput;
|
|
1387
|
+
id: Scalars['ID'];
|
|
1388
|
+
};
|
|
1353
1389
|
export type AppleDeviceRegistrationRequest = {
|
|
1354
1390
|
__typename?: 'AppleDeviceRegistrationRequest';
|
|
1355
1391
|
account: Account;
|
|
@@ -1372,6 +1408,9 @@ export type AppleDeviceRegistrationRequestQuery = {
|
|
|
1372
1408
|
export type AppleDeviceRegistrationRequestQueryByIdArgs = {
|
|
1373
1409
|
id: Scalars['ID'];
|
|
1374
1410
|
};
|
|
1411
|
+
export type AppleDeviceUpdateInput = {
|
|
1412
|
+
name?: InputMaybe<Scalars['String']>;
|
|
1413
|
+
};
|
|
1375
1414
|
export type AppleDistributionCertificate = {
|
|
1376
1415
|
__typename?: 'AppleDistributionCertificate';
|
|
1377
1416
|
account: Account;
|
|
@@ -1609,6 +1648,8 @@ export type Build = ActivityTimelineProjectActivity & BuildOrBuildJob & {
|
|
|
1609
1648
|
expirationDate?: Maybe<Scalars['DateTime']>;
|
|
1610
1649
|
gitCommitHash?: Maybe<Scalars['String']>;
|
|
1611
1650
|
gitCommitMessage?: Maybe<Scalars['String']>;
|
|
1651
|
+
gitRef?: Maybe<Scalars['String']>;
|
|
1652
|
+
githubRepositoryOwnerAndName?: Maybe<Scalars['String']>;
|
|
1612
1653
|
id: Scalars['ID'];
|
|
1613
1654
|
/** Queue position is 1-indexed */
|
|
1614
1655
|
initialQueuePosition?: Maybe<Scalars['Int']>;
|
|
@@ -1627,6 +1668,7 @@ export type Build = ActivityTimelineProjectActivity & BuildOrBuildJob & {
|
|
|
1627
1668
|
platform: AppPlatform;
|
|
1628
1669
|
priority: BuildPriority;
|
|
1629
1670
|
project: Project;
|
|
1671
|
+
projectRootDirectory?: Maybe<Scalars['String']>;
|
|
1630
1672
|
provisioningStartedAt?: Maybe<Scalars['DateTime']>;
|
|
1631
1673
|
/** Queue position is 1-indexed */
|
|
1632
1674
|
queuePosition?: Maybe<Scalars['Int']>;
|
|
@@ -1664,7 +1706,6 @@ export type BuildArtifacts = {
|
|
|
1664
1706
|
xcodeBuildLogsUrl?: Maybe<Scalars['String']>;
|
|
1665
1707
|
};
|
|
1666
1708
|
export type BuildCacheInput = {
|
|
1667
|
-
cacheDefaultPaths?: InputMaybe<Scalars['Boolean']>;
|
|
1668
1709
|
clear?: InputMaybe<Scalars['Boolean']>;
|
|
1669
1710
|
customPaths?: InputMaybe<Array<InputMaybe<Scalars['String']>>>;
|
|
1670
1711
|
disabled?: InputMaybe<Scalars['Boolean']>;
|
|
@@ -1730,9 +1771,7 @@ export declare enum BuildJobLogsFormat {
|
|
|
1730
1771
|
}
|
|
1731
1772
|
export type BuildJobMutation = {
|
|
1732
1773
|
__typename?: 'BuildJobMutation';
|
|
1733
|
-
cancel: BuildJob;
|
|
1734
1774
|
del?: Maybe<BuildJob>;
|
|
1735
|
-
restart: BuildJob;
|
|
1736
1775
|
};
|
|
1737
1776
|
export type BuildJobQuery = {
|
|
1738
1777
|
__typename?: 'BuildJobQuery';
|
|
@@ -1994,23 +2033,6 @@ export type Charge = {
|
|
|
1994
2033
|
receiptUrl?: Maybe<Scalars['String']>;
|
|
1995
2034
|
wasRefunded: Scalars['Boolean'];
|
|
1996
2035
|
};
|
|
1997
|
-
/** Represents a client build request */
|
|
1998
|
-
export type ClientBuild = {
|
|
1999
|
-
__typename?: 'ClientBuild';
|
|
2000
|
-
buildJobId?: Maybe<Scalars['String']>;
|
|
2001
|
-
id: Scalars['ID'];
|
|
2002
|
-
manifestPlistUrl?: Maybe<Scalars['String']>;
|
|
2003
|
-
status?: Maybe<Scalars['String']>;
|
|
2004
|
-
userFacingErrorMessage?: Maybe<Scalars['String']>;
|
|
2005
|
-
userId?: Maybe<Scalars['String']>;
|
|
2006
|
-
};
|
|
2007
|
-
export type ClientBuildQuery = {
|
|
2008
|
-
__typename?: 'ClientBuildQuery';
|
|
2009
|
-
byId: ClientBuild;
|
|
2010
|
-
};
|
|
2011
|
-
export type ClientBuildQueryByIdArgs = {
|
|
2012
|
-
requestId: Scalars['ID'];
|
|
2013
|
-
};
|
|
2014
2036
|
export type CodeSigningInfo = {
|
|
2015
2037
|
__typename?: 'CodeSigningInfo';
|
|
2016
2038
|
alg: Scalars['String'];
|
|
@@ -2127,6 +2149,10 @@ export type DeleteEnvironmentSecretResult = {
|
|
|
2127
2149
|
__typename?: 'DeleteEnvironmentSecretResult';
|
|
2128
2150
|
id: Scalars['ID'];
|
|
2129
2151
|
};
|
|
2152
|
+
export type DeleteGitHubUserResult = {
|
|
2153
|
+
__typename?: 'DeleteGitHubUserResult';
|
|
2154
|
+
id: Scalars['ID'];
|
|
2155
|
+
};
|
|
2130
2156
|
export type DeleteGoogleServiceAccountKeyResult = {
|
|
2131
2157
|
__typename?: 'DeleteGoogleServiceAccountKeyResult';
|
|
2132
2158
|
id: Scalars['ID'];
|
|
@@ -2226,6 +2252,10 @@ export declare enum DistributionType {
|
|
|
2226
2252
|
Simulator = "SIMULATOR",
|
|
2227
2253
|
Store = "STORE"
|
|
2228
2254
|
}
|
|
2255
|
+
export declare enum EasBuildBillingResourceClass {
|
|
2256
|
+
Large = "LARGE",
|
|
2257
|
+
Medium = "MEDIUM"
|
|
2258
|
+
}
|
|
2229
2259
|
export type EasBuildDeprecationInfo = {
|
|
2230
2260
|
__typename?: 'EASBuildDeprecationInfo';
|
|
2231
2261
|
message: Scalars['String'];
|
|
@@ -2425,6 +2455,14 @@ export declare enum GitHubAppInstallationStatus {
|
|
|
2425
2455
|
NotInstalled = "NOT_INSTALLED",
|
|
2426
2456
|
Suspended = "SUSPENDED"
|
|
2427
2457
|
}
|
|
2458
|
+
export type GitHubAppMutation = {
|
|
2459
|
+
__typename?: 'GitHubAppMutation';
|
|
2460
|
+
/** Create a GitHub build for an app */
|
|
2461
|
+
createGitHubBuild: Scalars['Boolean'];
|
|
2462
|
+
};
|
|
2463
|
+
export type GitHubAppMutationCreateGitHubBuildArgs = {
|
|
2464
|
+
buildInput: GitHubBuildInput;
|
|
2465
|
+
};
|
|
2428
2466
|
export type GitHubAppQuery = {
|
|
2429
2467
|
__typename?: 'GitHubAppQuery';
|
|
2430
2468
|
appIdentifier: Scalars['String'];
|
|
@@ -2441,6 +2479,13 @@ export type GitHubAppQuerySearchRepositoriesArgs = {
|
|
|
2441
2479
|
githubAppInstallationId: Scalars['ID'];
|
|
2442
2480
|
query: Scalars['String'];
|
|
2443
2481
|
};
|
|
2482
|
+
export type GitHubBuildInput = {
|
|
2483
|
+
appId: Scalars['ID'];
|
|
2484
|
+
baseDirectory?: InputMaybe<Scalars['String']>;
|
|
2485
|
+
buildProfile: Scalars['String'];
|
|
2486
|
+
gitRef: Scalars['String'];
|
|
2487
|
+
platform: AppPlatform;
|
|
2488
|
+
};
|
|
2444
2489
|
export type GitHubRepository = {
|
|
2445
2490
|
__typename?: 'GitHubRepository';
|
|
2446
2491
|
app: App;
|
|
@@ -2513,6 +2558,28 @@ export type GitHubRepositorySettingsMutationUpdateGitHubRepositorySettingsArgs =
|
|
|
2513
2558
|
githubRepositorySettingsData: UpdateGitHubRepositorySettingsInput;
|
|
2514
2559
|
githubRepositorySettingsId: Scalars['ID'];
|
|
2515
2560
|
};
|
|
2561
|
+
export type GitHubUser = {
|
|
2562
|
+
__typename?: 'GitHubUser';
|
|
2563
|
+
githubUserIdentifier: Scalars['String'];
|
|
2564
|
+
id: Scalars['ID'];
|
|
2565
|
+
metadata?: Maybe<GitHubUserMetadata>;
|
|
2566
|
+
userActor: UserActor;
|
|
2567
|
+
};
|
|
2568
|
+
export type GitHubUserMetadata = {
|
|
2569
|
+
__typename?: 'GitHubUserMetadata';
|
|
2570
|
+
avatarUrl: Scalars['String'];
|
|
2571
|
+
login: Scalars['String'];
|
|
2572
|
+
name?: Maybe<Scalars['String']>;
|
|
2573
|
+
url: Scalars['String'];
|
|
2574
|
+
};
|
|
2575
|
+
export type GitHubUserMutation = {
|
|
2576
|
+
__typename?: 'GitHubUserMutation';
|
|
2577
|
+
/** Delete a GitHub User by ID */
|
|
2578
|
+
deleteGitHubUser: DeleteGitHubUserResult;
|
|
2579
|
+
};
|
|
2580
|
+
export type GitHubUserMutationDeleteGitHubUserArgs = {
|
|
2581
|
+
id: Scalars['ID'];
|
|
2582
|
+
};
|
|
2516
2583
|
export type GoogleServiceAccountKey = {
|
|
2517
2584
|
__typename?: 'GoogleServiceAccountKey';
|
|
2518
2585
|
account: Account;
|
|
@@ -2883,8 +2950,10 @@ export type MeMutation = {
|
|
|
2883
2950
|
unpublishApp: App;
|
|
2884
2951
|
/** Update an App that the current user owns */
|
|
2885
2952
|
updateApp: App;
|
|
2886
|
-
/** Update the current user's data */
|
|
2953
|
+
/** Update the current regular user's data */
|
|
2887
2954
|
updateProfile: User;
|
|
2955
|
+
/** Update the current SSO user's data */
|
|
2956
|
+
updateSSOProfile: SsoUser;
|
|
2888
2957
|
};
|
|
2889
2958
|
export type MeMutationAddSecondFactorDeviceArgs = {
|
|
2890
2959
|
deviceConfiguration: SecondFactorDeviceConfiguration;
|
|
@@ -2938,6 +3007,9 @@ export type MeMutationUpdateAppArgs = {
|
|
|
2938
3007
|
export type MeMutationUpdateProfileArgs = {
|
|
2939
3008
|
userData: UserDataInput;
|
|
2940
3009
|
};
|
|
3010
|
+
export type MeMutationUpdateSsoProfileArgs = {
|
|
3011
|
+
userData: SsoUserDataInput;
|
|
3012
|
+
};
|
|
2941
3013
|
export type MeteredBillingStatus = {
|
|
2942
3014
|
__typename?: 'MeteredBillingStatus';
|
|
2943
3015
|
EAS_BUILD: Scalars['Boolean'];
|
|
@@ -3222,12 +3294,16 @@ export type RootMutation = {
|
|
|
3222
3294
|
emailSubscription: EmailSubscriptionMutation;
|
|
3223
3295
|
/** Mutations that create and delete EnvironmentSecrets */
|
|
3224
3296
|
environmentSecret: EnvironmentSecretMutation;
|
|
3297
|
+
/** Mutations that utilize services facilitated by the GitHub App */
|
|
3298
|
+
githubApp: GitHubAppMutation;
|
|
3225
3299
|
/** Mutations for GitHub App installations */
|
|
3226
3300
|
githubAppInstallation: GitHubAppInstallationMutation;
|
|
3227
3301
|
/** Mutations for GitHub repositories */
|
|
3228
3302
|
githubRepository: GitHubRepositoryMutation;
|
|
3229
3303
|
/** Mutations for GitHub repository settings */
|
|
3230
3304
|
githubRepositorySettings: GitHubRepositorySettingsMutation;
|
|
3305
|
+
/** Mutations for GitHub users */
|
|
3306
|
+
githubUser: GitHubUserMutation;
|
|
3231
3307
|
/** Mutations that modify a Google Service Account Key */
|
|
3232
3308
|
googleServiceAccountKey: GoogleServiceAccountKeyMutation;
|
|
3233
3309
|
/** Mutations that modify the build credentials for an iOS app */
|
|
@@ -3299,7 +3375,6 @@ export type RootQuery = {
|
|
|
3299
3375
|
/** Top-level query object for querying BuildPublicData publicly. */
|
|
3300
3376
|
buildPublicData: BuildPublicDataQuery;
|
|
3301
3377
|
builds: BuildQuery;
|
|
3302
|
-
clientBuilds: ClientBuildQuery;
|
|
3303
3378
|
/** Top-level query object for querying Experimentation configuration. */
|
|
3304
3379
|
experimentation: ExperimentationQuery;
|
|
3305
3380
|
/** Top-level query object for querying GitHub App information and resources it has access to. */
|
|
@@ -3389,6 +3464,8 @@ export type SsoUser = Actor & UserActor & {
|
|
|
3389
3464
|
apps: Array<App>;
|
|
3390
3465
|
bestContactEmail?: Maybe<Scalars['String']>;
|
|
3391
3466
|
created: Scalars['DateTime'];
|
|
3467
|
+
/** Discord account linked to a user */
|
|
3468
|
+
discordUser?: Maybe<DiscordUser>;
|
|
3392
3469
|
displayName: Scalars['String'];
|
|
3393
3470
|
/**
|
|
3394
3471
|
* Server feature gate values for this actor, optionally filtering by desired gates.
|
|
@@ -3397,6 +3474,8 @@ export type SsoUser = Actor & UserActor & {
|
|
|
3397
3474
|
featureGates: Scalars['JSONObject'];
|
|
3398
3475
|
firstName?: Maybe<Scalars['String']>;
|
|
3399
3476
|
fullName?: Maybe<Scalars['String']>;
|
|
3477
|
+
/** GitHub account linked to a user */
|
|
3478
|
+
githubUser?: Maybe<GitHubUser>;
|
|
3400
3479
|
githubUsername?: Maybe<Scalars['String']>;
|
|
3401
3480
|
id: Scalars['ID'];
|
|
3402
3481
|
industry?: Maybe<Scalars['String']>;
|
|
@@ -3437,6 +3516,14 @@ export type SsoUserSnacksArgs = {
|
|
|
3437
3516
|
limit: Scalars['Int'];
|
|
3438
3517
|
offset: Scalars['Int'];
|
|
3439
3518
|
};
|
|
3519
|
+
export type SsoUserDataInput = {
|
|
3520
|
+
firstName?: InputMaybe<Scalars['String']>;
|
|
3521
|
+
githubUsername?: InputMaybe<Scalars['String']>;
|
|
3522
|
+
industry?: InputMaybe<Scalars['String']>;
|
|
3523
|
+
lastName?: InputMaybe<Scalars['String']>;
|
|
3524
|
+
location?: InputMaybe<Scalars['String']>;
|
|
3525
|
+
twitterUsername?: InputMaybe<Scalars['String']>;
|
|
3526
|
+
};
|
|
3440
3527
|
export type SsoUserQuery = {
|
|
3441
3528
|
__typename?: 'SSOUserQuery';
|
|
3442
3529
|
/** Query an SSOUser by ID */
|
|
@@ -4003,6 +4090,8 @@ export type User = Actor & UserActor & {
|
|
|
4003
4090
|
featureGates: Scalars['JSONObject'];
|
|
4004
4091
|
firstName?: Maybe<Scalars['String']>;
|
|
4005
4092
|
fullName?: Maybe<Scalars['String']>;
|
|
4093
|
+
/** GitHub account linked to a user */
|
|
4094
|
+
githubUser?: Maybe<GitHubUser>;
|
|
4006
4095
|
githubUsername?: Maybe<Scalars['String']>;
|
|
4007
4096
|
/** Whether this user has any pending user invitations. Only resolves for the viewer. */
|
|
4008
4097
|
hasPendingUserInvitations: Scalars['Boolean'];
|
|
@@ -4068,6 +4157,8 @@ export type UserActor = {
|
|
|
4068
4157
|
apps: Array<App>;
|
|
4069
4158
|
bestContactEmail?: Maybe<Scalars['String']>;
|
|
4070
4159
|
created: Scalars['DateTime'];
|
|
4160
|
+
/** Discord account linked to a user */
|
|
4161
|
+
discordUser?: Maybe<DiscordUser>;
|
|
4071
4162
|
/**
|
|
4072
4163
|
* Best-effort human readable name for this human actor for use in user interfaces during action attribution.
|
|
4073
4164
|
* For example, when displaying a sentence indicating that actor X created a build or published an update.
|
|
@@ -4080,6 +4171,8 @@ export type UserActor = {
|
|
|
4080
4171
|
featureGates: Scalars['JSONObject'];
|
|
4081
4172
|
firstName?: Maybe<Scalars['String']>;
|
|
4082
4173
|
fullName?: Maybe<Scalars['String']>;
|
|
4174
|
+
/** GitHub account linked to a user */
|
|
4175
|
+
githubUser?: Maybe<GitHubUser>;
|
|
4083
4176
|
githubUsername?: Maybe<Scalars['String']>;
|
|
4084
4177
|
id: Scalars['ID'];
|
|
4085
4178
|
industry?: Maybe<Scalars['String']>;
|
|
@@ -5129,6 +5222,24 @@ export type DeleteAppleDeviceMutation = {
|
|
|
5129
5222
|
};
|
|
5130
5223
|
};
|
|
5131
5224
|
};
|
|
5225
|
+
export type UpdateAppleDeviceMutationVariables = Exact<{
|
|
5226
|
+
id: Scalars['ID'];
|
|
5227
|
+
appleDeviceUpdateInput: AppleDeviceUpdateInput;
|
|
5228
|
+
}>;
|
|
5229
|
+
export type UpdateAppleDeviceMutation = {
|
|
5230
|
+
__typename?: 'RootMutation';
|
|
5231
|
+
appleDevice: {
|
|
5232
|
+
__typename?: 'AppleDeviceMutation';
|
|
5233
|
+
updateAppleDevice: {
|
|
5234
|
+
__typename?: 'AppleDevice';
|
|
5235
|
+
id: string;
|
|
5236
|
+
identifier: string;
|
|
5237
|
+
name?: string | null;
|
|
5238
|
+
model?: string | null;
|
|
5239
|
+
deviceClass?: AppleDeviceClass | null;
|
|
5240
|
+
};
|
|
5241
|
+
};
|
|
5242
|
+
};
|
|
5132
5243
|
export type CreateAppleDeviceRegistrationRequestMutationVariables = Exact<{
|
|
5133
5244
|
appleTeamId: Scalars['ID'];
|
|
5134
5245
|
accountId: Scalars['ID'];
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* For more info and docs, visit https://graphql-code-generator.com/
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
10
|
-
exports.WebhookType = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.SubmissionStatus = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidTrack = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = void 0;
|
|
9
|
+
exports.StatuspageIncidentStatus = exports.StatuspageIncidentImpact = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = exports.ProjectArchiveSourceType = exports.Permission = exports.Order = exports.OfferType = exports.NotificationType = exports.NotificationEvent = exports.MailchimpTag = exports.MailchimpAudience = exports.IosSchemeBuildConfiguration = exports.IosManagedBuildType = exports.IosDistributionType = exports.IosBuildType = exports.InvoiceDiscountType = exports.GitHubAppInstallationStatus = exports.GitHubAppEnvironment = exports.Feature = exports.EnvironmentSecretType = exports.EasTotalPlanEnablementUnit = exports.EasServiceMetric = exports.EasService = exports.EasBuildDeprecationInfoType = exports.EasBuildBillingResourceClass = exports.DistributionType = exports.BuildWorkflow = exports.BuildTrigger = exports.BuildStatus = exports.BuildResourceClass = exports.BuildPriority = exports.BuildMode = exports.BuildJobStatus = exports.BuildJobLogsFormat = exports.BuildIosEnterpriseProvisioning = exports.BuildCredentialsSource = exports.AuthProtocolType = exports.AssetMetadataStatus = exports.AppsFilter = exports.AppleDeviceClass = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppPrivacy = exports.AppPlatform = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AndroidBuildType = exports.ActivityTimelineProjectActivityType = void 0;
|
|
10
|
+
exports.WebhookType = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.SubmissionStatus = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidTrack = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = exports.StatuspageServiceName = void 0;
|
|
11
11
|
var ActivityTimelineProjectActivityType;
|
|
12
12
|
(function (ActivityTimelineProjectActivityType) {
|
|
13
13
|
ActivityTimelineProjectActivityType["Build"] = "BUILD";
|
|
@@ -171,6 +171,11 @@ var DistributionType;
|
|
|
171
171
|
DistributionType["Simulator"] = "SIMULATOR";
|
|
172
172
|
DistributionType["Store"] = "STORE";
|
|
173
173
|
})(DistributionType = exports.DistributionType || (exports.DistributionType = {}));
|
|
174
|
+
var EasBuildBillingResourceClass;
|
|
175
|
+
(function (EasBuildBillingResourceClass) {
|
|
176
|
+
EasBuildBillingResourceClass["Large"] = "LARGE";
|
|
177
|
+
EasBuildBillingResourceClass["Medium"] = "MEDIUM";
|
|
178
|
+
})(EasBuildBillingResourceClass = exports.EasBuildBillingResourceClass || (exports.EasBuildBillingResourceClass = {}));
|
|
174
179
|
var EasBuildDeprecationInfoType;
|
|
175
180
|
(function (EasBuildDeprecationInfoType) {
|
|
176
181
|
EasBuildDeprecationInfoType["Internal"] = "INTERNAL";
|
package/build/ora.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ora = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const getenv_1 = require("getenv");
|
|
5
6
|
// eslint-disable-next-line
|
|
6
7
|
const ora_1 = tslib_1.__importDefault(require("ora"));
|
|
7
8
|
const log_1 = tslib_1.__importDefault(require("./log"));
|
|
@@ -13,6 +14,7 @@ const infoReal = console.info;
|
|
|
13
14
|
const warnReal = console.warn;
|
|
14
15
|
// eslint-disable-next-line no-console
|
|
15
16
|
const errorReal = console.error;
|
|
17
|
+
const isCi = (0, getenv_1.boolish)('CI', false);
|
|
16
18
|
/**
|
|
17
19
|
* A custom ora spinner that sends the stream to stdout in CI, or non-TTY, instead of stderr (the default).
|
|
18
20
|
*
|
|
@@ -21,7 +23,7 @@ const errorReal = console.error;
|
|
|
21
23
|
*/
|
|
22
24
|
function ora(options) {
|
|
23
25
|
const inputOptions = typeof options === 'string' ? { text: options } : options !== null && options !== void 0 ? options : {};
|
|
24
|
-
const disabled = log_1.default.isDebug || !process.stdin.isTTY;
|
|
26
|
+
const disabled = log_1.default.isDebug || !process.stdin.isTTY || isCi;
|
|
25
27
|
const spinner = (0, ora_1.default)({
|
|
26
28
|
// Ensure our non-interactive mode emulates CI mode.
|
|
27
29
|
isEnabled: !disabled,
|
package/build/project/publish.js
CHANGED
|
@@ -405,7 +405,7 @@ async function getUpdateMessageForCommandAsync({ updateMessageArg, autoFlag, non
|
|
|
405
405
|
if (truncatedMessage !== updateMessage) {
|
|
406
406
|
log_1.default.warn('Update message exceeds the allowed 1024 character limit. Truncating message...');
|
|
407
407
|
}
|
|
408
|
-
return
|
|
408
|
+
return truncatedMessage;
|
|
409
409
|
}
|
|
410
410
|
exports.getUpdateMessageForCommandAsync = getUpdateMessageForCommandAsync;
|
|
411
411
|
exports.defaultPublishPlatforms = ['android', 'ios'];
|
|
@@ -12,4 +12,9 @@ export declare function getProfilesAsync<T extends ProfileType>({ easJsonAccesso
|
|
|
12
12
|
profileName?: string;
|
|
13
13
|
type: T;
|
|
14
14
|
}): Promise<ProfileData<T>[]>;
|
|
15
|
+
/**
|
|
16
|
+
* Only for testing purposes
|
|
17
|
+
*/
|
|
18
|
+
export declare function clearHasPrintedDeprecationWarnings(): void;
|
|
19
|
+
export declare function maybePrintBuildProfileDeprecationWarningsAsync(easJsonAccessor: EasJsonAccessor, platform: Platform, profileName?: string): Promise<void>;
|
|
15
20
|
export {};
|
package/build/utils/profiles.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getProfilesAsync = void 0;
|
|
3
|
+
exports.maybePrintBuildProfileDeprecationWarningsAsync = exports.clearHasPrintedDeprecationWarnings = exports.getProfilesAsync = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const eas_json_1 = require("@expo/eas-json");
|
|
6
6
|
const log_1 = tslib_1.__importStar(require("../log"));
|
|
@@ -24,7 +24,7 @@ exports.getProfilesAsync = getProfilesAsync;
|
|
|
24
24
|
async function readProfileAsync({ easJsonAccessor, platform, type, profileName, }) {
|
|
25
25
|
if (type === 'build') {
|
|
26
26
|
const buildProfile = await eas_json_1.EasJsonUtils.getBuildProfileAsync(easJsonAccessor, platform, profileName);
|
|
27
|
-
|
|
27
|
+
await maybePrintBuildProfileDeprecationWarningsAsync(easJsonAccessor, platform, profileName);
|
|
28
28
|
return buildProfile;
|
|
29
29
|
}
|
|
30
30
|
else {
|
|
@@ -32,11 +32,18 @@ async function readProfileAsync({ easJsonAccessor, platform, type, profileName,
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
let hasPrintedDeprecationWarnings = false;
|
|
35
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Only for testing purposes
|
|
37
|
+
*/
|
|
38
|
+
function clearHasPrintedDeprecationWarnings() {
|
|
39
|
+
hasPrintedDeprecationWarnings = false;
|
|
40
|
+
}
|
|
41
|
+
exports.clearHasPrintedDeprecationWarnings = clearHasPrintedDeprecationWarnings;
|
|
42
|
+
async function maybePrintBuildProfileDeprecationWarningsAsync(easJsonAccessor, platform, profileName) {
|
|
36
43
|
if (hasPrintedDeprecationWarnings) {
|
|
37
44
|
return;
|
|
38
45
|
}
|
|
39
|
-
const deprecationWarnings = eas_json_1.EasJsonUtils.
|
|
46
|
+
const deprecationWarnings = await eas_json_1.EasJsonUtils.getBuildProfileDeprecationWarningsAsync(easJsonAccessor, platform, profileName !== null && profileName !== void 0 ? profileName : 'production');
|
|
40
47
|
if (deprecationWarnings.length === 0) {
|
|
41
48
|
return;
|
|
42
49
|
}
|
|
@@ -52,3 +59,4 @@ function maybePrintBuildProfileDeprecationWarnings(buildProfile, profileName) {
|
|
|
52
59
|
}
|
|
53
60
|
hasPrintedDeprecationWarnings = true;
|
|
54
61
|
}
|
|
62
|
+
exports.maybePrintBuildProfileDeprecationWarningsAsync = maybePrintBuildProfileDeprecationWarningsAsync;
|