eas-cli 2.5.0 → 2.6.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 +89 -49
- package/build/branch/queries.js +3 -22
- package/build/build/queries.d.ts +11 -1
- package/build/build/queries.js +39 -1
- package/build/channel/queries.js +5 -8
- package/build/channel/utils.js +22 -22
- package/build/commandUtils/context/LoggedInContextField.d.ts +3 -0
- package/build/commandUtils/context/LoggedInContextField.js +9 -1
- package/build/commandUtils/context/MaybeLoggedInContextField.d.ts +3 -0
- package/build/commandUtils/context/MaybeLoggedInContextField.js +9 -1
- package/build/commandUtils/context/contextUtils/createGraphqlClient.d.ts +2 -2
- package/build/commandUtils/gating/FeatureGateEnvOverrides.d.ts +7 -0
- package/build/commandUtils/gating/FeatureGateEnvOverrides.js +35 -0
- package/build/commandUtils/gating/FeatureGateKey.d.ts +4 -0
- package/build/commandUtils/gating/FeatureGateKey.js +11 -0
- package/build/commandUtils/gating/FeatureGateTestOverrides.d.ts +5 -0
- package/build/commandUtils/gating/FeatureGateTestOverrides.js +17 -0
- package/build/commandUtils/gating/FeatureGating.d.ts +16 -0
- package/build/commandUtils/gating/FeatureGating.js +55 -0
- package/build/commandUtils/pagination.d.ts +4 -3
- package/build/commands/branch/list.d.ts +1 -1
- package/build/commands/branch/view.d.ts +1 -1
- package/build/commands/build/configure.d.ts +1 -1
- package/build/commands/build/index.d.ts +2 -2
- package/build/commands/build/list.d.ts +4 -4
- package/build/commands/build/list.js +2 -15
- package/build/commands/build/run.d.ts +21 -0
- package/build/commands/build/run.js +149 -0
- package/build/commands/build/version/set.d.ts +1 -1
- package/build/commands/build/version/sync.d.ts +1 -1
- package/build/commands/channel/list.d.ts +1 -1
- package/build/commands/channel/view.d.ts +1 -1
- package/build/commands/config.d.ts +1 -1
- package/build/commands/credentials.d.ts +1 -1
- package/build/commands/device/list.d.ts +1 -1
- package/build/commands/metadata/lint.d.ts +12 -0
- package/build/commands/metadata/lint.js +72 -0
- package/build/commands/metadata/pull.js +20 -9
- package/build/commands/metadata/push.js +20 -9
- package/build/commands/secret/create.d.ts +1 -1
- package/build/commands/secret/list.js +12 -17
- package/build/commands/submit.d.ts +1 -1
- package/build/commands/update/configure.js +2 -0
- package/build/commands/update/list.d.ts +1 -1
- package/build/commands/webhook/create.d.ts +1 -1
- package/build/commands/webhook/list.d.ts +1 -1
- package/build/commands/webhook/update.d.ts +1 -1
- package/build/devices/actions/create/inputMethod.js +2 -15
- package/build/devices/utils/formatDevice.d.ts +2 -0
- package/build/devices/utils/formatDevice.js +32 -7
- package/build/env.d.ts +8 -0
- package/build/env.js +8 -0
- package/build/graphql/generated.d.ts +74 -6
- package/build/graphql/generated.js +10 -2
- package/build/graphql/mutations/KeystoreGenerationUrlMutation.js +1 -1
- package/build/graphql/queries/UserQuery.js +2 -2
- package/build/graphql/types/Build.js +1 -0
- package/build/metadata/apple/rules/index.d.ts +1 -0
- package/build/metadata/apple/rules/index.js +6 -0
- package/build/metadata/apple/rules/infoKeywordLength.d.ts +6 -0
- package/build/metadata/apple/rules/infoKeywordLength.js +35 -0
- package/build/metadata/apple/rules/infoRestrictedWords.d.ts +6 -0
- package/build/metadata/apple/rules/infoRestrictedWords.js +57 -0
- package/build/metadata/apple/tasks/index.d.ts +1 -2
- package/build/metadata/apple/tasks/index.js +1 -1
- package/build/metadata/auth.d.ts +21 -0
- package/build/metadata/auth.js +33 -0
- package/build/metadata/config/issue.d.ts +21 -0
- package/build/metadata/config/issue.js +9 -0
- package/build/metadata/config/resolve.d.ts +27 -0
- package/build/metadata/{config.js → config/resolve.js} +24 -25
- package/build/metadata/config/schema.d.ts +7 -0
- package/build/metadata/config/schema.js +2 -0
- package/build/metadata/config/validate.d.ts +3 -0
- package/build/metadata/config/validate.js +47 -0
- package/build/metadata/download.d.ts +11 -2
- package/build/metadata/download.js +14 -9
- package/build/metadata/errors.d.ts +3 -3
- package/build/metadata/errors.js +3 -1
- package/build/metadata/upload.d.ts +11 -2
- package/build/metadata/upload.js +16 -11
- package/build/metadata/utils/ajv.d.ts +10 -0
- package/build/metadata/utils/ajv.js +30 -0
- package/build/metadata/utils/telemetry.js +6 -6
- package/build/project/publish.js +8 -14
- package/build/run/android/run.d.ts +1 -0
- package/build/run/android/run.js +9 -0
- package/build/run/ios/run.d.ts +1 -0
- package/build/run/ios/run.js +31 -0
- package/build/run/ios/simctl.d.ts +2 -0
- package/build/run/ios/simctl.js +8 -0
- package/build/run/ios/simulator.d.ts +21 -0
- package/build/run/ios/simulator.js +161 -0
- package/build/run/ios/systemRequirements.d.ts +1 -0
- package/build/run/ios/systemRequirements.js +82 -0
- package/build/run/ios/xcode.d.ts +4 -0
- package/build/run/ios/xcode.js +41 -0
- package/build/run/ios/xcrun.d.ts +4 -0
- package/build/run/ios/xcrun.js +68 -0
- package/build/run/run.d.ts +8 -0
- package/build/run/run.js +15 -0
- package/build/submit/utils/summary.d.ts +1 -1
- package/build/update/queries.js +30 -39
- package/build/update/utils.d.ts +8 -1
- package/build/update/utils.js +35 -1
- package/build/utils/buildDistribution.d.ts +3 -0
- package/build/utils/buildDistribution.js +20 -0
- package/build/utils/download.d.ts +2 -0
- package/build/utils/download.js +114 -0
- package/build/utils/expoCli.d.ts +0 -1
- package/build/utils/expoCli.js +1 -8
- package/build/utils/expodash/filter.d.ts +2 -0
- package/build/utils/expodash/filter.js +8 -0
- package/build/utils/formatFields.d.ts +3 -2
- package/oclif.manifest.json +1 -1
- package/package.json +32 -30
- package/schema/metadata-0.json +1 -1
- package/build/metadata/config.d.ts +0 -41
- package/build/metadata/context.d.ts +0 -50
- package/build/metadata/context.js +0 -47
|
@@ -344,6 +344,7 @@ export declare type AccountSsoConfiguration = {
|
|
|
344
344
|
issuer?: Maybe<Scalars['String']>;
|
|
345
345
|
jwksEndpoint?: Maybe<Scalars['String']>;
|
|
346
346
|
redirectUri: Scalars['String'];
|
|
347
|
+
revokeEndpoint?: Maybe<Scalars['String']>;
|
|
347
348
|
tokenEndpoint?: Maybe<Scalars['String']>;
|
|
348
349
|
updatedAt: Scalars['DateTime'];
|
|
349
350
|
userInfoEndpoint?: Maybe<Scalars['String']>;
|
|
@@ -357,6 +358,7 @@ export declare type AccountSsoConfigurationData = {
|
|
|
357
358
|
issuer?: InputMaybe<Scalars['String']>;
|
|
358
359
|
jwksEndpoint?: InputMaybe<Scalars['String']>;
|
|
359
360
|
redirectUri: Scalars['String'];
|
|
361
|
+
revokeEndpoint?: InputMaybe<Scalars['String']>;
|
|
360
362
|
tokenEndpoint?: InputMaybe<Scalars['String']>;
|
|
361
363
|
userInfoEndpoint?: InputMaybe<Scalars['String']>;
|
|
362
364
|
};
|
|
@@ -391,6 +393,7 @@ export declare type AccountSsoConfigurationPublicData = {
|
|
|
391
393
|
issuer?: Maybe<Scalars['String']>;
|
|
392
394
|
jwksEndpoint?: Maybe<Scalars['String']>;
|
|
393
395
|
redirectUri: Scalars['String'];
|
|
396
|
+
revokeEndpoint?: Maybe<Scalars['String']>;
|
|
394
397
|
tokenEndpoint?: Maybe<Scalars['String']>;
|
|
395
398
|
userInfoEndpoint?: Maybe<Scalars['String']>;
|
|
396
399
|
};
|
|
@@ -1456,6 +1459,8 @@ export declare type Build = ActivityTimelineProjectActivity & BuildOrBuildJob &
|
|
|
1456
1459
|
__typename?: 'Build';
|
|
1457
1460
|
activityTimestamp: Scalars['DateTime'];
|
|
1458
1461
|
actor?: Maybe<Actor>;
|
|
1462
|
+
/** The actual resource class of the builder assigned to the build job */
|
|
1463
|
+
actualResourceClass?: Maybe<BuildResourceClass>;
|
|
1459
1464
|
appBuildVersion?: Maybe<Scalars['String']>;
|
|
1460
1465
|
appVersion?: Maybe<Scalars['String']>;
|
|
1461
1466
|
artifacts?: Maybe<BuildArtifacts>;
|
|
@@ -1496,7 +1501,8 @@ export declare type Build = ActivityTimelineProjectActivity & BuildOrBuildJob &
|
|
|
1496
1501
|
queuePosition?: Maybe<Scalars['Int']>;
|
|
1497
1502
|
reactNativeVersion?: Maybe<Scalars['String']>;
|
|
1498
1503
|
releaseChannel?: Maybe<Scalars['String']>;
|
|
1499
|
-
|
|
1504
|
+
/** The builder resource class requested by the developer */
|
|
1505
|
+
resourceClass: BuildResourceClass;
|
|
1500
1506
|
runFromCI?: Maybe<Scalars['Boolean']>;
|
|
1501
1507
|
runtimeVersion?: Maybe<Scalars['String']>;
|
|
1502
1508
|
sdkVersion?: Maybe<Scalars['String']>;
|
|
@@ -1863,6 +1869,7 @@ export declare type CreateAccessTokenResponse = {
|
|
|
1863
1869
|
};
|
|
1864
1870
|
export declare type CreateAndroidSubmissionInput = {
|
|
1865
1871
|
appId: Scalars['ID'];
|
|
1872
|
+
archiveSource?: InputMaybe<SubmissionArchiveSourceInput>;
|
|
1866
1873
|
archiveUrl?: InputMaybe<Scalars['String']>;
|
|
1867
1874
|
config: AndroidSubmissionConfigInput;
|
|
1868
1875
|
submittedBuildId?: InputMaybe<Scalars['ID']>;
|
|
@@ -1885,6 +1892,7 @@ export declare type CreateGitHubRepositoryInput = {
|
|
|
1885
1892
|
appId: Scalars['ID'];
|
|
1886
1893
|
githubAppInstallationId: Scalars['ID'];
|
|
1887
1894
|
githubRepositoryIdentifier: Scalars['Int'];
|
|
1895
|
+
nodeIdentifier: Scalars['String'];
|
|
1888
1896
|
};
|
|
1889
1897
|
export declare type CreateGitHubRepositorySettingsInput = {
|
|
1890
1898
|
appId: Scalars['ID'];
|
|
@@ -1893,6 +1901,7 @@ export declare type CreateGitHubRepositorySettingsInput = {
|
|
|
1893
1901
|
};
|
|
1894
1902
|
export declare type CreateIosSubmissionInput = {
|
|
1895
1903
|
appId: Scalars['ID'];
|
|
1904
|
+
archiveSource?: InputMaybe<SubmissionArchiveSourceInput>;
|
|
1896
1905
|
archiveUrl?: InputMaybe<Scalars['String']>;
|
|
1897
1906
|
config: IosSubmissionConfigInput;
|
|
1898
1907
|
submittedBuildId?: InputMaybe<Scalars['ID']>;
|
|
@@ -1943,6 +1952,14 @@ export declare type DeleteGoogleServiceAccountKeyResult = {
|
|
|
1943
1952
|
__typename?: 'DeleteGoogleServiceAccountKeyResult';
|
|
1944
1953
|
id: Scalars['ID'];
|
|
1945
1954
|
};
|
|
1955
|
+
export declare type DeleteIosAppBuildCredentialsResult = {
|
|
1956
|
+
__typename?: 'DeleteIosAppBuildCredentialsResult';
|
|
1957
|
+
id: Scalars['ID'];
|
|
1958
|
+
};
|
|
1959
|
+
export declare type DeleteIosAppCredentialsResult = {
|
|
1960
|
+
__typename?: 'DeleteIosAppCredentialsResult';
|
|
1961
|
+
id: Scalars['ID'];
|
|
1962
|
+
};
|
|
1946
1963
|
export declare type DeleteRobotResult = {
|
|
1947
1964
|
__typename?: 'DeleteRobotResult';
|
|
1948
1965
|
id: Scalars['ID'];
|
|
@@ -2099,7 +2116,7 @@ export declare type GetSignedAssetUploadSpecificationsResult = {
|
|
|
2099
2116
|
};
|
|
2100
2117
|
export declare type GitHubAppInstallation = {
|
|
2101
2118
|
__typename?: 'GitHubAppInstallation';
|
|
2102
|
-
accessibleRepositories:
|
|
2119
|
+
accessibleRepositories: GitHubRepositoryPaginationResult;
|
|
2103
2120
|
account: Account;
|
|
2104
2121
|
actor?: Maybe<Actor>;
|
|
2105
2122
|
id: Scalars['ID'];
|
|
@@ -2116,6 +2133,7 @@ export declare type GitHubAppInstallationAccessibleRepository = {
|
|
|
2116
2133
|
description?: Maybe<Scalars['String']>;
|
|
2117
2134
|
id: Scalars['Int'];
|
|
2118
2135
|
name: Scalars['String'];
|
|
2136
|
+
nodeId: Scalars['String'];
|
|
2119
2137
|
owner: GitHubRepositoryOwner;
|
|
2120
2138
|
private: Scalars['Boolean'];
|
|
2121
2139
|
url: Scalars['String'];
|
|
@@ -2148,12 +2166,14 @@ export declare type GitHubAppQuery = {
|
|
|
2148
2166
|
__typename?: 'GitHubAppQuery';
|
|
2149
2167
|
appIdentifier: Scalars['String'];
|
|
2150
2168
|
clientIdentifier: Scalars['String'];
|
|
2151
|
-
|
|
2169
|
+
installation: GitHubAppInstallation;
|
|
2170
|
+
searchRepositories: GitHubRepositoryPaginationResult;
|
|
2171
|
+
};
|
|
2172
|
+
export declare type GitHubAppQueryInstallationArgs = {
|
|
2173
|
+
id: Scalars['ID'];
|
|
2152
2174
|
};
|
|
2153
2175
|
export declare type GitHubAppQuerySearchRepositoriesArgs = {
|
|
2154
2176
|
githubAppInstallationId: Scalars['ID'];
|
|
2155
|
-
page?: InputMaybe<Scalars['Int']>;
|
|
2156
|
-
perPage?: InputMaybe<Scalars['Int']>;
|
|
2157
2177
|
query: Scalars['String'];
|
|
2158
2178
|
};
|
|
2159
2179
|
export declare type GitHubRepository = {
|
|
@@ -2163,6 +2183,7 @@ export declare type GitHubRepository = {
|
|
|
2163
2183
|
githubRepositoryIdentifier: Scalars['Int'];
|
|
2164
2184
|
id: Scalars['ID'];
|
|
2165
2185
|
metadata?: Maybe<GitHubRepositoryMetadata>;
|
|
2186
|
+
nodeIdentifier: Scalars['String'];
|
|
2166
2187
|
};
|
|
2167
2188
|
export declare type GitHubRepositoryMetadata = {
|
|
2168
2189
|
__typename?: 'GitHubRepositoryMetadata';
|
|
@@ -2194,6 +2215,11 @@ export declare type GitHubRepositoryOwner = {
|
|
|
2194
2215
|
login: Scalars['String'];
|
|
2195
2216
|
url: Scalars['String'];
|
|
2196
2217
|
};
|
|
2218
|
+
export declare type GitHubRepositoryPaginationResult = {
|
|
2219
|
+
__typename?: 'GitHubRepositoryPaginationResult';
|
|
2220
|
+
repositories: Array<GitHubAppInstallationAccessibleRepository>;
|
|
2221
|
+
totalCount: Scalars['Int'];
|
|
2222
|
+
};
|
|
2197
2223
|
export declare type GitHubRepositorySettings = {
|
|
2198
2224
|
__typename?: 'GitHubRepositorySettings';
|
|
2199
2225
|
app: App;
|
|
@@ -2332,6 +2358,8 @@ export declare type IosAppBuildCredentialsMutation = {
|
|
|
2332
2358
|
__typename?: 'IosAppBuildCredentialsMutation';
|
|
2333
2359
|
/** Create a set of build credentials for an iOS app */
|
|
2334
2360
|
createIosAppBuildCredentials: IosAppBuildCredentials;
|
|
2361
|
+
/** Disassociate the build credentials from an iOS app */
|
|
2362
|
+
deleteIosAppBuildCredentials: DeleteIosAppBuildCredentialsResult;
|
|
2335
2363
|
/** Set the distribution certificate to be used for an iOS app */
|
|
2336
2364
|
setDistributionCertificate: IosAppBuildCredentials;
|
|
2337
2365
|
/** Set the provisioning profile to be used for an iOS app */
|
|
@@ -2341,6 +2369,9 @@ export declare type IosAppBuildCredentialsMutationCreateIosAppBuildCredentialsAr
|
|
|
2341
2369
|
iosAppBuildCredentialsInput: IosAppBuildCredentialsInput;
|
|
2342
2370
|
iosAppCredentialsId: Scalars['ID'];
|
|
2343
2371
|
};
|
|
2372
|
+
export declare type IosAppBuildCredentialsMutationDeleteIosAppBuildCredentialsArgs = {
|
|
2373
|
+
id: Scalars['ID'];
|
|
2374
|
+
};
|
|
2344
2375
|
export declare type IosAppBuildCredentialsMutationSetDistributionCertificateArgs = {
|
|
2345
2376
|
distributionCertificateId: Scalars['ID'];
|
|
2346
2377
|
id: Scalars['ID'];
|
|
@@ -2379,6 +2410,8 @@ export declare type IosAppCredentialsMutation = {
|
|
|
2379
2410
|
__typename?: 'IosAppCredentialsMutation';
|
|
2380
2411
|
/** Create a set of credentials for an iOS app */
|
|
2381
2412
|
createIosAppCredentials: IosAppCredentials;
|
|
2413
|
+
/** Delete a set of credentials for an iOS app */
|
|
2414
|
+
deleteIosAppCredentials: DeleteIosAppCredentialsResult;
|
|
2382
2415
|
/** Set the App Store Connect Api Key to be used for submitting an iOS app */
|
|
2383
2416
|
setAppStoreConnectApiKeyForSubmissions: IosAppCredentials;
|
|
2384
2417
|
/** Set the push key to be used in an iOS app */
|
|
@@ -2389,6 +2422,9 @@ export declare type IosAppCredentialsMutationCreateIosAppCredentialsArgs = {
|
|
|
2389
2422
|
appleAppIdentifierId: Scalars['ID'];
|
|
2390
2423
|
iosAppCredentialsInput: IosAppCredentialsInput;
|
|
2391
2424
|
};
|
|
2425
|
+
export declare type IosAppCredentialsMutationDeleteIosAppCredentialsArgs = {
|
|
2426
|
+
id: Scalars['ID'];
|
|
2427
|
+
};
|
|
2392
2428
|
export declare type IosAppCredentialsMutationSetAppStoreConnectApiKeyForSubmissionsArgs = {
|
|
2393
2429
|
ascApiKeyId: Scalars['ID'];
|
|
2394
2430
|
id: Scalars['ID'];
|
|
@@ -2397,6 +2433,13 @@ export declare type IosAppCredentialsMutationSetPushKeyArgs = {
|
|
|
2397
2433
|
id: Scalars['ID'];
|
|
2398
2434
|
pushKeyId: Scalars['ID'];
|
|
2399
2435
|
};
|
|
2436
|
+
export declare type IosAppCredentialsQuery = {
|
|
2437
|
+
__typename?: 'IosAppCredentialsQuery';
|
|
2438
|
+
byId: IosAppCredentials;
|
|
2439
|
+
};
|
|
2440
|
+
export declare type IosAppCredentialsQueryByIdArgs = {
|
|
2441
|
+
iosAppCredentialsId: Scalars['ID'];
|
|
2442
|
+
};
|
|
2400
2443
|
/** @deprecated Use developmentClient option instead. */
|
|
2401
2444
|
export declare enum IosBuildType {
|
|
2402
2445
|
DevelopmentClient = "DEVELOPMENT_CLIENT",
|
|
@@ -2926,6 +2969,8 @@ export declare type RootQuery = {
|
|
|
2926
2969
|
githubApp: GitHubAppQuery;
|
|
2927
2970
|
/** Top-level query object for querying Stripe Invoices. */
|
|
2928
2971
|
invoice: InvoiceQuery;
|
|
2972
|
+
/** Top-level query object for querying IosAppCredentials. */
|
|
2973
|
+
iosAppCredentials: IosAppCredentialsQuery;
|
|
2929
2974
|
/**
|
|
2930
2975
|
* If authenticated as a typical end user, this is the appropriate top-level
|
|
2931
2976
|
* query object
|
|
@@ -3211,6 +3256,18 @@ export declare enum SubmissionAndroidTrack {
|
|
|
3211
3256
|
Internal = "INTERNAL",
|
|
3212
3257
|
Production = "PRODUCTION"
|
|
3213
3258
|
}
|
|
3259
|
+
export declare type SubmissionArchiveSourceInput = {
|
|
3260
|
+
/** Required if the archive source type is GCS_BUILD_APPLICATION_ARCHIVE or GCS_SUBMIT_ARCHIVE */
|
|
3261
|
+
bucketKey?: InputMaybe<Scalars['String']>;
|
|
3262
|
+
type: SubmissionArchiveSourceType;
|
|
3263
|
+
/** Required if the archive source type is URL */
|
|
3264
|
+
url?: InputMaybe<Scalars['String']>;
|
|
3265
|
+
};
|
|
3266
|
+
export declare enum SubmissionArchiveSourceType {
|
|
3267
|
+
GcsBuildApplicationArchive = "GCS_BUILD_APPLICATION_ARCHIVE",
|
|
3268
|
+
GcsSubmitArchive = "GCS_SUBMIT_ARCHIVE",
|
|
3269
|
+
Url = "URL"
|
|
3270
|
+
}
|
|
3214
3271
|
export declare type SubmissionError = {
|
|
3215
3272
|
__typename?: 'SubmissionError';
|
|
3216
3273
|
errorCode?: Maybe<Scalars['String']>;
|
|
@@ -3423,8 +3480,10 @@ export declare type UploadSessionCreateUploadSessionArgs = {
|
|
|
3423
3480
|
type: UploadSessionType;
|
|
3424
3481
|
};
|
|
3425
3482
|
export declare enum UploadSessionType {
|
|
3483
|
+
EasBuildGcsProjectSources = "EAS_BUILD_GCS_PROJECT_SOURCES",
|
|
3426
3484
|
EasBuildProjectSources = "EAS_BUILD_PROJECT_SOURCES",
|
|
3427
|
-
EasSubmitAppArchive = "EAS_SUBMIT_APP_ARCHIVE"
|
|
3485
|
+
EasSubmitAppArchive = "EAS_SUBMIT_APP_ARCHIVE",
|
|
3486
|
+
EasSubmitGcsAppArchive = "EAS_SUBMIT_GCS_APP_ARCHIVE"
|
|
3428
3487
|
}
|
|
3429
3488
|
export declare type UsageMetricTotal = {
|
|
3430
3489
|
__typename?: 'UsageMetricTotal';
|
|
@@ -6644,6 +6703,7 @@ export declare type CreateAndroidBuildMutation = {
|
|
|
6644
6703
|
__typename?: 'BuildArtifacts';
|
|
6645
6704
|
buildUrl?: string | null;
|
|
6646
6705
|
xcodeBuildLogsUrl?: string | null;
|
|
6706
|
+
applicationArchiveUrl?: string | null;
|
|
6647
6707
|
} | null;
|
|
6648
6708
|
initiatingActor?: {
|
|
6649
6709
|
__typename: 'Robot';
|
|
@@ -6722,6 +6782,7 @@ export declare type CreateIosBuildMutation = {
|
|
|
6722
6782
|
__typename?: 'BuildArtifacts';
|
|
6723
6783
|
buildUrl?: string | null;
|
|
6724
6784
|
xcodeBuildLogsUrl?: string | null;
|
|
6785
|
+
applicationArchiveUrl?: string | null;
|
|
6725
6786
|
} | null;
|
|
6726
6787
|
initiatingActor?: {
|
|
6727
6788
|
__typename: 'Robot';
|
|
@@ -7258,6 +7319,7 @@ export declare type BuildsByIdQuery = {
|
|
|
7258
7319
|
__typename?: 'BuildArtifacts';
|
|
7259
7320
|
buildUrl?: string | null;
|
|
7260
7321
|
xcodeBuildLogsUrl?: string | null;
|
|
7322
|
+
applicationArchiveUrl?: string | null;
|
|
7261
7323
|
} | null;
|
|
7262
7324
|
initiatingActor?: {
|
|
7263
7325
|
__typename: 'Robot';
|
|
@@ -7359,6 +7421,7 @@ export declare type BuildsWithSubmissionsByIdQuery = {
|
|
|
7359
7421
|
__typename?: 'BuildArtifacts';
|
|
7360
7422
|
buildUrl?: string | null;
|
|
7361
7423
|
xcodeBuildLogsUrl?: string | null;
|
|
7424
|
+
applicationArchiveUrl?: string | null;
|
|
7362
7425
|
} | null;
|
|
7363
7426
|
initiatingActor?: {
|
|
7364
7427
|
__typename: 'Robot';
|
|
@@ -7432,6 +7495,7 @@ export declare type ViewBuildsOnAppQuery = {
|
|
|
7432
7495
|
__typename?: 'BuildArtifacts';
|
|
7433
7496
|
buildUrl?: string | null;
|
|
7434
7497
|
xcodeBuildLogsUrl?: string | null;
|
|
7498
|
+
applicationArchiveUrl?: string | null;
|
|
7435
7499
|
} | null;
|
|
7436
7500
|
initiatingActor?: {
|
|
7437
7501
|
__typename: 'Robot';
|
|
@@ -7862,6 +7926,7 @@ export declare type CurrentUserQuery = {
|
|
|
7862
7926
|
__typename: 'Robot';
|
|
7863
7927
|
firstName?: string | null;
|
|
7864
7928
|
id: string;
|
|
7929
|
+
featureGates: any;
|
|
7865
7930
|
isExpoAdmin: boolean;
|
|
7866
7931
|
accounts: Array<{
|
|
7867
7932
|
__typename?: 'Account';
|
|
@@ -7883,6 +7948,7 @@ export declare type CurrentUserQuery = {
|
|
|
7883
7948
|
__typename: 'User';
|
|
7884
7949
|
username: string;
|
|
7885
7950
|
id: string;
|
|
7951
|
+
featureGates: any;
|
|
7886
7952
|
isExpoAdmin: boolean;
|
|
7887
7953
|
primaryAccount: {
|
|
7888
7954
|
__typename?: 'Account';
|
|
@@ -8026,6 +8092,7 @@ export declare type BuildFragment = {
|
|
|
8026
8092
|
__typename?: 'BuildArtifacts';
|
|
8027
8093
|
buildUrl?: string | null;
|
|
8028
8094
|
xcodeBuildLogsUrl?: string | null;
|
|
8095
|
+
applicationArchiveUrl?: string | null;
|
|
8029
8096
|
} | null;
|
|
8030
8097
|
initiatingActor?: {
|
|
8031
8098
|
__typename: 'Robot';
|
|
@@ -8118,6 +8185,7 @@ export declare type BuildWithSubmissionsFragment = {
|
|
|
8118
8185
|
__typename?: 'BuildArtifacts';
|
|
8119
8186
|
buildUrl?: string | null;
|
|
8120
8187
|
xcodeBuildLogsUrl?: string | null;
|
|
8188
|
+
applicationArchiveUrl?: string | null;
|
|
8121
8189
|
} | null;
|
|
8122
8190
|
initiatingActor?: {
|
|
8123
8191
|
__typename: 'Robot';
|
|
@@ -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 = void 0;
|
|
9
|
+
exports.SubmissionStatus = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidTrack = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = exports.StatuspageServiceName = exports.StatuspageIncidentStatus = exports.StatuspageIncidentImpact = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = exports.ProjectArchiveSourceType = exports.Permission = exports.Order = exports.OfferType = exports.MailchimpTag = exports.MailchimpAudience = exports.IosSchemeBuildConfiguration = exports.IosManagedBuildType = exports.IosDistributionType = exports.IosBuildType = exports.InvoiceDiscountType = exports.GitHubAppInstallationStatus = exports.Feature = exports.EnvironmentSecretType = exports.EasServiceMetric = exports.EasBuildDeprecationInfoType = exports.DistributionType = exports.CacheControlScope = exports.BuildWorkflow = exports.BuildStatus = exports.BuildResourceClass = exports.BuildPriority = 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 = void 0;
|
|
11
11
|
var ActivityTimelineProjectActivityType;
|
|
12
12
|
(function (ActivityTimelineProjectActivityType) {
|
|
13
13
|
ActivityTimelineProjectActivityType["Build"] = "BUILD";
|
|
@@ -340,6 +340,12 @@ var SubmissionAndroidTrack;
|
|
|
340
340
|
SubmissionAndroidTrack["Internal"] = "INTERNAL";
|
|
341
341
|
SubmissionAndroidTrack["Production"] = "PRODUCTION";
|
|
342
342
|
})(SubmissionAndroidTrack = exports.SubmissionAndroidTrack || (exports.SubmissionAndroidTrack = {}));
|
|
343
|
+
var SubmissionArchiveSourceType;
|
|
344
|
+
(function (SubmissionArchiveSourceType) {
|
|
345
|
+
SubmissionArchiveSourceType["GcsBuildApplicationArchive"] = "GCS_BUILD_APPLICATION_ARCHIVE";
|
|
346
|
+
SubmissionArchiveSourceType["GcsSubmitArchive"] = "GCS_SUBMIT_ARCHIVE";
|
|
347
|
+
SubmissionArchiveSourceType["Url"] = "URL";
|
|
348
|
+
})(SubmissionArchiveSourceType = exports.SubmissionArchiveSourceType || (exports.SubmissionArchiveSourceType = {}));
|
|
343
349
|
var SubmissionStatus;
|
|
344
350
|
(function (SubmissionStatus) {
|
|
345
351
|
SubmissionStatus["AwaitingBuild"] = "AWAITING_BUILD";
|
|
@@ -351,8 +357,10 @@ var SubmissionStatus;
|
|
|
351
357
|
})(SubmissionStatus = exports.SubmissionStatus || (exports.SubmissionStatus = {}));
|
|
352
358
|
var UploadSessionType;
|
|
353
359
|
(function (UploadSessionType) {
|
|
360
|
+
UploadSessionType["EasBuildGcsProjectSources"] = "EAS_BUILD_GCS_PROJECT_SOURCES";
|
|
354
361
|
UploadSessionType["EasBuildProjectSources"] = "EAS_BUILD_PROJECT_SOURCES";
|
|
355
362
|
UploadSessionType["EasSubmitAppArchive"] = "EAS_SUBMIT_APP_ARCHIVE";
|
|
363
|
+
UploadSessionType["EasSubmitGcsAppArchive"] = "EAS_SUBMIT_GCS_APP_ARCHIVE";
|
|
356
364
|
})(UploadSessionType = exports.UploadSessionType || (exports.UploadSessionType = {}));
|
|
357
365
|
var UsageMetricType;
|
|
358
366
|
(function (UsageMetricType) {
|
|
@@ -28,12 +28,12 @@ exports.UserQuery = {
|
|
|
28
28
|
id
|
|
29
29
|
...AccountFragment
|
|
30
30
|
}
|
|
31
|
+
featureGates
|
|
31
32
|
isExpoAdmin
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
${(0, graphql_1.print)(Account_1.AccountFragmentNode)}
|
|
35
|
-
`,
|
|
36
|
-
/* variables */ undefined, {
|
|
36
|
+
`, {}, {
|
|
37
37
|
additionalTypenames: ['User'],
|
|
38
38
|
})
|
|
39
39
|
.toPromise());
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const appleRules: import("../../config/issue").IssueRule<import("../../config/schema").MetadataConfig>[];
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.appleRules = void 0;
|
|
4
|
+
const infoKeywordLength_1 = require("./infoKeywordLength");
|
|
5
|
+
const infoRestrictedWords_1 = require("./infoRestrictedWords");
|
|
6
|
+
exports.appleRules = [infoKeywordLength_1.infoKeywordLength, infoRestrictedWords_1.infoRestrictedWords];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.infoKeywordLength = void 0;
|
|
4
|
+
const filter_1 = require("../../../utils/expodash/filter");
|
|
5
|
+
const KEYWORD_CHARACTER_LIMIT = 100;
|
|
6
|
+
/**
|
|
7
|
+
* Keywords are limited to 100 characters when converted to a comma separated string.
|
|
8
|
+
* @see https://developer.apple.com/app-store/search/
|
|
9
|
+
*/
|
|
10
|
+
exports.infoKeywordLength = {
|
|
11
|
+
id: 'apple.info.keyword.length',
|
|
12
|
+
severity: 2,
|
|
13
|
+
validate(config) {
|
|
14
|
+
var _a;
|
|
15
|
+
if (!((_a = config.apple) === null || _a === void 0 ? void 0 : _a.info) || Object.keys(config.apple.info).length === 0) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
return Object.keys(config.apple.info)
|
|
19
|
+
.map(locale => {
|
|
20
|
+
var _a, _b, _c;
|
|
21
|
+
const keywords = (_c = (_b = (_a = config.apple) === null || _a === void 0 ? void 0 : _a.info) === null || _b === void 0 ? void 0 : _b[locale].keywords) !== null && _c !== void 0 ? _c : [];
|
|
22
|
+
const length = keywords.join(',').length;
|
|
23
|
+
if (length > KEYWORD_CHARACTER_LIMIT) {
|
|
24
|
+
return {
|
|
25
|
+
id: this.id,
|
|
26
|
+
severity: this.severity,
|
|
27
|
+
path: ['apple', 'info', locale, 'keywords'],
|
|
28
|
+
message: `Keywords are limited to ${KEYWORD_CHARACTER_LIMIT} characters, but found ${length}.`,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
})
|
|
33
|
+
.filter(filter_1.truthy);
|
|
34
|
+
},
|
|
35
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.infoRestrictedWords = void 0;
|
|
4
|
+
const filter_1 = require("../../../utils/expodash/filter");
|
|
5
|
+
const RESTRICTED_PROPERTIES = ['title', 'subtitle', 'description', 'keywords'];
|
|
6
|
+
const RESTRICTED_WORDS = {
|
|
7
|
+
beta: 'Apple restricts the word "beta" and synonyms implying incomplete functionality.',
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Apple restricts certain words from being used in name, description, or keywords.
|
|
11
|
+
* Using these words likely result in a rejection.
|
|
12
|
+
*/
|
|
13
|
+
exports.infoRestrictedWords = {
|
|
14
|
+
id: 'apple.info.restrictedWords',
|
|
15
|
+
severity: 1,
|
|
16
|
+
validate(config) {
|
|
17
|
+
var _a;
|
|
18
|
+
if (!((_a = config.apple) === null || _a === void 0 ? void 0 : _a.info) || Object.keys(config.apple.info).length === 0) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return Object.keys(config.apple.info)
|
|
22
|
+
.map(locale => RESTRICTED_PROPERTIES.map(property => {
|
|
23
|
+
var _a, _b;
|
|
24
|
+
const value = getStringValue((_b = (_a = config.apple) === null || _a === void 0 ? void 0 : _a.info) === null || _b === void 0 ? void 0 : _b[locale][property]);
|
|
25
|
+
const issueDescription = getDescriptionForFirstMatch(value);
|
|
26
|
+
if (issueDescription) {
|
|
27
|
+
return {
|
|
28
|
+
id: this.id,
|
|
29
|
+
severity: this.severity,
|
|
30
|
+
path: ['apple', 'info', locale, property],
|
|
31
|
+
message: issueDescription,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return null;
|
|
35
|
+
}).filter(filter_1.truthy))
|
|
36
|
+
.filter(filter_1.truthy)
|
|
37
|
+
.flat();
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
function getDescriptionForFirstMatch(value) {
|
|
41
|
+
const sanitized = value.toLowerCase();
|
|
42
|
+
for (const [word, description] of Object.entries(RESTRICTED_WORDS)) {
|
|
43
|
+
if (sanitized.includes(word)) {
|
|
44
|
+
return description;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
function getStringValue(value) {
|
|
50
|
+
if (!value) {
|
|
51
|
+
return '';
|
|
52
|
+
}
|
|
53
|
+
if (Array.isArray(value)) {
|
|
54
|
+
return value.join(' ');
|
|
55
|
+
}
|
|
56
|
+
return value;
|
|
57
|
+
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { MetadataContext } from '../../context';
|
|
2
1
|
import { AppleTask } from '../task';
|
|
3
2
|
import { AppVersionOptions } from './app-version';
|
|
4
3
|
declare type AppleTaskOptions = {
|
|
@@ -7,5 +6,5 @@ declare type AppleTaskOptions = {
|
|
|
7
6
|
/**
|
|
8
7
|
* List of all eligible tasks to sync local store configuration to the App store.
|
|
9
8
|
*/
|
|
10
|
-
export declare function createAppleTasks(
|
|
9
|
+
export declare function createAppleTasks({ version }?: AppleTaskOptions): AppleTask[];
|
|
11
10
|
export {};
|
|
@@ -8,7 +8,7 @@ const app_version_1 = require("./app-version");
|
|
|
8
8
|
/**
|
|
9
9
|
* List of all eligible tasks to sync local store configuration to the App store.
|
|
10
10
|
*/
|
|
11
|
-
function createAppleTasks(
|
|
11
|
+
function createAppleTasks({ version } = {}) {
|
|
12
12
|
return [
|
|
13
13
|
new app_version_1.AppVersionTask({ version }),
|
|
14
14
|
new app_info_1.AppInfoTask(),
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// <reference types="@expo/apple-utils/ts-declarations/expo__app-store" />
|
|
2
|
+
import { App, Session } from '@expo/apple-utils';
|
|
3
|
+
import { ExpoConfig } from '@expo/config';
|
|
4
|
+
import { SubmitProfile } from '@expo/eas-json';
|
|
5
|
+
import { CredentialsContext } from '../credentials/context';
|
|
6
|
+
export declare type MetadataAppStoreAuthentication = {
|
|
7
|
+
/** The root entity of the App store */
|
|
8
|
+
app: App;
|
|
9
|
+
/** The authentication state we used to fetch the root entity */
|
|
10
|
+
auth: Partial<Session.AuthState>;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* To start syncing ASC entities, we need access to the apple utils App instance.
|
|
14
|
+
* This resolves both the authentication and that App instance.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getAppStoreAuthAsync({ projectDir, profile, exp, credentialsCtx, }: {
|
|
17
|
+
projectDir: string;
|
|
18
|
+
profile: SubmitProfile;
|
|
19
|
+
exp: ExpoConfig;
|
|
20
|
+
credentialsCtx: CredentialsContext;
|
|
21
|
+
}): Promise<MetadataAppStoreAuthentication>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAppStoreAuthAsync = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const apple_utils_1 = require("@expo/apple-utils");
|
|
6
|
+
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
7
|
+
const authenticate_1 = require("../credentials/ios/appstore/authenticate");
|
|
8
|
+
const bundleIdentifier_1 = require("../project/ios/bundleIdentifier");
|
|
9
|
+
/**
|
|
10
|
+
* Resolve the bundle identifier from the selected submit profile.
|
|
11
|
+
* This bundle identifier is used as target for the metadata submission.
|
|
12
|
+
*/
|
|
13
|
+
async function resolveAppStoreBundleIdentifierAsync(projectDir, profile, exp) {
|
|
14
|
+
var _a;
|
|
15
|
+
if ('bundleIdentifier' in profile) {
|
|
16
|
+
return (_a = profile.bundleIdentifier) !== null && _a !== void 0 ? _a : (await (0, bundleIdentifier_1.getBundleIdentifierAsync)(projectDir, exp));
|
|
17
|
+
}
|
|
18
|
+
return await (0, bundleIdentifier_1.getBundleIdentifierAsync)(projectDir, exp);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* To start syncing ASC entities, we need access to the apple utils App instance.
|
|
22
|
+
* This resolves both the authentication and that App instance.
|
|
23
|
+
*/
|
|
24
|
+
async function getAppStoreAuthAsync({ projectDir, profile, exp, credentialsCtx, }) {
|
|
25
|
+
const bundleId = await resolveAppStoreBundleIdentifierAsync(projectDir, profile, exp);
|
|
26
|
+
const authCtx = await credentialsCtx.appStore.ensureAuthenticatedAsync();
|
|
27
|
+
(0, assert_1.default)(authCtx.authState, 'Failed to authenticate with App Store Connect');
|
|
28
|
+
// TODO: improve error handling by mentioning possible configuration errors
|
|
29
|
+
const app = await apple_utils_1.App.findAsync((0, authenticate_1.getRequestContext)(authCtx), { bundleId });
|
|
30
|
+
(0, assert_1.default)(app, `Failed to load app "${bundleId}" from App Store Connect`);
|
|
31
|
+
return { app, auth: authCtx.authState };
|
|
32
|
+
}
|
|
33
|
+
exports.getAppStoreAuthAsync = getAppStoreAuthAsync;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { MetadataConfig } from './schema';
|
|
2
|
+
export declare enum IssueSeverity {
|
|
3
|
+
info = 0,
|
|
4
|
+
warn = 1,
|
|
5
|
+
error = 2
|
|
6
|
+
}
|
|
7
|
+
export interface Issue {
|
|
8
|
+
/** The type of issue, auto-generated for AJV errors based on the validation type */
|
|
9
|
+
id: string;
|
|
10
|
+
/** The severity of the lint message */
|
|
11
|
+
severity: IssueSeverity;
|
|
12
|
+
/** The data path, using segments, to the source of this message */
|
|
13
|
+
path: string[];
|
|
14
|
+
/** A human readable description of the issue, presented to users */
|
|
15
|
+
message: string;
|
|
16
|
+
}
|
|
17
|
+
export interface IssueRule<Data = MetadataConfig> {
|
|
18
|
+
id: string;
|
|
19
|
+
severity: IssueSeverity;
|
|
20
|
+
validate(config: Data): null | Issue | Issue[];
|
|
21
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IssueSeverity = void 0;
|
|
4
|
+
var IssueSeverity;
|
|
5
|
+
(function (IssueSeverity) {
|
|
6
|
+
IssueSeverity[IssueSeverity["info"] = 0] = "info";
|
|
7
|
+
IssueSeverity[IssueSeverity["warn"] = 1] = "warn";
|
|
8
|
+
IssueSeverity[IssueSeverity["error"] = 2] = "error";
|
|
9
|
+
})(IssueSeverity = exports.IssueSeverity || (exports.IssueSeverity = {}));
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { SubmitProfile } from '@expo/eas-json';
|
|
2
|
+
import { AppleConfigReader } from '../apple/config/reader';
|
|
3
|
+
import { AppleConfigWriter } from '../apple/config/writer';
|
|
4
|
+
import { MetadataConfig } from './schema';
|
|
5
|
+
/**
|
|
6
|
+
* Get the static configuration file path, based on the metadata context.
|
|
7
|
+
* This uses any custom name provided, but swaps out the extension for `.json`.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getStaticConfigFilePath({ projectDir, profile, }: {
|
|
10
|
+
projectDir: string;
|
|
11
|
+
profile: SubmitProfile;
|
|
12
|
+
}): string;
|
|
13
|
+
/**
|
|
14
|
+
* Load the store configuration from a metadata context.
|
|
15
|
+
* This can load `.json` and `.js` config files, using `require`.
|
|
16
|
+
* It throws MetadataValidationErrors when the file doesn't exist, or contains errors.
|
|
17
|
+
* The user is prompted to try anyway when errors are found.
|
|
18
|
+
*/
|
|
19
|
+
export declare function loadConfigAsync({ projectDir, profile, skipValidation, }: {
|
|
20
|
+
projectDir: string;
|
|
21
|
+
profile: SubmitProfile;
|
|
22
|
+
skipValidation?: boolean;
|
|
23
|
+
}): Promise<MetadataConfig>;
|
|
24
|
+
/** Create a versioned deserializer to fetch App Store data from the store configuration. */
|
|
25
|
+
export declare function createAppleReader(config: MetadataConfig): AppleConfigReader;
|
|
26
|
+
/** Create the serializer to write the App Store to the store configuration. */
|
|
27
|
+
export declare function createAppleWriter(): AppleConfigWriter;
|