eas-cli 0.41.1 → 0.44.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 +313 -157
- package/bin/dev +17 -0
- package/bin/dev.cmd +3 -0
- package/bin/run +3 -3
- package/build/build/android/UpdatesModule.d.ts +0 -1
- package/build/build/android/UpdatesModule.js +4 -37
- package/build/build/android/build.js +3 -3
- package/build/build/android/{configure.d.ts → syncProjectConfiguration.d.ts} +2 -3
- package/build/build/android/{configure.js → syncProjectConfiguration.js} +22 -23
- package/build/build/build.d.ts +1 -1
- package/build/build/build.js +6 -8
- package/build/build/configure.d.ts +12 -7
- package/build/build/configure.js +25 -99
- package/build/build/context.d.ts +0 -12
- package/build/build/createContext.d.ts +1 -2
- package/build/build/createContext.js +1 -2
- package/build/build/ios/UpdatesModule.d.ts +0 -1
- package/build/build/ios/UpdatesModule.js +8 -39
- package/build/build/ios/build.js +3 -3
- package/build/build/ios/{configure.d.ts → syncProjectConfiguration.d.ts} +1 -3
- package/build/build/ios/{configure.js → syncProjectConfiguration.js} +3 -18
- package/build/build/local.d.ts +1 -0
- package/build/build/local.js +2 -1
- package/build/build/runBuildAndSubmit.d.ts +0 -1
- package/build/build/runBuildAndSubmit.js +4 -2
- package/build/build/utils/devClient.js +3 -3
- package/build/commandUtils/EasCommand.d.ts +2 -1
- package/build/commandUtils/EasCommand.js +7 -4
- package/build/commands/account/login.d.ts +1 -0
- package/build/commands/account/login.js +1 -0
- package/build/commands/account/logout.d.ts +1 -0
- package/build/commands/account/logout.js +1 -0
- package/build/commands/account/view.d.ts +1 -0
- package/build/commands/account/view.js +1 -0
- package/build/commands/analytics.js +1 -1
- package/build/commands/branch/create.d.ts +1 -1
- package/build/commands/branch/create.js +11 -6
- package/build/commands/branch/delete.d.ts +1 -1
- package/build/commands/branch/delete.js +11 -5
- package/build/commands/branch/list.d.ts +1 -1
- package/build/commands/branch/list.js +8 -4
- package/build/commands/branch/rename.d.ts +3 -4
- package/build/commands/branch/rename.js +13 -8
- package/build/commands/branch/view.d.ts +1 -3
- package/build/commands/branch/view.js +35 -74
- package/build/commands/build/cancel.js +1 -1
- package/build/commands/build/configure.d.ts +1 -2
- package/build/commands/build/configure.js +38 -28
- package/build/commands/build/index.d.ts +12 -12
- package/build/commands/build/index.js +32 -21
- package/build/commands/build/inspect.d.ts +7 -7
- package/build/commands/build/inspect.js +31 -25
- package/build/commands/build/list.d.ts +13 -14
- package/build/commands/build/list.js +15 -15
- package/build/commands/build/view.d.ts +1 -1
- package/build/commands/build/view.js +3 -3
- package/build/commands/channel/create.d.ts +1 -1
- package/build/commands/channel/create.js +24 -19
- package/build/commands/channel/delete.d.ts +15 -0
- package/build/commands/channel/delete.js +124 -0
- package/build/commands/channel/edit.d.ts +2 -3
- package/build/commands/channel/edit.js +14 -9
- package/build/commands/channel/list.d.ts +1 -1
- package/build/commands/channel/list.js +17 -12
- package/build/commands/channel/rollout.d.ts +4 -5
- package/build/commands/channel/rollout.js +14 -10
- package/build/commands/channel/view.d.ts +1 -1
- package/build/commands/channel/view.js +19 -14
- package/build/commands/config.d.ts +2 -3
- package/build/commands/config.js +4 -4
- package/build/commands/device/list.d.ts +1 -2
- package/build/commands/device/list.js +3 -3
- package/build/commands/device/view.js +1 -1
- package/build/commands/secret/create.d.ts +4 -5
- package/build/commands/secret/create.js +6 -6
- package/build/commands/secret/delete.d.ts +1 -2
- package/build/commands/secret/delete.js +3 -3
- package/build/commands/submit.d.ts +9 -10
- package/build/commands/submit.js +13 -14
- package/build/commands/update/configure.js +1 -1
- package/build/commands/update/delete.d.ts +1 -1
- package/build/commands/update/delete.js +12 -7
- package/build/commands/update/index.d.ts +9 -10
- package/build/commands/update/index.js +29 -17
- package/build/commands/update/list.d.ts +10 -0
- package/build/commands/update/list.js +114 -0
- package/build/commands/update/view.d.ts +1 -1
- package/build/commands/update/view.js +25 -20
- package/build/commands/webhook/create.d.ts +3 -4
- package/build/commands/webhook/create.js +5 -5
- package/build/commands/webhook/delete.js +1 -1
- package/build/commands/webhook/list.d.ts +1 -2
- package/build/commands/webhook/list.js +3 -3
- package/build/commands/webhook/update.d.ts +4 -5
- package/build/commands/webhook/update.js +6 -6
- package/build/commands/webhook/view.js +1 -1
- package/build/credentials/ios/appstore/bundleIdCapabilities.js +0 -2
- package/build/credentials/ios/appstore/ensureAppExists.js +3 -1
- package/build/graphql/generated.d.ts +92 -30
- package/build/graphql/queries/UpdateQuery.d.ts +7 -0
- package/build/graphql/queries/UpdateQuery.js +85 -0
- package/build/index.d.ts +1 -1
- package/build/index.js +2 -2
- package/build/project/expoSdk.js +2 -2
- package/build/project/metroConfig.js +2 -2
- package/build/project/publish.js +1 -3
- package/build/user/actions.js +2 -2
- package/build/utils/expoCli.d.ts +3 -1
- package/build/utils/expoCli.js +13 -11
- package/build/vcs/clients/git.js +2 -2
- package/build/vcs/local.js +5 -1
- package/oclif.manifest.json +1 -1
- package/package.json +21 -14
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const config_1 = require("@expo/config");
|
|
5
|
-
const
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
6
|
const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
|
|
7
7
|
const EasCommand_1 = (0, tslib_1.__importDefault)(require("../../commandUtils/EasCommand"));
|
|
8
8
|
const generated_1 = require("../../graphql/generated");
|
|
@@ -13,7 +13,7 @@ const projectUtils_1 = require("../../project/projectUtils");
|
|
|
13
13
|
const formatWebhook_1 = require("../../webhooks/formatWebhook");
|
|
14
14
|
class WebhookList extends EasCommand_1.default {
|
|
15
15
|
async runAsync() {
|
|
16
|
-
const { flags: { event }, } = this.parse(WebhookList);
|
|
16
|
+
const { flags: { event }, } = await this.parse(WebhookList);
|
|
17
17
|
const projectDir = await (0, projectUtils_1.findProjectRootAsync)();
|
|
18
18
|
const { exp } = (0, config_1.getConfig)(projectDir, { skipSDKVersionRequirement: true });
|
|
19
19
|
const projectId = await (0, projectUtils_1.getProjectIdAsync)(exp);
|
|
@@ -41,7 +41,7 @@ class WebhookList extends EasCommand_1.default {
|
|
|
41
41
|
exports.default = WebhookList;
|
|
42
42
|
WebhookList.description = 'List webhooks on the current project.';
|
|
43
43
|
WebhookList.flags = {
|
|
44
|
-
event:
|
|
44
|
+
event: core_1.Flags.enum({
|
|
45
45
|
description: 'Event type that triggers the webhook',
|
|
46
46
|
options: [generated_1.WebhookType.Build, generated_1.WebhookType.Submit],
|
|
47
47
|
}),
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { flags } from '@oclif/command';
|
|
2
1
|
import EasCommand from '../../commandUtils/EasCommand';
|
|
3
2
|
import { WebhookType } from '../../graphql/generated';
|
|
4
3
|
export default class WebhookUpdate extends EasCommand {
|
|
5
4
|
static description: string;
|
|
6
5
|
static flags: {
|
|
7
|
-
id:
|
|
8
|
-
event:
|
|
9
|
-
url:
|
|
10
|
-
secret:
|
|
6
|
+
id: import("@oclif/core/lib/interfaces").OptionFlag<string>;
|
|
7
|
+
event: import("@oclif/core/lib/interfaces").OptionFlag<WebhookType>;
|
|
8
|
+
url: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
|
|
9
|
+
secret: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
|
|
11
10
|
};
|
|
12
11
|
runAsync(): Promise<void>;
|
|
13
12
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
const
|
|
4
|
+
const core_1 = require("@oclif/core");
|
|
5
5
|
const EasCommand_1 = (0, tslib_1.__importDefault)(require("../../commandUtils/EasCommand"));
|
|
6
6
|
const generated_1 = require("../../graphql/generated");
|
|
7
7
|
const WebhookMutation_1 = require("../../graphql/mutations/WebhookMutation");
|
|
@@ -11,7 +11,7 @@ const pick_1 = (0, tslib_1.__importDefault)(require("../../utils/expodash/pick")
|
|
|
11
11
|
const input_1 = require("../../webhooks/input");
|
|
12
12
|
class WebhookUpdate extends EasCommand_1.default {
|
|
13
13
|
async runAsync() {
|
|
14
|
-
const { flags } = this.parse(WebhookUpdate);
|
|
14
|
+
const { flags } = await this.parse(WebhookUpdate);
|
|
15
15
|
const webhookId = flags.id;
|
|
16
16
|
const webhook = await WebhookQuery_1.WebhookQuery.byIdAsync(webhookId);
|
|
17
17
|
const webhookInputParams = await (0, input_1.prepareInputParamsAsync)((0, pick_1.default)(flags, ['event', 'url', 'secret']), webhook);
|
|
@@ -29,18 +29,18 @@ class WebhookUpdate extends EasCommand_1.default {
|
|
|
29
29
|
exports.default = WebhookUpdate;
|
|
30
30
|
WebhookUpdate.description = 'Create a webhook on the current project.';
|
|
31
31
|
WebhookUpdate.flags = {
|
|
32
|
-
id:
|
|
32
|
+
id: core_1.Flags.string({
|
|
33
33
|
description: 'Webhook ID',
|
|
34
34
|
required: true,
|
|
35
35
|
}),
|
|
36
|
-
event:
|
|
36
|
+
event: core_1.Flags.enum({
|
|
37
37
|
description: 'Event type that triggers the webhook',
|
|
38
38
|
options: [generated_1.WebhookType.Build, generated_1.WebhookType.Submit],
|
|
39
39
|
}),
|
|
40
|
-
url:
|
|
40
|
+
url: core_1.Flags.string({
|
|
41
41
|
description: 'Webhook URL',
|
|
42
42
|
}),
|
|
43
|
-
secret:
|
|
43
|
+
secret: core_1.Flags.string({
|
|
44
44
|
description: "Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header.",
|
|
45
45
|
}),
|
|
46
46
|
};
|
|
@@ -8,7 +8,7 @@ const ora_1 = require("../../ora");
|
|
|
8
8
|
const formatWebhook_1 = require("../../webhooks/formatWebhook");
|
|
9
9
|
class WebhookView extends EasCommand_1.default {
|
|
10
10
|
async runAsync() {
|
|
11
|
-
const { args: { ID: webhookId }, } = this.parse(WebhookView);
|
|
11
|
+
const { args: { ID: webhookId }, } = await this.parse(WebhookView);
|
|
12
12
|
const spinner = (0, ora_1.ora)(`Fetching the webhook details for ID ${webhookId}`).start();
|
|
13
13
|
try {
|
|
14
14
|
const webhook = await WebhookQuery_1.WebhookQuery.byIdAsync(webhookId);
|
|
@@ -126,10 +126,8 @@ function getCapabilitiesToDisable(bundleId, currentCapabilities, request) {
|
|
|
126
126
|
// Disable any extras that aren't present, this functionality is kinda unreliable because managed apps
|
|
127
127
|
// might be enabling capabilities in modifiers.
|
|
128
128
|
for (const existingCapability of currentCapabilities) {
|
|
129
|
-
// Special case APNS because it's always enabled in Expo,
|
|
130
129
|
// GC and IAP are always enabled in apps by default so we should avoid modifying them.
|
|
131
130
|
if (existingCapability.isType(apple_utils_1.CapabilityType.IN_APP_PURCHASE) ||
|
|
132
|
-
existingCapability.isType(apple_utils_1.CapabilityType.PUSH_NOTIFICATIONS) ||
|
|
133
131
|
existingCapability.isType(apple_utils_1.CapabilityType.GAME_CENTER)) {
|
|
134
132
|
continue;
|
|
135
133
|
}
|
|
@@ -41,7 +41,9 @@ async function ensureBundleIdExistsWithNameAsync(authCtx, { name, bundleIdentifi
|
|
|
41
41
|
else {
|
|
42
42
|
spinner.fail(`Failed to register bundle identifier ${chalk_1.default.dim(bundleIdentifier)}`);
|
|
43
43
|
// Assert contract errors for easier resolution when the user has an expired developer account.
|
|
44
|
-
if (err.message.match(/forbidden for security reasons/)
|
|
44
|
+
if (err.message.match(/forbidden for security reasons/) ||
|
|
45
|
+
// Unable to process request - PLA Update available - You currently don't have access to this membership resource. To resolve this issue, agree to the latest Program License Agreement in your developer account.
|
|
46
|
+
err.message.match(/agree/)) {
|
|
45
47
|
await (0, contractMessages_1.assertContractMessagesAsync)(context);
|
|
46
48
|
}
|
|
47
49
|
}
|
|
@@ -3094,36 +3094,6 @@ export declare type EditUpdateBranchMutation = ({
|
|
|
3094
3094
|
} & Pick<UpdateBranch, 'id' | 'name'>);
|
|
3095
3095
|
});
|
|
3096
3096
|
});
|
|
3097
|
-
export declare type ViewBranchQueryVariables = Exact<{
|
|
3098
|
-
appId: Scalars['String'];
|
|
3099
|
-
name: Scalars['String'];
|
|
3100
|
-
limit: Scalars['Int'];
|
|
3101
|
-
}>;
|
|
3102
|
-
export declare type ViewBranchQuery = ({
|
|
3103
|
-
__typename?: 'RootQuery';
|
|
3104
|
-
} & {
|
|
3105
|
-
app: ({
|
|
3106
|
-
__typename?: 'AppQuery';
|
|
3107
|
-
} & {
|
|
3108
|
-
byId: ({
|
|
3109
|
-
__typename?: 'App';
|
|
3110
|
-
} & Pick<App, 'id'> & {
|
|
3111
|
-
updateBranchByName?: Maybe<({
|
|
3112
|
-
__typename?: 'UpdateBranch';
|
|
3113
|
-
} & Pick<UpdateBranch, 'id' | 'name'> & {
|
|
3114
|
-
updates: Array<({
|
|
3115
|
-
__typename?: 'Update';
|
|
3116
|
-
} & Pick<Update, 'id' | 'group' | 'message' | 'createdAt' | 'runtimeVersion' | 'platform' | 'manifestFragment'> & {
|
|
3117
|
-
actor?: Maybe<({
|
|
3118
|
-
__typename?: 'User';
|
|
3119
|
-
} & Pick<User, 'username' | 'id'>) | ({
|
|
3120
|
-
__typename?: 'Robot';
|
|
3121
|
-
} & Pick<Robot, 'firstName' | 'id'>)>;
|
|
3122
|
-
})>;
|
|
3123
|
-
})>;
|
|
3124
|
-
});
|
|
3125
|
-
});
|
|
3126
|
-
});
|
|
3127
3097
|
export declare type CancelBuildMutationVariables = Exact<{
|
|
3128
3098
|
buildId: Scalars['ID'];
|
|
3129
3099
|
}>;
|
|
@@ -3154,6 +3124,39 @@ export declare type CreateUpdateChannelOnAppMutation = ({
|
|
|
3154
3124
|
} & Pick<UpdateChannel, 'id' | 'name' | 'branchMapping'>)>;
|
|
3155
3125
|
});
|
|
3156
3126
|
});
|
|
3127
|
+
export declare type GetChannelInfoQueryVariables = Exact<{
|
|
3128
|
+
appId: Scalars['String'];
|
|
3129
|
+
name: Scalars['String'];
|
|
3130
|
+
}>;
|
|
3131
|
+
export declare type GetChannelInfoQuery = ({
|
|
3132
|
+
__typename?: 'RootQuery';
|
|
3133
|
+
} & {
|
|
3134
|
+
app: ({
|
|
3135
|
+
__typename?: 'AppQuery';
|
|
3136
|
+
} & {
|
|
3137
|
+
byId: ({
|
|
3138
|
+
__typename?: 'App';
|
|
3139
|
+
} & Pick<App, 'id'> & {
|
|
3140
|
+
updateChannelByName?: Maybe<({
|
|
3141
|
+
__typename?: 'UpdateChannel';
|
|
3142
|
+
} & Pick<UpdateChannel, 'id' | 'name'>)>;
|
|
3143
|
+
});
|
|
3144
|
+
});
|
|
3145
|
+
});
|
|
3146
|
+
export declare type DeleteUpdateChannelMutationVariables = Exact<{
|
|
3147
|
+
channelId: Scalars['ID'];
|
|
3148
|
+
}>;
|
|
3149
|
+
export declare type DeleteUpdateChannelMutation = ({
|
|
3150
|
+
__typename?: 'RootMutation';
|
|
3151
|
+
} & {
|
|
3152
|
+
updateChannel: ({
|
|
3153
|
+
__typename?: 'UpdateChannelMutation';
|
|
3154
|
+
} & {
|
|
3155
|
+
deleteUpdateChannel: ({
|
|
3156
|
+
__typename?: 'DeleteUpdateChannelResult';
|
|
3157
|
+
} & Pick<DeleteUpdateChannelResult, 'id'>);
|
|
3158
|
+
});
|
|
3159
|
+
});
|
|
3157
3160
|
export declare type GetChannelByNameToEditQueryVariables = Exact<{
|
|
3158
3161
|
appId: Scalars['String'];
|
|
3159
3162
|
channelName: Scalars['String'];
|
|
@@ -4517,6 +4520,65 @@ export declare type GetAllSubmissionsForAppQuery = ({
|
|
|
4517
4520
|
});
|
|
4518
4521
|
});
|
|
4519
4522
|
});
|
|
4523
|
+
export declare type ViewAllUpdatesQueryVariables = Exact<{
|
|
4524
|
+
appId: Scalars['String'];
|
|
4525
|
+
limit: Scalars['Int'];
|
|
4526
|
+
}>;
|
|
4527
|
+
export declare type ViewAllUpdatesQuery = ({
|
|
4528
|
+
__typename?: 'RootQuery';
|
|
4529
|
+
} & {
|
|
4530
|
+
app: ({
|
|
4531
|
+
__typename?: 'AppQuery';
|
|
4532
|
+
} & {
|
|
4533
|
+
byId: ({
|
|
4534
|
+
__typename?: 'App';
|
|
4535
|
+
} & Pick<App, 'id'> & {
|
|
4536
|
+
updateBranches: Array<({
|
|
4537
|
+
__typename?: 'UpdateBranch';
|
|
4538
|
+
} & Pick<UpdateBranch, 'id' | 'name'> & {
|
|
4539
|
+
updates: Array<({
|
|
4540
|
+
__typename?: 'Update';
|
|
4541
|
+
} & Pick<Update, 'id' | 'group' | 'message' | 'createdAt' | 'runtimeVersion' | 'platform'> & {
|
|
4542
|
+
actor?: Maybe<({
|
|
4543
|
+
__typename?: 'User';
|
|
4544
|
+
} & Pick<User, 'username' | 'id'>) | ({
|
|
4545
|
+
__typename?: 'Robot';
|
|
4546
|
+
} & Pick<Robot, 'firstName' | 'id'>)>;
|
|
4547
|
+
})>;
|
|
4548
|
+
})>;
|
|
4549
|
+
});
|
|
4550
|
+
});
|
|
4551
|
+
});
|
|
4552
|
+
export declare type ViewBranchUpdatesQueryVariables = Exact<{
|
|
4553
|
+
appId: Scalars['String'];
|
|
4554
|
+
name: Scalars['String'];
|
|
4555
|
+
limit: Scalars['Int'];
|
|
4556
|
+
}>;
|
|
4557
|
+
export declare type ViewBranchUpdatesQuery = ({
|
|
4558
|
+
__typename?: 'RootQuery';
|
|
4559
|
+
} & {
|
|
4560
|
+
app: ({
|
|
4561
|
+
__typename?: 'AppQuery';
|
|
4562
|
+
} & {
|
|
4563
|
+
byId: ({
|
|
4564
|
+
__typename?: 'App';
|
|
4565
|
+
} & Pick<App, 'id'> & {
|
|
4566
|
+
updateBranchByName?: Maybe<({
|
|
4567
|
+
__typename?: 'UpdateBranch';
|
|
4568
|
+
} & Pick<UpdateBranch, 'id' | 'name'> & {
|
|
4569
|
+
updates: Array<({
|
|
4570
|
+
__typename?: 'Update';
|
|
4571
|
+
} & Pick<Update, 'id' | 'group' | 'message' | 'createdAt' | 'runtimeVersion' | 'platform' | 'manifestFragment'> & {
|
|
4572
|
+
actor?: Maybe<({
|
|
4573
|
+
__typename?: 'User';
|
|
4574
|
+
} & Pick<User, 'username' | 'id'>) | ({
|
|
4575
|
+
__typename?: 'Robot';
|
|
4576
|
+
} & Pick<Robot, 'firstName' | 'id'>)>;
|
|
4577
|
+
})>;
|
|
4578
|
+
})>;
|
|
4579
|
+
});
|
|
4580
|
+
});
|
|
4581
|
+
});
|
|
4520
4582
|
export declare type CurrentUserQueryVariables = Exact<{
|
|
4521
4583
|
[key: string]: never;
|
|
4522
4584
|
}>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ViewAllUpdatesQuery, ViewBranchUpdatesQuery, ViewBranchUpdatesQueryVariables } from '../generated';
|
|
2
|
+
export declare const UpdateQuery: {
|
|
3
|
+
viewAllAsync({ appId }: {
|
|
4
|
+
appId: string;
|
|
5
|
+
}): Promise<ViewAllUpdatesQuery>;
|
|
6
|
+
viewBranchAsync({ appId, name }: Pick<ViewBranchUpdatesQueryVariables, 'appId' | 'name'>): Promise<ViewBranchUpdatesQuery>;
|
|
7
|
+
};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateQuery = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_tag_1 = (0, tslib_1.__importDefault)(require("graphql-tag"));
|
|
6
|
+
const client_1 = require("../client");
|
|
7
|
+
const PAGE_LIMIT = 10000;
|
|
8
|
+
exports.UpdateQuery = {
|
|
9
|
+
async viewAllAsync({ appId }) {
|
|
10
|
+
return (0, client_1.withErrorHandlingAsync)(client_1.graphqlClient
|
|
11
|
+
.query((0, graphql_tag_1.default) `
|
|
12
|
+
query ViewAllUpdates($appId: String!, $limit: Int!) {
|
|
13
|
+
app {
|
|
14
|
+
byId(appId: $appId) {
|
|
15
|
+
id
|
|
16
|
+
updateBranches(offset: 0, limit: $limit) {
|
|
17
|
+
id
|
|
18
|
+
name
|
|
19
|
+
updates(offset: 0, limit: $limit) {
|
|
20
|
+
id
|
|
21
|
+
group
|
|
22
|
+
message
|
|
23
|
+
createdAt
|
|
24
|
+
runtimeVersion
|
|
25
|
+
platform
|
|
26
|
+
actor {
|
|
27
|
+
id
|
|
28
|
+
... on User {
|
|
29
|
+
username
|
|
30
|
+
}
|
|
31
|
+
... on Robot {
|
|
32
|
+
firstName
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
`, {
|
|
41
|
+
appId,
|
|
42
|
+
limit: PAGE_LIMIT,
|
|
43
|
+
}, { additionalTypenames: ['UpdateBranch', 'Update'] })
|
|
44
|
+
.toPromise());
|
|
45
|
+
},
|
|
46
|
+
async viewBranchAsync({ appId, name }) {
|
|
47
|
+
return (0, client_1.withErrorHandlingAsync)(client_1.graphqlClient
|
|
48
|
+
.query((0, graphql_tag_1.default) `
|
|
49
|
+
query ViewBranchUpdates($appId: String!, $name: String!, $limit: Int!) {
|
|
50
|
+
app {
|
|
51
|
+
byId(appId: $appId) {
|
|
52
|
+
id
|
|
53
|
+
updateBranchByName(name: $name) {
|
|
54
|
+
id
|
|
55
|
+
name
|
|
56
|
+
updates(offset: 0, limit: $limit) {
|
|
57
|
+
id
|
|
58
|
+
group
|
|
59
|
+
message
|
|
60
|
+
createdAt
|
|
61
|
+
runtimeVersion
|
|
62
|
+
platform
|
|
63
|
+
manifestFragment
|
|
64
|
+
actor {
|
|
65
|
+
id
|
|
66
|
+
... on User {
|
|
67
|
+
username
|
|
68
|
+
}
|
|
69
|
+
... on Robot {
|
|
70
|
+
firstName
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
`, {
|
|
79
|
+
appId,
|
|
80
|
+
name,
|
|
81
|
+
limit: PAGE_LIMIT,
|
|
82
|
+
}, { additionalTypenames: ['UpdateBranch', 'Update'] })
|
|
83
|
+
.toPromise());
|
|
84
|
+
},
|
|
85
|
+
};
|
package/build/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { run } from '@oclif/
|
|
1
|
+
export { run } from '@oclif/core';
|
package/build/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.run = void 0;
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "run", { enumerable: true, get: function () { return
|
|
4
|
+
var core_1 = require("@oclif/core");
|
|
5
|
+
Object.defineProperty(exports, "run", { enumerable: true, get: function () { return core_1.run; } });
|
package/build/project/expoSdk.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.checkExpoSdkIsSupportedAsync = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
6
|
-
const
|
|
6
|
+
const core_1 = require("@oclif/core");
|
|
7
7
|
const assert_1 = (0, tslib_1.__importDefault)(require("assert"));
|
|
8
8
|
const semver_1 = (0, tslib_1.__importDefault)(require("semver"));
|
|
9
9
|
const log_1 = (0, tslib_1.__importDefault)(require("../log"));
|
|
@@ -24,7 +24,7 @@ async function checkExpoSdkIsSupportedAsync(ctx) {
|
|
|
24
24
|
message: `${unsupportedSdkMessage} Do you want to proceed?`,
|
|
25
25
|
});
|
|
26
26
|
if (!proceed) {
|
|
27
|
-
|
|
27
|
+
core_1.Errors.exit(1);
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
exports.checkExpoSdkIsSupportedAsync = checkExpoSdkIsSupportedAsync;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validateMetroConfigForManagedWorkflowAsync = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
6
|
const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
|
|
7
7
|
const resolve_from_1 = (0, tslib_1.__importDefault)(require("resolve-from"));
|
|
8
8
|
const log_1 = (0, tslib_1.__importStar)(require("../log"));
|
|
@@ -32,7 +32,7 @@ async function validateMetroConfigForManagedWorkflowAsync(ctx) {
|
|
|
32
32
|
});
|
|
33
33
|
if (shouldAbort) {
|
|
34
34
|
log_1.default.error('Aborting...');
|
|
35
|
-
|
|
35
|
+
core_1.Errors.exit(1);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
}
|
package/build/project/publish.js
CHANGED
|
@@ -11,7 +11,6 @@ const path_1 = (0, tslib_1.__importDefault)(require("path"));
|
|
|
11
11
|
const generated_1 = require("../graphql/generated");
|
|
12
12
|
const PublishMutation_1 = require("../graphql/mutations/PublishMutation");
|
|
13
13
|
const PublishQuery_1 = require("../graphql/queries/PublishQuery");
|
|
14
|
-
const log_1 = (0, tslib_1.__importDefault)(require("../log"));
|
|
15
14
|
const uploads_1 = require("../uploads");
|
|
16
15
|
const expoCli_1 = require("../utils/expoCli");
|
|
17
16
|
const uniqBy_1 = (0, tslib_1.__importDefault)(require("../utils/expodash/uniqBy"));
|
|
@@ -107,8 +106,7 @@ async function buildBundlesAsync({ projectDir, inputDir, }) {
|
|
|
107
106
|
if (!packageJSON) {
|
|
108
107
|
throw new Error('Could not locate package.json');
|
|
109
108
|
}
|
|
110
|
-
|
|
111
|
-
await (0, expoCli_1.expoCommandAsync)(projectDir, ['export', '--output-dir', inputDir, '--experimental-bundle']);
|
|
109
|
+
await (0, expoCli_1.expoCommandAsync)(projectDir, ['export', '--output-dir', inputDir, '--experimental-bundle'], { silent: true });
|
|
112
110
|
}
|
|
113
111
|
exports.buildBundlesAsync = buildBundlesAsync;
|
|
114
112
|
async function resolveInputDirectoryAsync(customInputDirectory) {
|
package/build/user/actions.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ensureActorHasUsername = exports.ensureLoggedInAsync = exports.showLoginPromptAsync = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
6
|
const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
|
|
7
7
|
const nullthrows_1 = (0, tslib_1.__importDefault)(require("nullthrows"));
|
|
8
8
|
const ApiV2Error_1 = (0, tslib_1.__importDefault)(require("../ApiV2Error"));
|
|
@@ -12,7 +12,7 @@ const User_1 = require("./User");
|
|
|
12
12
|
const otp_1 = require("./otp");
|
|
13
13
|
async function showLoginPromptAsync({ nonInteractive = false, printNewLine = false, } = {}) {
|
|
14
14
|
if (nonInteractive) {
|
|
15
|
-
|
|
15
|
+
core_1.Errors.error(`Either log in with ${chalk_1.default.bold('eas login')} or set the ${chalk_1.default.bold('EXPO_TOKEN')} environment variable if you're using EAS CLI on CI (${(0, log_1.learnMore)('https://docs.expo.dev/accounts/programmatic-access/', { dim: false })})`);
|
|
16
16
|
}
|
|
17
17
|
if (printNewLine) {
|
|
18
18
|
log_1.default.newLine();
|
package/build/utils/expoCli.d.ts
CHANGED
package/build/utils/expoCli.js
CHANGED
|
@@ -6,7 +6,7 @@ const spawn_async_1 = (0, tslib_1.__importDefault)(require("@expo/spawn-async"))
|
|
|
6
6
|
const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
|
|
7
7
|
const resolve_from_1 = (0, tslib_1.__importDefault)(require("resolve-from"));
|
|
8
8
|
const log_1 = (0, tslib_1.__importDefault)(require("../log"));
|
|
9
|
-
async function expoCommandAsync(projectDir, args) {
|
|
9
|
+
async function expoCommandAsync(projectDir, args, { silent = false } = {}) {
|
|
10
10
|
const expoCliPath = (0, resolve_from_1.default)(projectDir, 'expo/bin/cli.js');
|
|
11
11
|
const spawnPromise = (0, spawn_async_1.default)(expoCliPath, args, {
|
|
12
12
|
stdio: ['inherit', 'pipe', 'pipe'], // inherit stdin so user can install a missing expo-cli from inside this command
|
|
@@ -15,16 +15,18 @@ async function expoCommandAsync(projectDir, args) {
|
|
|
15
15
|
if (!(stdout && stderr)) {
|
|
16
16
|
throw new Error('Failed to spawn expo-cli');
|
|
17
17
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
if (!silent) {
|
|
19
|
+
stdout.on('data', data => {
|
|
20
|
+
for (const line of data.toString().trim().split('\n')) {
|
|
21
|
+
log_1.default.log(`${chalk_1.default.gray('[expo-cli]')} ${line}`);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
stderr.on('data', data => {
|
|
25
|
+
for (const line of data.toString().trim().split('\n')) {
|
|
26
|
+
log_1.default.warn(`${chalk_1.default.gray('[expo-cli]')} ${line}`);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
28
30
|
await spawnPromise;
|
|
29
31
|
}
|
|
30
32
|
exports.expoCommandAsync = expoCommandAsync;
|
package/build/vcs/clients/git.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.isGitCaseSensitiveAsync = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const spawn_async_1 = (0, tslib_1.__importDefault)(require("@expo/spawn-async"));
|
|
6
|
-
const
|
|
6
|
+
const core_1 = require("@oclif/core");
|
|
7
7
|
const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
|
|
8
8
|
const log_1 = (0, tslib_1.__importStar)(require("../../log"));
|
|
9
9
|
const ora_1 = require("../../ora");
|
|
@@ -15,7 +15,7 @@ class GitClient extends vcs_1.Client {
|
|
|
15
15
|
if (!(await (0, git_1.isGitInstalledAsync)())) {
|
|
16
16
|
log_1.default.error(`${chalk_1.default.bold('git')} command not found. Install it before proceeding or set ${chalk_1.default.bold('EAS_NO_VCS=1')} to use EAS CLI without Git (or any other version control system).`);
|
|
17
17
|
log_1.default.error((0, log_1.learnMore)('https://expo.fyi/eas-vcs-workflow'));
|
|
18
|
-
|
|
18
|
+
core_1.Errors.exit(1);
|
|
19
19
|
}
|
|
20
20
|
if (await (0, git_1.doesGitRepoExistAsync)()) {
|
|
21
21
|
return;
|
package/build/vcs/local.js
CHANGED
|
@@ -45,7 +45,11 @@ class Ignore {
|
|
|
45
45
|
];
|
|
46
46
|
return;
|
|
47
47
|
}
|
|
48
|
-
const ignoreFilePaths = (await (0, fast_glob_1.default)(`**/${GITIGNORE_FILENAME}`, {
|
|
48
|
+
const ignoreFilePaths = (await (0, fast_glob_1.default)(`**/${GITIGNORE_FILENAME}`, {
|
|
49
|
+
cwd: this.rootDir,
|
|
50
|
+
ignore: ['node_modules'],
|
|
51
|
+
followSymbolicLinks: false,
|
|
52
|
+
}))
|
|
49
53
|
// ensure that parent dir is before child directories
|
|
50
54
|
.sort((a, b) => a.length - b.length && a.localeCompare(b));
|
|
51
55
|
const ignoreMapping = await Promise.all(ignoreFilePaths.map(async (filePath) => {
|