mirror of
https://github.com/expo/eas-cli.git
synced 2026-11-13 20:28:08 -10:00
Compare commits
15
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9fde84211c | ||
|
|
b2d0f862b6 | ||
|
|
ce35266710 | ||
|
|
b1df501672 | ||
|
|
2ecd09031e | ||
|
|
677578cb42 | ||
|
|
78d82f62ce | ||
|
|
d442ddede6 | ||
|
|
293ee3d8fb | ||
|
|
7c5371767c | ||
|
|
28182e7aef | ||
|
|
04a8b08f59 | ||
|
|
8bce9b19b2 | ||
|
|
d3d6d41f9f | ||
|
|
0534328dfc |
No files matched your search
File renamed without changes.
@@ -0,0 +1,146 @@
|
||||
name: Issue Triage
|
||||
on:
|
||||
issues:
|
||||
types: [labeled]
|
||||
|
||||
jobs:
|
||||
needs-repro:
|
||||
runs-on: ubuntu-20.04
|
||||
if: "${{ contains(github.event.label.name, 'incomplete issue: missing or invalid repro') }}"
|
||||
steps:
|
||||
- uses: actions/github-script@v3
|
||||
with:
|
||||
github-token: ${{ secrets.EXPO_BOT_GITHUB_TOKEN }}
|
||||
script: |
|
||||
github.issues.createComment({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: `Hi there! It looks like your issue requires a minimal reproducible example, but it is invalid or absent. Please prepare such an example and share it in a new issue.
|
||||
|
||||
**The best way to get attention to your issue is to provide a clean and easy way for a developer to reproduce the issue on their own machine.** Please do not provide your entire project, or a project with more code than is necessary to reproduce the issue.
|
||||
|
||||
A side benefit of going through the process of narrowing down the minimal amount of code needed to reproduce the issue is that you may get lucky and discover that the bug is due to a mistake in your application code that you can quickly fix on your own.
|
||||
|
||||
### Resources
|
||||
|
||||
- ["How to create a Minimal, Reproducible Example"](https://stackoverflow.com/help/minimal-reproducible-example)
|
||||
- ["How to narrow down the source of an error"](https://expo.fyi/manual-debugging)
|
||||
|
||||
### Common concerns
|
||||
|
||||
#### "I've only been able to reproduce it in private, proprietary code"
|
||||
|
||||
You may not have spent enough time narrowing down the root cause of the issue. Try out the techniques discussed in this [manual debugging guide](https://expo.fyi/manual-debugging) to learn how to isolate the problem from the rest of your codebase.
|
||||
|
||||
#### "I didn't have time to create one"
|
||||
|
||||
That's understandable, it can take some time to prepare. We ask that you hold off on filing an issue until you are able to fully complete the required fields in the issue template.
|
||||
|
||||
#### "You can reproduce it by yourself by creating a project and following these steps"
|
||||
|
||||
This is useful knowledge, but it's still valuable to have the resulting project that is produced from running the steps, where you have verified you can reproduce the issue.
|
||||
`})
|
||||
github.issues.update({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
state: 'closed'
|
||||
})
|
||||
|
||||
needs-info:
|
||||
runs-on: ubuntu-20.04
|
||||
if: "${{ contains(github.event.label.name, 'incomplete issue: missing info') }}"
|
||||
steps:
|
||||
- uses: actions/github-script@v3
|
||||
with:
|
||||
github-token: ${{ secrets.EXPO_BOT_GITHUB_TOKEN }}
|
||||
script: |
|
||||
github.issues.createComment({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: `Hello! There isn't enough information provided in your issue description for us to be able to help you. The best way to get help is to provide information to enable other developers to understand the issue and reproduce it on their own machines.
|
||||
|
||||
Please create a new issue and fill out the entire issue template to the best of your ability. Refer to the following resources for more information on how to create a good issue report.
|
||||
|
||||
### Resources
|
||||
|
||||
- ["How do I ask a good question?"](https://stackoverflow.com/help/how-to-ask)
|
||||
- ["How to create a Minimal, Reproducible Example"](https://stackoverflow.com/help/minimal-reproducible-example)
|
||||
- ["How to narrow down the source of an error"](https://expo.fyi/manual-debugging)
|
||||
`})
|
||||
github.issues.update({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
state: 'closed'
|
||||
})
|
||||
|
||||
issue-accepted:
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.event.label.name == 'issue accepted'
|
||||
steps:
|
||||
- uses: actions/github-script@v3
|
||||
with:
|
||||
github-token: ${{ secrets.EXPO_BOT_GITHUB_TOKEN }}
|
||||
script: |
|
||||
github.issues.createComment({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: `Thank you for filing this issue!
|
||||
This comment acknowledges we believe this may be a bug and there’s enough information to investigate it.
|
||||
However, we can’t promise any sort of timeline for resolution. We prioritize issues based on severity, breadth of impact, and alignment with our roadmap. If you’d like to help move it more quickly, you can continue to investigate it more deeply and/or you can open a pull request that fixes the cause.
|
||||
`})
|
||||
|
||||
question:
|
||||
runs-on: ubuntu-20.04
|
||||
if: "${{ contains(github.event.label.name, 'invalid issue: question') }}"
|
||||
steps:
|
||||
- uses: actions/github-script@v3
|
||||
with:
|
||||
github-token: ${{ secrets.EXPO_BOT_GITHUB_TOKEN }}
|
||||
script: |
|
||||
github.issues.createComment({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: `Hello! Our GitHub issues are reserved for bug reports.
|
||||
|
||||
If you have a question about Expo or related tools, please post on our forums at https://forums.expo.dev/ or join our Discord at https://chat.expo.dev/.
|
||||
|
||||
### Resources
|
||||
|
||||
- ["How do I ask a good question?"](https://stackoverflow.com/help/how-to-ask)
|
||||
- ["Join the community"](https://docs.expo.dev/next-steps/community/)
|
||||
`})
|
||||
github.issues.update({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
state: 'closed'
|
||||
})
|
||||
|
||||
feature-request:
|
||||
runs-on: ubuntu-20.04
|
||||
if: "${{ contains(github.event.label.name, 'invalid issue: feature request') }}"
|
||||
steps:
|
||||
- uses: actions/github-script@v3
|
||||
with:
|
||||
github-token: ${{ secrets.EXPO_BOT_GITHUB_TOKEN }}
|
||||
script: |
|
||||
github.issues.createComment({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: `Hello! Our GitHub issues are reserved for bug reports.
|
||||
|
||||
If you would like to request a feature, please post to https://expo.canny.io/feature-requests.
|
||||
`})
|
||||
github.issues.update({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
state: 'closed'
|
||||
})
|
||||
@@ -0,0 +1,26 @@
|
||||
name: Test scripts
|
||||
|
||||
defaults:
|
||||
run:
|
||||
working-directory: scripts
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
paths:
|
||||
- 'scripts/**'
|
||||
pull_request:
|
||||
paths:
|
||||
- 'scripts/**'
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup node
|
||||
uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 18
|
||||
- run: yarn install --frozen-lockfile --check-files
|
||||
- run: yarn typecheck
|
||||
@@ -2,6 +2,7 @@
|
||||
packages/*/build
|
||||
packages/eas-cli/dist
|
||||
packages/eas-cli/tmp
|
||||
scripts/build
|
||||
|
||||
# Code editors
|
||||
.idea
|
||||
@@ -18,3 +19,6 @@ node_modules
|
||||
|
||||
# Tests
|
||||
coverage
|
||||
|
||||
# Copies of script for testing ESM imports
|
||||
packages/*/scripts/testESMImports.ts
|
||||
@@ -22,6 +22,8 @@ This is the log of notable changes to EAS CLI and related packages.
|
||||
|
||||
- Update validation rules for metadata info locales. ([#1174](https://github.com/expo/eas-cli/pull/1174) by [@byCedric](https://github.com/byCedric))
|
||||
- Improve store configuration defaults and schema documentation. ([#1183](https://github.com/expo/eas-cli/pull/1183) by [@byCedric](https://github.com/byCedric))
|
||||
- Improve store config categories configuration. ([#1187](https://github.com/expo/eas-cli/pull/1187) by [@byCedric](https://github.com/byCedric))
|
||||
- Remove deprecated idfa and price tier from store config. ([#1193](https://github.com/expo/eas-cli/pull/1193) by [@byCedric](https://github.com/byCedric))
|
||||
|
||||
## [0.54.1](https://github.com/expo/eas-cli/releases/tag/v0.54.1) - 2022-06-15
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
projects: [
|
||||
require('./packages/eas-cli/jest.config.cjs'),
|
||||
require('./packages/eas-json/jest.config.cjs'),
|
||||
],
|
||||
testPathIgnorePatterns: ['.*'],
|
||||
};
|
||||
@@ -1,7 +0,0 @@
|
||||
module.exports = {
|
||||
projects: [
|
||||
require('./packages/eas-cli/jest.config.js'),
|
||||
require('./packages/eas-json/jest.config.js'),
|
||||
],
|
||||
testPathIgnorePatterns: ['.*'],
|
||||
};
|
||||
@@ -1,7 +1,15 @@
|
||||
module.exports = {
|
||||
preset: 'ts-jest',
|
||||
preset: 'ts-jest/presets/default-esm',
|
||||
testEnvironment: 'node',
|
||||
testRegex: '/__tests__/.*(test|spec)\\.[jt]sx?$',
|
||||
watchPlugins: ['jest-watch-typeahead/filename', 'jest-watch-typeahead/testname'],
|
||||
collectCoverageFrom: ['<rootDir>/src/**/*.{ts,tsx,js,jsx}'],
|
||||
globals: {
|
||||
'ts-jest': {
|
||||
useESM: true,
|
||||
},
|
||||
},
|
||||
moduleNameMapper: {
|
||||
'^(\\.{1,2}/.*)\\.js$': '$1',
|
||||
},
|
||||
};
|
||||
+5
-3
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"workspaces": [
|
||||
"packages/*"
|
||||
],
|
||||
@@ -13,8 +14,9 @@
|
||||
"eas": "packages/eas-cli/bin/run",
|
||||
"lint": "eslint .",
|
||||
"release": "./scripts/bin/run update-local-plugin && lerna version --exact",
|
||||
"test": "jest",
|
||||
"clean": "lerna run clean && rm -rf node_modules coverage"
|
||||
"test": "NODE_OPTIONS=--experimental-vm-modules jest",
|
||||
"clean": "lerna run clean && rm -rf node_modules coverage",
|
||||
"test-esm-imports": "lerna run test-esm-imports"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jest": "27.5.0",
|
||||
@@ -29,7 +31,7 @@
|
||||
"oclif": "3.0.1",
|
||||
"prettier": "2.6.2",
|
||||
"ts-jest": "28.0.2",
|
||||
"typescript": "4.6.4"
|
||||
"typescript": "4.7.4"
|
||||
},
|
||||
"volta": {
|
||||
"node": "18.2.0",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const rootEslintrc = require('../../.eslintrc.js');
|
||||
const rootEslintrc = require('../../.eslintrc.cjs');
|
||||
|
||||
module.exports = {
|
||||
rules: {
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
require('@oclif/core')
|
||||
.run()
|
||||
.then(require('@oclif/core/flush'))
|
||||
.catch(require('@oclif/core/handle'));
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
import { Errors, flush, run } from '@oclif/core';
|
||||
|
||||
run(undefined, import.meta.url)
|
||||
.then(flush)
|
||||
.catch(Errors.handle);
|
||||
@@ -1,5 +1,5 @@
|
||||
module.exports = {
|
||||
...require('../../jest/jest.config.js'),
|
||||
...require('../../jest/jest.config.cjs'),
|
||||
rootDir: __dirname,
|
||||
roots: ['src', '__mocks__'],
|
||||
globalSetup: './jest/global-setup.ts',
|
||||
@@ -1,3 +1,5 @@
|
||||
import { jest } from '@jest/globals';
|
||||
|
||||
/* eslint-disable no-console */
|
||||
beforeAll(() => {
|
||||
console.log = jest.fn();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"name": "eas-cli",
|
||||
"type": "module",
|
||||
"description": "EAS command line tool",
|
||||
"version": "0.54.1",
|
||||
"author": "Expo <[email protected]>",
|
||||
@@ -27,7 +28,7 @@
|
||||
"@expo/rudder-sdk-node": "1.1.1",
|
||||
"@expo/spawn-async": "1.6.0",
|
||||
"@expo/timeago.js": "1.0.0",
|
||||
"@oclif/core": "1.9.0",
|
||||
"@oclif/core": "1.9.5",
|
||||
"@urql/core": "2.4.4",
|
||||
"@urql/exchange-retry": "0.3.3",
|
||||
"ajv": "^6.12.6",
|
||||
@@ -81,6 +82,7 @@
|
||||
"@graphql-codegen/introspection": "2.1.1",
|
||||
"@graphql-codegen/typescript": "2.4.11",
|
||||
"@graphql-codegen/typescript-operations": "2.4.0",
|
||||
"@jest/globals": "28.1.2",
|
||||
"@types/cli-progress": "3.9.2",
|
||||
"@types/dateformat": "3.0.1",
|
||||
"@types/envinfo": "7.8.1",
|
||||
@@ -98,15 +100,17 @@
|
||||
"axios": "0.27.2",
|
||||
"eslint-plugin-graphql": "4.0.0",
|
||||
"form-data": "4.0.0",
|
||||
"globby": "13.1.2",
|
||||
"memfs": "3.4.3",
|
||||
"mockdate": "3.0.5",
|
||||
"nock": "13.2.4",
|
||||
"tempy": "0.7.0",
|
||||
"ts-deepmerge": "2.0.1",
|
||||
"typescript": "4.6.4"
|
||||
"ts-node": "10.8.2",
|
||||
"typescript": "4.7.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
"node": ">=14.16"
|
||||
},
|
||||
"files": [
|
||||
"/bin",
|
||||
@@ -196,9 +200,14 @@
|
||||
"build": "tsc --project tsconfig.build.json",
|
||||
"watch": "yarn build --watch --preserveWatchOutput",
|
||||
"typecheck": "tsc",
|
||||
"test": "jest",
|
||||
"version": "yarn oclif readme && node scripts/patch-readme && git add README.md",
|
||||
"test": "NODE_OPTIONS=--experimental-vm-modules jest",
|
||||
"version": "yarn oclif readme && node scripts/patch-readme.cjs && git add README.md",
|
||||
"generate-graphql-code": "graphql-codegen --config graphql-codegen.yml",
|
||||
"clean": "rm -rf dist build tmp node_modules yarn-error.log"
|
||||
"clean": "rm -rf dist build tmp node_modules yarn-error.log",
|
||||
"test-esm-imports": "cp ../../scripts/src/testESMImports.ts scripts/ && ts-node-esm ./scripts/testESMImports.ts 'build/**/*.js'"
|
||||
},
|
||||
"volta": {
|
||||
"node": "18.2.0",
|
||||
"yarn": "1.22.18"
|
||||
}
|
||||
}
|
||||
@@ -33,96 +33,152 @@
|
||||
]
|
||||
},
|
||||
"AppleCategory": {
|
||||
"enum": [
|
||||
"FOOD_AND_DRINK",
|
||||
"BUSINESS",
|
||||
"EDUCATION",
|
||||
"SOCIAL_NETWORKING",
|
||||
"BOOKS",
|
||||
"SPORTS",
|
||||
"FINANCE",
|
||||
"REFERENCE",
|
||||
"GRAPHICS_AND_DESIGN",
|
||||
"DEVELOPER_TOOLS",
|
||||
"HEALTH_AND_FITNESS",
|
||||
"MUSIC",
|
||||
"WEATHER",
|
||||
"TRAVEL",
|
||||
"ENTERTAINMENT",
|
||||
"STICKERS",
|
||||
"GAMES",
|
||||
"LIFESTYLE",
|
||||
"MEDICAL",
|
||||
"MAGAZINES_AND_NEWSPAPERS",
|
||||
"UTILITIES",
|
||||
"SHOPPING",
|
||||
"PRODUCTIVITY",
|
||||
"NEWS",
|
||||
"PHOTO_AND_VIDEO",
|
||||
"NAVIGATION"
|
||||
]
|
||||
},
|
||||
"AppleSubcategory": {
|
||||
"enum": [
|
||||
"STICKERS_PLACES_AND_OBJECTS",
|
||||
"STICKERS_EMOJI_AND_EXPRESSIONS",
|
||||
"STICKERS_CELEBRATIONS",
|
||||
"STICKERS_CELEBRITIES",
|
||||
"STICKERS_MOVIES_AND_TV",
|
||||
"STICKERS_SPORTS_AND_ACTIVITIES",
|
||||
"STICKERS_EATING_AND_DRINKING",
|
||||
"STICKERS_CHARACTERS",
|
||||
"STICKERS_ANIMALS",
|
||||
"STICKERS_FASHION",
|
||||
"STICKERS_ART",
|
||||
"STICKERS_GAMING",
|
||||
"STICKERS_KIDS_AND_FAMILY",
|
||||
"STICKERS_PEOPLE",
|
||||
"STICKERS_MUSIC",
|
||||
"GAMES_SPORTS",
|
||||
"GAMES_WORD",
|
||||
"GAMES_MUSIC",
|
||||
"GAMES_ADVENTURE",
|
||||
"GAMES_ACTION",
|
||||
"GAMES_ROLE_PLAYING",
|
||||
"GAMES_CASUAL",
|
||||
"GAMES_BOARD",
|
||||
"GAMES_TRIVIA",
|
||||
"GAMES_CARD",
|
||||
"GAMES_PUZZLE",
|
||||
"GAMES_CASINO",
|
||||
"GAMES_STRATEGY",
|
||||
"GAMES_SIMULATION",
|
||||
"GAMES_RACING",
|
||||
"GAMES_FAMILY"
|
||||
]
|
||||
},
|
||||
"AppleIdfa": {
|
||||
"description": "Identifier for Advertisers",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"type": "array",
|
||||
"description": "App Store categories for the app, can add up to two categories. The first item in this list is the primary category, the second is the secondary and optional category. `STICKERS` and `GAMES` categories can add up to two additional subcategories, written as nested array.",
|
||||
"markdownDescription": "App Store categories for the app, can add up to two categories. The first item in this list is the primary category, the second is the secondary and optional category. `STICKERS` and `GAMES` categories can add up to two additional subcategories, written as nested array. E.g.\n\n- `[\"SPORTS\"]`\n- `[\"SPORTS\", \"LIFESTYLE\"]`\n- `[[\"GAMES\", \"GAMES_CARD\"], \"ENTERTAINMENT\"]`\n- `[\"GAMES\", \"WEATHER\"]`",
|
||||
"minItems": 1,
|
||||
"maxItems": 2,
|
||||
"uniqueItems": true,
|
||||
"defaultSnippets": [
|
||||
{
|
||||
"body": {
|
||||
"servesAds": false,
|
||||
"attributesAppInstallationToPreviousAd": false,
|
||||
"attributesActionWithPreviousAd": false,
|
||||
"honorsLimitedAdTracking": false
|
||||
}
|
||||
"label": "Basic categories",
|
||||
"description": "Add two simple categories",
|
||||
"body": [
|
||||
"$1",
|
||||
"$2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "Category with subcategories",
|
||||
"description": "Add a category containing subcategories",
|
||||
"body": [
|
||||
[
|
||||
"${1|GAMES,STICKERS|}",
|
||||
"$3",
|
||||
"$4"
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"servesAds": {
|
||||
"type": "boolean"
|
||||
"items": {
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/apple/AppleCategory/categories/root"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/apple/AppleCategory/categories/parent"
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"description": "The GAMES category can have additional subcategories",
|
||||
"minItems": 1,
|
||||
"maxItems": 3,
|
||||
"uniqueItems": true,
|
||||
"items": [
|
||||
{
|
||||
"const": "GAMES"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/apple/AppleCategory/categories/games"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/apple/AppleCategory/categories/games"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"description": "The STICKERS category can have additional subcategories",
|
||||
"minItems": 1,
|
||||
"maxItems": 3,
|
||||
"uniqueItems": true,
|
||||
"items": [
|
||||
{
|
||||
"const": "STICKERS"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/apple/AppleCategory/categories/stickers"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/apple/AppleCategory/categories/stickers"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"categories": {
|
||||
"root": {
|
||||
"enum": [
|
||||
"BUSINESS",
|
||||
"SOCIAL_NETWORKING",
|
||||
"MEDICAL",
|
||||
"FOOD_AND_DRINK",
|
||||
"EDUCATION",
|
||||
"BOOKS",
|
||||
"SPORTS",
|
||||
"FINANCE",
|
||||
"REFERENCE",
|
||||
"GRAPHICS_AND_DESIGN",
|
||||
"DEVELOPER_TOOLS",
|
||||
"HEALTH_AND_FITNESS",
|
||||
"MUSIC",
|
||||
"WEATHER",
|
||||
"TRAVEL",
|
||||
"ENTERTAINMENT",
|
||||
"LIFESTYLE",
|
||||
"MAGAZINES_AND_NEWSPAPERS",
|
||||
"UTILITIES",
|
||||
"SHOPPING",
|
||||
"PRODUCTIVITY",
|
||||
"NEWS",
|
||||
"PHOTO_AND_VIDEO",
|
||||
"NAVIGATION"
|
||||
]
|
||||
},
|
||||
"attributesAppInstallationToPreviousAd": {
|
||||
"type": "boolean"
|
||||
"parent": {
|
||||
"enum": [
|
||||
"GAMES",
|
||||
"STICKERS"
|
||||
]
|
||||
},
|
||||
"attributesActionWithPreviousAd": {
|
||||
"type": "boolean"
|
||||
"games": {
|
||||
"enum": [
|
||||
"GAMES_SPORTS",
|
||||
"GAMES_WORD",
|
||||
"GAMES_MUSIC",
|
||||
"GAMES_ADVENTURE",
|
||||
"GAMES_ACTION",
|
||||
"GAMES_ROLE_PLAYING",
|
||||
"GAMES_CASUAL",
|
||||
"GAMES_BOARD",
|
||||
"GAMES_TRIVIA",
|
||||
"GAMES_CARD",
|
||||
"GAMES_PUZZLE",
|
||||
"GAMES_CASINO",
|
||||
"GAMES_STRATEGY",
|
||||
"GAMES_SIMULATION",
|
||||
"GAMES_RACING",
|
||||
"GAMES_FAMILY"
|
||||
]
|
||||
},
|
||||
"honorsLimitedAdTracking": {
|
||||
"type": "boolean"
|
||||
"stickers": {
|
||||
"enum": [
|
||||
"STICKERS_PLACES_AND_OBJECTS",
|
||||
"STICKERS_EMOJI_AND_EXPRESSIONS",
|
||||
"STICKERS_CELEBRATIONS",
|
||||
"STICKERS_CELEBRITIES",
|
||||
"STICKERS_MOVIES_AND_TV",
|
||||
"STICKERS_SPORTS_AND_ACTIVITIES",
|
||||
"STICKERS_EATING_AND_DRINKING",
|
||||
"STICKERS_CHARACTERS",
|
||||
"STICKERS_ANIMALS",
|
||||
"STICKERS_FASHION",
|
||||
"STICKERS_ART",
|
||||
"STICKERS_GAMING",
|
||||
"STICKERS_KIDS_AND_FAMILY",
|
||||
"STICKERS_PEOPLE",
|
||||
"STICKERS_MUSIC"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -554,79 +610,7 @@
|
||||
"$ref": "#/definitions/apple/AppleAdvisory"
|
||||
},
|
||||
"categories": {
|
||||
"type": "array",
|
||||
"maxItems": 2,
|
||||
"description": "App Store categories for the app. Can add up to two categories. STICKERS and GAMES categories can add an additional subcategory.",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/apple/AppleCategory"
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"maxItems": 2,
|
||||
"items": [
|
||||
{
|
||||
"enum": [
|
||||
"GAMES"
|
||||
]
|
||||
},
|
||||
{
|
||||
"enum": [
|
||||
"GAMES_SPORTS",
|
||||
"GAMES_WORD",
|
||||
"GAMES_MUSIC",
|
||||
"GAMES_ADVENTURE",
|
||||
"GAMES_ACTION",
|
||||
"GAMES_ROLE_PLAYING",
|
||||
"GAMES_CASUAL",
|
||||
"GAMES_BOARD",
|
||||
"GAMES_TRIVIA",
|
||||
"GAMES_CARD",
|
||||
"GAMES_PUZZLE",
|
||||
"GAMES_CASINO",
|
||||
"GAMES_STRATEGY",
|
||||
"GAMES_SIMULATION",
|
||||
"GAMES_RACING",
|
||||
"GAMES_FAMILY"
|
||||
]
|
||||
}
|
||||
],
|
||||
"additionalItems": false
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"maxItems": 2,
|
||||
"items": [
|
||||
{
|
||||
"enum": [
|
||||
"STICKERS"
|
||||
]
|
||||
},
|
||||
{
|
||||
"enum": [
|
||||
"STICKERS_PLACES_AND_OBJECTS",
|
||||
"STICKERS_EMOJI_AND_EXPRESSIONS",
|
||||
"STICKERS_CELEBRATIONS",
|
||||
"STICKERS_CELEBRITIES",
|
||||
"STICKERS_MOVIES_AND_TV",
|
||||
"STICKERS_SPORTS_AND_ACTIVITIES",
|
||||
"STICKERS_EATING_AND_DRINKING",
|
||||
"STICKERS_CHARACTERS",
|
||||
"STICKERS_ANIMALS",
|
||||
"STICKERS_FASHION",
|
||||
"STICKERS_ART",
|
||||
"STICKERS_GAMING",
|
||||
"STICKERS_KIDS_AND_FAMILY",
|
||||
"STICKERS_PEOPLE",
|
||||
"STICKERS_MUSIC"
|
||||
]
|
||||
}
|
||||
],
|
||||
"additionalItems": false
|
||||
}
|
||||
]
|
||||
}
|
||||
"$ref": "#/definitions/apple/AppleCategory"
|
||||
},
|
||||
"copyright": {
|
||||
"type": "string",
|
||||
@@ -642,9 +626,6 @@
|
||||
"storeInfo": "The name of the person or entity that owns the exclusive rights to your app, preceded by the year the rights were obtained (for example, \"2008 Acme Inc.\"). Do not provide a URL."
|
||||
}
|
||||
},
|
||||
"idfa": {
|
||||
"$ref": "#/definitions/apple/AppleIdfa"
|
||||
},
|
||||
"info": {
|
||||
"description": "Localized core app info",
|
||||
"type": "object",
|
||||
@@ -986,10 +967,6 @@
|
||||
"review": {
|
||||
"$ref": "#/definitions/apple/AppleReview",
|
||||
"description": "Info for the App Store reviewer"
|
||||
},
|
||||
"priceTier": {
|
||||
"type": "number",
|
||||
"description": "App price tier. 0 is Free."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File renamed without changes.
@@ -1,7 +1,7 @@
|
||||
import assert from 'assert';
|
||||
import nock from 'nock';
|
||||
|
||||
import { ApiV2Error, api, getExpoApiBaseUrl } from '../api';
|
||||
import { ApiV2Error, api, getExpoApiBaseUrl } from '../api.js';
|
||||
|
||||
describe('apiClient', () => {
|
||||
it('converts Expo APIv2 error to ApiV2Error', async () => {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Actor } from '../user/User';
|
||||
import { Actor } from '../user/User.js';
|
||||
|
||||
interface MockProject {
|
||||
projectRoot: string;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { fixArchiveUrl } from '../uploads';
|
||||
import { fixArchiveUrl } from '../uploads.js';
|
||||
|
||||
describe(fixArchiveUrl, () => {
|
||||
it('fixes broken links', () => {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Analytics, Event } from './events';
|
||||
import { Analytics, Event } from './events.js';
|
||||
|
||||
export type TrackingContext = Record<string, string | number | boolean>;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { logEvent } from './rudderstackClient';
|
||||
import { logEvent } from './rudderstackClient.js';
|
||||
export type Event = BuildEvent | SubmissionEvent | MetadataEvent;
|
||||
|
||||
export enum SubmissionEvent {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import RudderAnalytics from '@expo/rudder-sdk-node';
|
||||
import RudderAnalyticsModule from '@expo/rudder-sdk-node';
|
||||
import os from 'os';
|
||||
import { URL } from 'url';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
||||
import UserSettings from '../user/UserSettings';
|
||||
import { easCliVersion } from '../utils/easCli';
|
||||
import UserSettings from '../user/UserSettings.js';
|
||||
import { easCliVersion } from '../utils/easCli.js';
|
||||
|
||||
const RudderAnalytics = RudderAnalyticsModule.default;
|
||||
|
||||
const PLATFORM_TO_ANALYTICS_PLATFORM: { [platform: string]: string } = {
|
||||
darwin: 'Mac',
|
||||
@@ -12,7 +14,7 @@ const PLATFORM_TO_ANALYTICS_PLATFORM: { [platform: string]: string } = {
|
||||
linux: 'Linux',
|
||||
};
|
||||
|
||||
let rudderstackClient: RudderAnalytics | null = null;
|
||||
let rudderstackClient: RudderAnalyticsModule.default | null = null;
|
||||
let userIdentified = false;
|
||||
let identifyData: {
|
||||
userId: string;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { JSONValue } from '@expo/json-file';
|
||||
|
||||
import fetch, { RequestError, RequestInit } from './fetch';
|
||||
import { getAccessToken, getSessionSecret } from './user/sessionStorage';
|
||||
import fetch, { RequestError, RequestInit } from './fetch.js';
|
||||
import { getAccessToken, getSessionSecret } from './user/sessionStorage.js';
|
||||
|
||||
export class ApiV2Error extends Error {
|
||||
readonly name = 'ApiV2Error';
|
||||
|
||||
@@ -7,13 +7,16 @@ import { vol } from 'memfs';
|
||||
import os from 'os';
|
||||
import path from 'path';
|
||||
|
||||
import { getAppBuildGradleAsync, resolveConfigValue } from '../../../project/android/gradleUtils';
|
||||
import {
|
||||
getAppBuildGradleAsync,
|
||||
resolveConfigValue,
|
||||
} from '../../../project/android/gradleUtils.js';
|
||||
import {
|
||||
BumpStrategy,
|
||||
bumpVersionAsync,
|
||||
bumpVersionInAppJsonAsync,
|
||||
maybeResolveVersionsAsync,
|
||||
} from '../version';
|
||||
} from '../version.js';
|
||||
|
||||
const fsReal = jest.requireActual('fs').promises as typeof fs;
|
||||
jest.mock('fs');
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
import { Android, Job, Metadata, Platform, Workflow } from '@expo/eas-build-job';
|
||||
import chalk from 'chalk';
|
||||
import nullthrows from 'nullthrows';
|
||||
|
||||
import AndroidCredentialsProvider, {
|
||||
AndroidCredentials,
|
||||
} from '../../credentials/android/AndroidCredentialsProvider';
|
||||
import { BuildParamsInput } from '../../graphql/generated';
|
||||
import { BuildMutation, BuildResult } from '../../graphql/mutations/BuildMutation';
|
||||
import Log from '../../log';
|
||||
} from '../../credentials/android/AndroidCredentialsProvider.js';
|
||||
import { BuildParamsInput } from '../../graphql/generated.js';
|
||||
import { BuildMutation, BuildResult } from '../../graphql/mutations/BuildMutation.js';
|
||||
import Log from '../../log.js';
|
||||
import {
|
||||
ensureApplicationIdIsDefinedForManagedProjectAsync,
|
||||
getApplicationIdAsync,
|
||||
} from '../../project/android/applicationId';
|
||||
import { resolveGradleBuildContextAsync } from '../../project/android/gradle';
|
||||
import { toggleConfirmAsync } from '../../prompts';
|
||||
import { findAccountByName } from '../../user/Account';
|
||||
} from '../../project/android/applicationId.js';
|
||||
import { resolveGradleBuildContextAsync } from '../../project/android/gradle.js';
|
||||
import { toggleConfirmAsync } from '../../prompts.js';
|
||||
import { findAccountByName } from '../../user/Account.js';
|
||||
import { nullthrows } from '../../utils/nullthrows.js';
|
||||
import {
|
||||
BuildRequestSender,
|
||||
CredentialsResult,
|
||||
JobData,
|
||||
prepareBuildRequestForPlatformAsync,
|
||||
} from '../build';
|
||||
import { AndroidBuildContext, BuildContext, CommonContext } from '../context';
|
||||
import { transformMetadata } from '../graphql';
|
||||
import { logCredentialsSource } from '../utils/credentials';
|
||||
import { checkGoogleServicesFileAsync, checkNodeEnvVariable } from '../validate';
|
||||
import { transformJob } from './graphql';
|
||||
import { prepareJobAsync } from './prepareJob';
|
||||
import { syncProjectConfigurationAsync } from './syncProjectConfiguration';
|
||||
} from '../build.js';
|
||||
import { AndroidBuildContext, BuildContext, CommonContext } from '../context.js';
|
||||
import { transformMetadata } from '../graphql.js';
|
||||
import { logCredentialsSource } from '../utils/credentials.js';
|
||||
import { checkGoogleServicesFileAsync, checkNodeEnvVariable } from '../validate.js';
|
||||
import { transformJob } from './graphql.js';
|
||||
import { prepareJobAsync } from './prepareJob.js';
|
||||
import { syncProjectConfigurationAsync } from './syncProjectConfiguration.js';
|
||||
|
||||
export async function createAndroidContextAsync(
|
||||
ctx: CommonContext<Platform.ANDROID>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Android } from '@expo/eas-build-job';
|
||||
|
||||
import { AndroidBuildType, AndroidJobInput } from '../../graphql/generated';
|
||||
import { transformProjectArchive, transformWorkflow } from '../graphql';
|
||||
import { AndroidBuildType, AndroidJobInput } from '../../graphql/generated.js';
|
||||
import { transformProjectArchive, transformWorkflow } from '../graphql.js';
|
||||
|
||||
export function transformJob(job: Android.Job): AndroidJobInput {
|
||||
return {
|
||||
|
||||
@@ -3,11 +3,11 @@ import { BuildProfile } from '@expo/eas-json';
|
||||
import path from 'path';
|
||||
import slash from 'slash';
|
||||
|
||||
import { AndroidCredentials } from '../../credentials/android/AndroidCredentialsProvider';
|
||||
import { getUsername } from '../../project/projectUtils';
|
||||
import { ensureLoggedInAsync } from '../../user/actions';
|
||||
import { getVcsClient } from '../../vcs';
|
||||
import { BuildContext } from '../context';
|
||||
import { AndroidCredentials } from '../../credentials/android/AndroidCredentialsProvider.js';
|
||||
import { getUsername } from '../../project/projectUtils.js';
|
||||
import { ensureLoggedInAsync } from '../../user/actions.js';
|
||||
import { getVcsClient } from '../../vcs/index.js';
|
||||
import { BuildContext } from '../context.js';
|
||||
|
||||
interface JobData {
|
||||
projectArchive: ArchiveSource;
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
import { ExpoConfig } from '@expo/config';
|
||||
import { AndroidConfig } from '@expo/config-plugins';
|
||||
import ConfigPlugins from '@expo/config-plugins';
|
||||
import { Platform, Workflow } from '@expo/eas-build-job';
|
||||
import { AndroidVersionAutoIncrement, BuildProfile } from '@expo/eas-json';
|
||||
import chalk from 'chalk';
|
||||
import fs from 'fs-extra';
|
||||
import path from 'path';
|
||||
|
||||
import Log from '../../log';
|
||||
import { isExpoUpdatesInstalled } from '../../project/projectUtils';
|
||||
import { resolveWorkflowAsync } from '../../project/workflow';
|
||||
import { syncUpdatesConfigurationAsync } from '../../update/android/UpdatesModule';
|
||||
import { BumpStrategy, bumpVersionAsync, bumpVersionInAppJsonAsync } from './version';
|
||||
import Log from '../../log.js';
|
||||
import { isExpoUpdatesInstalled } from '../../project/projectUtils.js';
|
||||
import { resolveWorkflowAsync } from '../../project/workflow.js';
|
||||
import { syncUpdatesConfigurationAsync } from '../../update/android/UpdatesModule.js';
|
||||
import { BumpStrategy, bumpVersionAsync, bumpVersionInAppJsonAsync } from './version.js';
|
||||
|
||||
const { AndroidConfig } = ConfigPlugins;
|
||||
|
||||
export async function syncProjectConfigurationAsync({
|
||||
projectDir,
|
||||
|
||||
@@ -1,19 +1,21 @@
|
||||
import { ExpoConfig } from '@expo/config';
|
||||
import { AndroidConfig } from '@expo/config-plugins';
|
||||
import ConfigPlugins from '@expo/config-plugins';
|
||||
import { Platform, Workflow } from '@expo/eas-build-job';
|
||||
import { BuildProfile } from '@expo/eas-json';
|
||||
import chalk from 'chalk';
|
||||
import fs from 'fs-extra';
|
||||
|
||||
import Log from '../../log';
|
||||
import Log from '../../log.js';
|
||||
import {
|
||||
getAppBuildGradleAsync,
|
||||
parseGradleCommand,
|
||||
resolveConfigValue,
|
||||
} from '../../project/android/gradleUtils';
|
||||
import { resolveWorkflowAsync } from '../../project/workflow';
|
||||
import { updateAppJsonConfigAsync } from '../utils/appJson';
|
||||
import { bumpAppVersionAsync, ensureStaticConfigExists } from '../utils/version';
|
||||
} from '../../project/android/gradleUtils.js';
|
||||
import { resolveWorkflowAsync } from '../../project/workflow.js';
|
||||
import { updateAppJsonConfigAsync } from '../utils/appJson.js';
|
||||
import { bumpAppVersionAsync, ensureStaticConfigExists } from '../utils/version.js';
|
||||
|
||||
const { AndroidConfig } = ConfigPlugins;
|
||||
|
||||
export enum BumpStrategy {
|
||||
APP_VERSION,
|
||||
|
||||
@@ -3,11 +3,10 @@ import { CredentialsSource } from '@expo/eas-json';
|
||||
import chalk from 'chalk';
|
||||
import cliProgress from 'cli-progress';
|
||||
import fs from 'fs-extra';
|
||||
import nullthrows from 'nullthrows';
|
||||
|
||||
import { withAnalyticsAsync } from '../analytics/common';
|
||||
import { BuildEvent } from '../analytics/events';
|
||||
import { getExpoWebsiteBaseUrl } from '../api';
|
||||
import { withAnalyticsAsync } from '../analytics/common.js';
|
||||
import { BuildEvent } from '../analytics/events.js';
|
||||
import { getExpoWebsiteBaseUrl } from '../api.js';
|
||||
import {
|
||||
AppPlatform,
|
||||
BuildFragment,
|
||||
@@ -15,26 +14,27 @@ import {
|
||||
BuildPriority,
|
||||
BuildStatus,
|
||||
UploadSessionType,
|
||||
} from '../graphql/generated';
|
||||
import { BuildResult } from '../graphql/mutations/BuildMutation';
|
||||
import { BuildQuery } from '../graphql/queries/BuildQuery';
|
||||
import Log, { learnMore } from '../log';
|
||||
import { Ora, ora } from '../ora';
|
||||
} from '../graphql/generated.js';
|
||||
import { BuildResult } from '../graphql/mutations/BuildMutation.js';
|
||||
import { BuildQuery } from '../graphql/queries/BuildQuery.js';
|
||||
import Log, { learnMore } from '../log.js';
|
||||
import { Ora, ora } from '../ora.js';
|
||||
import {
|
||||
appPlatformDisplayNames,
|
||||
appPlatformEmojis,
|
||||
requestedPlatformDisplayNames,
|
||||
} from '../platform';
|
||||
import { uploadAsync } from '../uploads';
|
||||
import { formatBytes } from '../utils/files';
|
||||
import { createProgressTracker } from '../utils/progress';
|
||||
import { sleepAsync } from '../utils/promise';
|
||||
import { getVcsClient } from '../vcs';
|
||||
import { BuildContext } from './context';
|
||||
import { runLocalBuildAsync } from './local';
|
||||
import { collectMetadataAsync } from './metadata';
|
||||
import { printDeprecationWarnings } from './utils/printBuildInfo';
|
||||
import { makeProjectTarballAsync, reviewAndCommitChangesAsync } from './utils/repository';
|
||||
} from '../platform.js';
|
||||
import { uploadAsync } from '../uploads.js';
|
||||
import { formatBytes } from '../utils/files.js';
|
||||
import { nullthrows } from '../utils/nullthrows.js';
|
||||
import { createProgressTracker } from '../utils/progress.js';
|
||||
import { sleepAsync } from '../utils/promise.js';
|
||||
import { getVcsClient } from '../vcs/index.js';
|
||||
import { BuildContext } from './context.js';
|
||||
import { runLocalBuildAsync } from './local.js';
|
||||
import { collectMetadataAsync } from './metadata.js';
|
||||
import { printDeprecationWarnings } from './utils/printBuildInfo.js';
|
||||
import { makeProjectTarballAsync, reviewAndCommitChangesAsync } from './utils/repository.js';
|
||||
|
||||
export interface CredentialsResult<Credentials> {
|
||||
source: CredentialsSource.LOCAL | CredentialsSource.REMOTE;
|
||||
|
||||
@@ -3,11 +3,11 @@ import { EasJson, EasJsonReader } from '@expo/eas-json';
|
||||
import chalk from 'chalk';
|
||||
import fs from 'fs-extra';
|
||||
|
||||
import Log from '../log';
|
||||
import { resolveWorkflowAsync } from '../project/workflow';
|
||||
import { easCliVersion } from '../utils/easCli';
|
||||
import { getVcsClient } from '../vcs';
|
||||
import { maybeBailOnRepoStatusAsync, reviewAndCommitChangesAsync } from './utils/repository';
|
||||
import Log from '../log.js';
|
||||
import { resolveWorkflowAsync } from '../project/workflow.js';
|
||||
import { easCliVersion } from '../utils/easCli.js';
|
||||
import { getVcsClient } from '../vcs/index.js';
|
||||
import { maybeBailOnRepoStatusAsync, reviewAndCommitChangesAsync } from './utils/repository.js';
|
||||
|
||||
interface ConfigureParams {
|
||||
projectDir: string;
|
||||
|
||||
@@ -3,14 +3,14 @@ import { Platform, Workflow } from '@expo/eas-build-job';
|
||||
import { BuildProfile } from '@expo/eas-json';
|
||||
import type { XCBuildConfiguration } from 'xcode';
|
||||
|
||||
import { TrackingContext } from '../analytics/common';
|
||||
import { CredentialsContext } from '../credentials/context';
|
||||
import { Target } from '../credentials/ios/types';
|
||||
import { BuildResourceClass } from '../graphql/generated';
|
||||
import { GradleBuildContext } from '../project/android/gradle';
|
||||
import { XcodeBuildContext } from '../project/ios/scheme';
|
||||
import { Actor } from '../user/User';
|
||||
import { LocalBuildOptions } from './local';
|
||||
import { TrackingContext } from '../analytics/common.js';
|
||||
import { CredentialsContext } from '../credentials/context.js';
|
||||
import { Target } from '../credentials/ios/types.js';
|
||||
import { BuildResourceClass } from '../graphql/generated.js';
|
||||
import { GradleBuildContext } from '../project/android/gradle.js';
|
||||
import { XcodeBuildContext } from '../project/ios/scheme.js';
|
||||
import { Actor } from '../user/User.js';
|
||||
import { LocalBuildOptions } from './local.js';
|
||||
|
||||
export type CommonContext<T extends Platform> = Omit<BuildContext<T>, 'android' | 'ios'>;
|
||||
|
||||
|
||||
@@ -1,22 +1,24 @@
|
||||
import { Platform } from '@expo/eas-build-job';
|
||||
import { BuildProfile } from '@expo/eas-json';
|
||||
import JsonFile from '@expo/json-file';
|
||||
import JsonFileModule from '@expo/json-file';
|
||||
import resolveFrom from 'resolve-from';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
||||
import { TrackingContext } from '../analytics/common';
|
||||
import { Analytics, BuildEvent } from '../analytics/events';
|
||||
import { CredentialsContext } from '../credentials/context';
|
||||
import { BuildResourceClass } from '../graphql/generated';
|
||||
import { getExpoConfig } from '../project/expoConfig';
|
||||
import { getProjectAccountName, getProjectIdAsync } from '../project/projectUtils';
|
||||
import { resolveWorkflowAsync } from '../project/workflow';
|
||||
import { findAccountByName } from '../user/Account';
|
||||
import { ensureLoggedInAsync } from '../user/actions';
|
||||
import { createAndroidContextAsync } from './android/build';
|
||||
import { BuildContext, CommonContext } from './context';
|
||||
import { createIosContextAsync } from './ios/build';
|
||||
import { LocalBuildOptions } from './local';
|
||||
import { TrackingContext } from '../analytics/common.js';
|
||||
import { Analytics, BuildEvent } from '../analytics/events.js';
|
||||
import { CredentialsContext } from '../credentials/context.js';
|
||||
import { BuildResourceClass } from '../graphql/generated.js';
|
||||
import { getExpoConfig } from '../project/expoConfig.js';
|
||||
import { getProjectAccountName, getProjectIdAsync } from '../project/projectUtils.js';
|
||||
import { resolveWorkflowAsync } from '../project/workflow.js';
|
||||
import { findAccountByName } from '../user/Account.js';
|
||||
import { ensureLoggedInAsync } from '../user/actions.js';
|
||||
import { createAndroidContextAsync } from './android/build.js';
|
||||
import { BuildContext, CommonContext } from './context.js';
|
||||
import { createIosContextAsync } from './ios/build.js';
|
||||
import { LocalBuildOptions } from './local.js';
|
||||
|
||||
const JsonFile = JsonFileModule.default;
|
||||
|
||||
export async function createBuildContextAsync<T extends Platform>({
|
||||
buildProfileName,
|
||||
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
DistributionType,
|
||||
ProjectArchiveSourceInput,
|
||||
ProjectArchiveSourceType,
|
||||
} from '../graphql/generated';
|
||||
} from '../graphql/generated.js';
|
||||
|
||||
export function transformProjectArchive(archiveSource: ArchiveSource): ProjectArchiveSourceInput {
|
||||
if (archiveSource.type === ArchiveSourceType.S3) {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { ExpoConfig } from '@expo/config';
|
||||
import { IOSConfig } from '@expo/config-plugins';
|
||||
import { InfoPlist } from '@expo/config-plugins';
|
||||
import fs from 'fs-extra';
|
||||
import { vol } from 'memfs';
|
||||
import os from 'os';
|
||||
|
||||
import { readPlistAsync } from '../../../utils/plist';
|
||||
import { readPlistAsync } from '../../../utils/plist.js';
|
||||
import {
|
||||
BumpStrategy,
|
||||
bumpVersionAsync,
|
||||
@@ -13,7 +13,7 @@ import {
|
||||
getInfoPlistPath,
|
||||
readBuildNumberAsync,
|
||||
readShortVersionAsync,
|
||||
} from '../version';
|
||||
} from '../version.js';
|
||||
|
||||
jest.mock('fs');
|
||||
|
||||
@@ -62,9 +62,7 @@ describe(bumpVersionAsync, () => {
|
||||
});
|
||||
|
||||
const appJSON = await fs.readJSON('/repo/app.json');
|
||||
const infoPlist = (await readPlistAsync(
|
||||
'/repo/ios/myproject/Info.plist'
|
||||
)) as IOSConfig.InfoPlist;
|
||||
const infoPlist = (await readPlistAsync('/repo/ios/myproject/Info.plist')) as InfoPlist;
|
||||
expect(fakeExp.version).toBe('1.0.0');
|
||||
expect(fakeExp.ios?.buildNumber).toBe('2');
|
||||
expect(appJSON.expo.version).toBe('1.0.0');
|
||||
@@ -86,9 +84,7 @@ describe(bumpVersionAsync, () => {
|
||||
});
|
||||
|
||||
const appJSON = await fs.readJSON('/repo/app.json');
|
||||
const infoPlist = (await readPlistAsync(
|
||||
'/repo/ios/myproject/Info2.plist'
|
||||
)) as IOSConfig.InfoPlist;
|
||||
const infoPlist = (await readPlistAsync('/repo/ios/myproject/Info2.plist')) as InfoPlist;
|
||||
expect(fakeExp.version).toBe('1.0.0');
|
||||
expect(fakeExp.ios?.buildNumber).toBe('2');
|
||||
expect(appJSON.expo.version).toBe('1.0.0');
|
||||
@@ -108,9 +104,7 @@ describe(bumpVersionAsync, () => {
|
||||
});
|
||||
|
||||
const appJSON = await fs.readJSON('/repo/app.json');
|
||||
const infoPlist = (await readPlistAsync(
|
||||
'/repo/ios/myproject/Info.plist'
|
||||
)) as IOSConfig.InfoPlist;
|
||||
const infoPlist = (await readPlistAsync('/repo/ios/myproject/Info.plist')) as InfoPlist;
|
||||
expect(fakeExp.version).toBe('1.0.1');
|
||||
expect(fakeExp.ios?.buildNumber).toBe('1');
|
||||
expect(appJSON.expo.version).toBe('1.0.1');
|
||||
@@ -130,9 +124,7 @@ describe(bumpVersionAsync, () => {
|
||||
});
|
||||
|
||||
const appJSON = await fs.readJSON('/repo/app.json');
|
||||
const infoPlist = (await readPlistAsync(
|
||||
'/repo/ios/myproject/Info.plist'
|
||||
)) as IOSConfig.InfoPlist;
|
||||
const infoPlist = (await readPlistAsync('/repo/ios/myproject/Info.plist')) as InfoPlist;
|
||||
expect(fakeExp.version).toBe('1.0.0');
|
||||
expect(fakeExp.ios?.buildNumber).toBe('1');
|
||||
expect(appJSON.expo.version).toBe('1.0.0');
|
||||
|
||||
@@ -1,21 +1,23 @@
|
||||
import { IOSConfig } from '@expo/config-plugins';
|
||||
import ConfigPlugins from '@expo/config-plugins';
|
||||
import { Ios, Job, Metadata, Platform, Workflow } from '@expo/eas-build-job';
|
||||
import type { XCBuildConfiguration } from 'xcode';
|
||||
|
||||
import { IosCredentials, Target } from '../../credentials/ios/types';
|
||||
import { BuildParamsInput } from '../../graphql/generated';
|
||||
import { BuildMutation, BuildResult } from '../../graphql/mutations/BuildMutation';
|
||||
import { ensureBundleIdentifierIsDefinedForManagedProjectAsync } from '../../project/ios/bundleIdentifier';
|
||||
import { resolveXcodeBuildContextAsync } from '../../project/ios/scheme';
|
||||
import { findApplicationTarget, resolveTargetsAsync } from '../../project/ios/target';
|
||||
import { BuildRequestSender, JobData, prepareBuildRequestForPlatformAsync } from '../build';
|
||||
import { BuildContext, CommonContext, IosBuildContext } from '../context';
|
||||
import { transformMetadata } from '../graphql';
|
||||
import { checkGoogleServicesFileAsync, checkNodeEnvVariable } from '../validate';
|
||||
import { ensureIosCredentialsAsync } from './credentials';
|
||||
import { transformJob } from './graphql';
|
||||
import { prepareJobAsync } from './prepareJob';
|
||||
import { syncProjectConfigurationAsync } from './syncProjectConfiguration';
|
||||
import { IosCredentials, Target } from '../../credentials/ios/types.js';
|
||||
import { BuildParamsInput } from '../../graphql/generated.js';
|
||||
import { BuildMutation, BuildResult } from '../../graphql/mutations/BuildMutation.js';
|
||||
import { ensureBundleIdentifierIsDefinedForManagedProjectAsync } from '../../project/ios/bundleIdentifier.js';
|
||||
import { resolveXcodeBuildContextAsync } from '../../project/ios/scheme.js';
|
||||
import { findApplicationTarget, resolveTargetsAsync } from '../../project/ios/target.js';
|
||||
import { BuildRequestSender, JobData, prepareBuildRequestForPlatformAsync } from '../build.js';
|
||||
import { BuildContext, CommonContext, IosBuildContext } from '../context.js';
|
||||
import { transformMetadata } from '../graphql.js';
|
||||
import { checkGoogleServicesFileAsync, checkNodeEnvVariable } from '../validate.js';
|
||||
import { ensureIosCredentialsAsync } from './credentials.js';
|
||||
import { transformJob } from './graphql.js';
|
||||
import { prepareJobAsync } from './prepareJob.js';
|
||||
import { syncProjectConfigurationAsync } from './syncProjectConfiguration.js';
|
||||
|
||||
const { IOSConfig } = ConfigPlugins;
|
||||
|
||||
export async function createIosContextAsync(
|
||||
ctx: CommonContext<Platform.IOS>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { Platform } from '@expo/eas-build-job';
|
||||
|
||||
import IosCredentialsProvider from '../../credentials/ios/IosCredentialsProvider';
|
||||
import { getAppFromContext } from '../../credentials/ios/actions/BuildCredentialsUtils';
|
||||
import { IosCredentials, Target } from '../../credentials/ios/types';
|
||||
import { CredentialsResult } from '../build';
|
||||
import { BuildContext } from '../context';
|
||||
import { logCredentialsSource } from '../utils/credentials';
|
||||
import IosCredentialsProvider from '../../credentials/ios/IosCredentialsProvider.js';
|
||||
import { getAppFromContext } from '../../credentials/ios/actions/BuildCredentialsUtils.js';
|
||||
import { IosCredentials, Target } from '../../credentials/ios/types.js';
|
||||
import { CredentialsResult } from '../build.js';
|
||||
import { BuildContext } from '../context.js';
|
||||
import { logCredentialsSource } from '../utils/credentials.js';
|
||||
|
||||
export async function ensureIosCredentialsAsync(
|
||||
buildCtx: BuildContext<Platform.IOS>,
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { Env, Ios } from '@expo/eas-build-job';
|
||||
import nullthrows from 'nullthrows';
|
||||
|
||||
import { IosJobInput, IosJobSecretsInput } from '../../graphql/generated';
|
||||
import { transformProjectArchive, transformWorkflow } from '../graphql';
|
||||
import { IosJobInput, IosJobSecretsInput } from '../../graphql/generated.js';
|
||||
import { nullthrows } from '../../utils/nullthrows.js';
|
||||
import { transformProjectArchive, transformWorkflow } from '../graphql.js';
|
||||
|
||||
export function transformJob(job: Ios.Job): IosJobInput {
|
||||
return {
|
||||
|
||||
@@ -2,11 +2,11 @@ import { ArchiveSource, Ios, Job, Platform, sanitizeJob } from '@expo/eas-build-
|
||||
import path from 'path';
|
||||
import slash from 'slash';
|
||||
|
||||
import { IosCredentials, TargetCredentials } from '../../credentials/ios/types';
|
||||
import { getUsername } from '../../project/projectUtils';
|
||||
import { ensureLoggedInAsync } from '../../user/actions';
|
||||
import { getVcsClient } from '../../vcs';
|
||||
import { BuildContext } from '../context';
|
||||
import { IosCredentials, TargetCredentials } from '../../credentials/ios/types.js';
|
||||
import { getUsername } from '../../project/projectUtils.js';
|
||||
import { ensureLoggedInAsync } from '../../user/actions.js';
|
||||
import { getVcsClient } from '../../vcs/index.js';
|
||||
import { BuildContext } from '../context.js';
|
||||
|
||||
interface JobData {
|
||||
projectArchive: ArchiveSource;
|
||||
|
||||
@@ -3,10 +3,10 @@ import { Platform, Workflow } from '@expo/eas-build-job';
|
||||
import { BuildProfile, IosVersionAutoIncrement } from '@expo/eas-json';
|
||||
import type { XCBuildConfiguration } from 'xcode';
|
||||
|
||||
import { isExpoUpdatesInstalled } from '../../project/projectUtils';
|
||||
import { resolveWorkflowAsync } from '../../project/workflow';
|
||||
import { syncUpdatesConfigurationAsync } from '../../update/ios/UpdatesModule';
|
||||
import { BumpStrategy, bumpVersionAsync, bumpVersionInAppJsonAsync } from './version';
|
||||
import { isExpoUpdatesInstalled } from '../../project/projectUtils.js';
|
||||
import { resolveWorkflowAsync } from '../../project/workflow.js';
|
||||
import { syncUpdatesConfigurationAsync } from '../../update/ios/UpdatesModule.js';
|
||||
import { BumpStrategy, bumpVersionAsync, bumpVersionInAppJsonAsync } from './version.js';
|
||||
|
||||
export async function syncProjectConfigurationAsync({
|
||||
projectDir,
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
import { ExpoConfig, getConfigFilePaths } from '@expo/config';
|
||||
import { IOSConfig } from '@expo/config-plugins';
|
||||
import ConfigPlugins, { InfoPlist } from '@expo/config-plugins';
|
||||
import { Platform, Workflow } from '@expo/eas-build-job';
|
||||
import chalk from 'chalk';
|
||||
import path from 'path';
|
||||
import type { XCBuildConfiguration } from 'xcode';
|
||||
|
||||
import Log from '../../log';
|
||||
import { resolveWorkflowAsync } from '../../project/workflow';
|
||||
import { promptAsync } from '../../prompts';
|
||||
import { readPlistAsync, writePlistAsync } from '../../utils/plist';
|
||||
import { updateAppJsonConfigAsync } from '../utils/appJson';
|
||||
import { bumpAppVersionAsync } from '../utils/version';
|
||||
import Log from '../../log.js';
|
||||
import { resolveWorkflowAsync } from '../../project/workflow.js';
|
||||
import { promptAsync } from '../../prompts.js';
|
||||
import { readPlistAsync, writePlistAsync } from '../../utils/plist.js';
|
||||
import { updateAppJsonConfigAsync } from '../utils/appJson.js';
|
||||
import { bumpAppVersionAsync } from '../utils/version.js';
|
||||
|
||||
const { IOSConfig } = ConfigPlugins;
|
||||
|
||||
export enum BumpStrategy {
|
||||
APP_VERSION,
|
||||
@@ -145,9 +147,9 @@ async function writeVersionsToInfoPlistAsync({
|
||||
}: {
|
||||
projectDir: string;
|
||||
exp: ExpoConfig;
|
||||
infoPlist: IOSConfig.InfoPlist;
|
||||
infoPlist: InfoPlist;
|
||||
buildSettings: XCBuildConfiguration['buildSettings'];
|
||||
}): Promise<IOSConfig.InfoPlist> {
|
||||
}): Promise<InfoPlist> {
|
||||
let updatedInfoPlist = IOSConfig.Version.setVersion(exp, infoPlist);
|
||||
updatedInfoPlist = IOSConfig.Version.setBuildNumber(exp, updatedInfoPlist);
|
||||
await writeInfoPlistAsync({ projectDir, infoPlist: updatedInfoPlist, buildSettings });
|
||||
@@ -176,9 +178,9 @@ export function getInfoPlistPath(
|
||||
async function readInfoPlistAsync(
|
||||
projectDir: string,
|
||||
buildSettings: XCBuildConfiguration['buildSettings']
|
||||
): Promise<IOSConfig.InfoPlist> {
|
||||
): Promise<InfoPlist> {
|
||||
const infoPlistPath = getInfoPlistPath(projectDir, buildSettings);
|
||||
return ((await readPlistAsync(infoPlistPath)) ?? {}) as IOSConfig.InfoPlist;
|
||||
return ((await readPlistAsync(infoPlistPath)) ?? {}) as InfoPlist;
|
||||
}
|
||||
|
||||
async function writeInfoPlistAsync({
|
||||
@@ -187,7 +189,7 @@ async function writeInfoPlistAsync({
|
||||
buildSettings,
|
||||
}: {
|
||||
projectDir: string;
|
||||
infoPlist: IOSConfig.InfoPlist;
|
||||
infoPlist: InfoPlist;
|
||||
buildSettings: XCBuildConfiguration['buildSettings'];
|
||||
}): Promise<void> {
|
||||
const infoPlistPath = getInfoPlistPath(projectDir, buildSettings);
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { Job } from '@expo/eas-build-job';
|
||||
import spawnAsync from '@expo/spawn-async';
|
||||
import { default as spawnAsync } from '@expo/spawn-async';
|
||||
import { ChildProcess } from 'child_process';
|
||||
import semver from 'semver';
|
||||
|
||||
import { ora } from '../ora';
|
||||
import { ora } from '../ora.js';
|
||||
|
||||
const PLUGIN_PACKAGE_NAME = 'eas-cli-local-build-plugin';
|
||||
const PLUGIN_PACKAGE_VERSION = '0.0.85';
|
||||
|
||||
@@ -1,25 +1,27 @@
|
||||
import { Updates } from '@expo/config-plugins';
|
||||
import ConfigPlugins from '@expo/config-plugins';
|
||||
import { Metadata, Platform, sanitizeMetadata } from '@expo/eas-build-job';
|
||||
import { IosEnterpriseProvisioning } from '@expo/eas-json';
|
||||
import fs from 'fs-extra';
|
||||
import resolveFrom from 'resolve-from';
|
||||
|
||||
import Log from '../log';
|
||||
import { getUsername, isExpoUpdatesInstalled } from '../project/projectUtils';
|
||||
import Log from '../log.js';
|
||||
import { getUsername, isExpoUpdatesInstalled } from '../project/projectUtils.js';
|
||||
import {
|
||||
readChannelSafelyAsync as readAndroidChannelSafelyAsync,
|
||||
readReleaseChannelSafelyAsync as readAndroidReleaseChannelSafelyAsync,
|
||||
} from '../update/android/UpdatesModule';
|
||||
} from '../update/android/UpdatesModule.js';
|
||||
import {
|
||||
readChannelSafelyAsync as readIosChannelSafelyAsync,
|
||||
readReleaseChannelSafelyAsync as readIosReleaseChannelSafelyAsync,
|
||||
} from '../update/ios/UpdatesModule';
|
||||
import { ensureLoggedInAsync } from '../user/actions';
|
||||
import { easCliVersion } from '../utils/easCli';
|
||||
import { getVcsClient } from '../vcs';
|
||||
import { maybeResolveVersionsAsync as maybeResolveAndroidVersionsAsync } from './android/version';
|
||||
import { BuildContext } from './context';
|
||||
import { maybeResolveVersionsAsync as maybeResolveIosVersionsAsync } from './ios/version';
|
||||
} from '../update/ios/UpdatesModule.js';
|
||||
import { ensureLoggedInAsync } from '../user/actions.js';
|
||||
import { easCliVersion } from '../utils/easCli.js';
|
||||
import { getVcsClient } from '../vcs/index.js';
|
||||
import { maybeResolveVersionsAsync as maybeResolveAndroidVersionsAsync } from './android/version.js';
|
||||
import { BuildContext } from './context.js';
|
||||
import { maybeResolveVersionsAsync as maybeResolveIosVersionsAsync } from './ios/version.js';
|
||||
|
||||
const { Updates } = ConfigPlugins;
|
||||
|
||||
export async function collectMetadataAsync<T extends Platform>(
|
||||
ctx: BuildContext<T>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { Platform, Workflow } from '@expo/eas-build-job';
|
||||
import { BuildProfile, EasJsonReader, SubmitProfile } from '@expo/eas-json';
|
||||
import chalk from 'chalk';
|
||||
import nullthrows from 'nullthrows';
|
||||
|
||||
import {
|
||||
AppPlatform,
|
||||
@@ -9,37 +8,38 @@ import {
|
||||
BuildResourceClass,
|
||||
BuildStatus,
|
||||
SubmissionFragment,
|
||||
} from '../graphql/generated';
|
||||
import { toAppPlatform, toPlatform } from '../graphql/types/AppPlatform';
|
||||
import Log from '../log';
|
||||
} from '../graphql/generated.js';
|
||||
import { toAppPlatform, toPlatform } from '../graphql/types/AppPlatform.js';
|
||||
import Log from '../log.js';
|
||||
import {
|
||||
RequestedPlatform,
|
||||
appPlatformDisplayNames,
|
||||
appPlatformEmojis,
|
||||
toPlatforms,
|
||||
} from '../platform';
|
||||
import { checkExpoSdkIsSupportedAsync } from '../project/expoSdk';
|
||||
import { validateMetroConfigForManagedWorkflowAsync } from '../project/metroConfig';
|
||||
import { createSubmissionContextAsync } from '../submit/context';
|
||||
} from '../platform.js';
|
||||
import { checkExpoSdkIsSupportedAsync } from '../project/expoSdk.js';
|
||||
import { validateMetroConfigForManagedWorkflowAsync } from '../project/metroConfig.js';
|
||||
import { createSubmissionContextAsync } from '../submit/context.js';
|
||||
import {
|
||||
submitAsync,
|
||||
waitToCompleteAsync as waitForSubmissionsToCompleteAsync,
|
||||
} from '../submit/submit';
|
||||
import { printSubmissionDetailsUrls } from '../submit/utils/urls';
|
||||
import { printJsonOnlyOutput } from '../utils/json';
|
||||
import { ProfileData, getProfilesAsync } from '../utils/profiles';
|
||||
import { getVcsClient } from '../vcs';
|
||||
import { prepareAndroidBuildAsync } from './android/build';
|
||||
import { BuildRequestSender, waitForBuildEndAsync } from './build';
|
||||
import { ensureProjectConfiguredAsync } from './configure';
|
||||
import { BuildContext } from './context';
|
||||
import { createBuildContextAsync } from './createContext';
|
||||
import { prepareIosBuildAsync } from './ios/build';
|
||||
import { LocalBuildOptions } from './local';
|
||||
import { UserInputResourceClass } from './types';
|
||||
import { ensureExpoDevClientInstalledForDevClientBuildsAsync } from './utils/devClient';
|
||||
import { printBuildResults, printLogsUrls } from './utils/printBuildInfo';
|
||||
import { ensureRepoIsCleanAsync } from './utils/repository';
|
||||
} from '../submit/submit.js';
|
||||
import { printSubmissionDetailsUrls } from '../submit/utils/urls.js';
|
||||
import { printJsonOnlyOutput } from '../utils/json.js';
|
||||
import { nullthrows } from '../utils/nullthrows.js';
|
||||
import { ProfileData, getProfilesAsync } from '../utils/profiles.js';
|
||||
import { getVcsClient } from '../vcs/index.js';
|
||||
import { prepareAndroidBuildAsync } from './android/build.js';
|
||||
import { BuildRequestSender, waitForBuildEndAsync } from './build.js';
|
||||
import { ensureProjectConfiguredAsync } from './configure.js';
|
||||
import { BuildContext } from './context.js';
|
||||
import { createBuildContextAsync } from './createContext.js';
|
||||
import { prepareIosBuildAsync } from './ios/build.js';
|
||||
import { LocalBuildOptions } from './local.js';
|
||||
import { UserInputResourceClass } from './types.js';
|
||||
import { ensureExpoDevClientInstalledForDevClientBuildsAsync } from './utils/devClient.js';
|
||||
import { printBuildResults, printLogsUrls } from './utils/printBuildInfo.js';
|
||||
import { ensureRepoIsCleanAsync } from './utils/repository.js';
|
||||
|
||||
let metroConfigValidated = false;
|
||||
let sdkVersionChecked = false;
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import * as ExpoConfig from '@expo/config';
|
||||
import JsonFile from '@expo/json-file';
|
||||
import JsonFileModule from '@expo/json-file';
|
||||
import assert from 'assert';
|
||||
|
||||
const JsonFile = JsonFileModule.default;
|
||||
|
||||
export async function updateAppJsonConfigAsync(
|
||||
{
|
||||
projectDir,
|
||||
|
||||
@@ -2,8 +2,8 @@ import { Platform } from '@expo/eas-build-job';
|
||||
import { CredentialsSource } from '@expo/eas-json';
|
||||
import chalk from 'chalk';
|
||||
|
||||
import Log from '../../log';
|
||||
import { requestedPlatformDisplayNames } from '../../platform';
|
||||
import Log from '../../log.js';
|
||||
import { requestedPlatformDisplayNames } from '../../platform.js';
|
||||
|
||||
export function logCredentialsSource(
|
||||
credentialsSource: CredentialsSource,
|
||||
|
||||
@@ -3,15 +3,15 @@ import { Errors } from '@oclif/core';
|
||||
import chalk from 'chalk';
|
||||
import resolveFrom from 'resolve-from';
|
||||
|
||||
import { toAppPlatform } from '../../graphql/types/AppPlatform';
|
||||
import Log, { learnMore } from '../../log';
|
||||
import { appPlatformDisplayNames } from '../../platform';
|
||||
import { resolveWorkflowAsync } from '../../project/workflow';
|
||||
import { confirmAsync } from '../../prompts';
|
||||
import { expoCommandAsync } from '../../utils/expoCli';
|
||||
import { ProfileData } from '../../utils/profiles';
|
||||
import { getVcsClient } from '../../vcs';
|
||||
import { reviewAndCommitChangesAsync } from './repository';
|
||||
import { toAppPlatform } from '../../graphql/types/AppPlatform.js';
|
||||
import Log, { learnMore } from '../../log.js';
|
||||
import { appPlatformDisplayNames } from '../../platform.js';
|
||||
import { resolveWorkflowAsync } from '../../project/workflow.js';
|
||||
import { confirmAsync } from '../../prompts.js';
|
||||
import { expoCommandAsync } from '../../utils/expoCli.js';
|
||||
import { ProfileData } from '../../utils/profiles.js';
|
||||
import { getVcsClient } from '../../vcs/index.js';
|
||||
import { reviewAndCommitChangesAsync } from './repository.js';
|
||||
|
||||
export async function ensureExpoDevClientInstalledForDevClientBuildsAsync({
|
||||
projectDir,
|
||||
|
||||
@@ -4,10 +4,10 @@ import {
|
||||
AppPlatform,
|
||||
BuildFragment,
|
||||
BuildStatus as GraphQLBuildStatus,
|
||||
} from '../../graphql/generated';
|
||||
import { appPlatformDisplayNames } from '../../platform';
|
||||
import formatFields from '../../utils/formatFields';
|
||||
import { getBuildLogsUrl } from './url';
|
||||
} from '../../graphql/generated.js';
|
||||
import { appPlatformDisplayNames } from '../../platform.js';
|
||||
import formatFields from '../../utils/formatFields.js';
|
||||
import { getBuildLogsUrl } from './url.js';
|
||||
|
||||
export function formatGraphQLBuild(build: BuildFragment): string {
|
||||
const actor = getActorName(build);
|
||||
|
||||
@@ -11,11 +11,11 @@ import {
|
||||
DistributionType,
|
||||
EasBuildDeprecationInfo,
|
||||
EasBuildDeprecationInfoType,
|
||||
} from '../../graphql/generated';
|
||||
import Log, { learnMore } from '../../log';
|
||||
import { appPlatformDisplayNames, appPlatformEmojis } from '../../platform';
|
||||
import { printJsonOnlyOutput } from '../../utils/json';
|
||||
import { getBuildLogsUrl, getInternalDistributionInstallUrl } from './url';
|
||||
} from '../../graphql/generated.js';
|
||||
import Log, { learnMore } from '../../log.js';
|
||||
import { appPlatformDisplayNames, appPlatformEmojis } from '../../platform.js';
|
||||
import { printJsonOnlyOutput } from '../../utils/json.js';
|
||||
import { getBuildLogsUrl, getInternalDistributionInstallUrl } from './url.js';
|
||||
|
||||
export function printLogsUrls(builds: BuildFragment[]): void {
|
||||
if (builds.length === 1) {
|
||||
|
||||
@@ -4,13 +4,13 @@ import path from 'path';
|
||||
import tar from 'tar';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
||||
import Log from '../../log';
|
||||
import { ora } from '../../ora';
|
||||
import { confirmAsync, promptAsync } from '../../prompts';
|
||||
import { formatBytes } from '../../utils/files';
|
||||
import { getTmpDirectory } from '../../utils/paths';
|
||||
import { endTimer, formatMilliseconds, startTimer } from '../../utils/timer';
|
||||
import { getVcsClient } from '../../vcs';
|
||||
import Log from '../../log.js';
|
||||
import { ora } from '../../ora.js';
|
||||
import { confirmAsync, promptAsync } from '../../prompts.js';
|
||||
import { formatBytes } from '../../utils/files.js';
|
||||
import { getTmpDirectory } from '../../utils/paths.js';
|
||||
import { endTimer, formatMilliseconds, startTimer } from '../../utils/timer.js';
|
||||
import { getVcsClient } from '../../vcs/index.js';
|
||||
|
||||
export async function maybeBailOnRepoStatusAsync(): Promise<void> {
|
||||
if (!(await getVcsClient().isCommitRequiredAsync())) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import assert from 'assert';
|
||||
|
||||
import { getExpoApiBaseUrl, getExpoWebsiteBaseUrl } from '../../api';
|
||||
import { AppPlatform, BuildFragment } from '../../graphql/generated';
|
||||
import { getExpoApiBaseUrl, getExpoWebsiteBaseUrl } from '../../api.js';
|
||||
import { AppPlatform, BuildFragment } from '../../graphql/generated.js';
|
||||
|
||||
export function getProjectDashboardUrl(accountName: string, projectName: string): string {
|
||||
return new URL(
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { ExpoConfig, getConfigFilePaths } from '@expo/config';
|
||||
import chalk from 'chalk';
|
||||
import nullthrows from 'nullthrows';
|
||||
import semver from 'semver';
|
||||
|
||||
import Log from '../../log';
|
||||
import { promptAsync } from '../../prompts';
|
||||
import { updateAppJsonConfigAsync } from './appJson';
|
||||
import Log from '../../log.js';
|
||||
import { promptAsync } from '../../prompts.js';
|
||||
import { nullthrows } from '../../utils/nullthrows.js';
|
||||
import { updateAppJsonConfigAsync } from './appJson.js';
|
||||
|
||||
export function ensureStaticConfigExists(projectDir: string): void {
|
||||
const paths = getConfigFilePaths(projectDir);
|
||||
|
||||
@@ -2,9 +2,9 @@ import { Platform, Workflow } from '@expo/eas-build-job';
|
||||
import fs from 'fs-extra';
|
||||
import path from 'path';
|
||||
|
||||
import Log, { learnMore } from '../log';
|
||||
import { getVcsClient } from '../vcs';
|
||||
import { CommonContext } from './context';
|
||||
import Log, { learnMore } from '../log.js';
|
||||
import { getVcsClient } from '../vcs/index.js';
|
||||
import { CommonContext } from './context.js';
|
||||
|
||||
export function checkNodeEnvVariable(ctx: CommonContext<Platform>): void {
|
||||
if (ctx.buildProfile.env?.NODE_ENV === 'production') {
|
||||
|
||||
@@ -7,13 +7,13 @@ import {
|
||||
flushAsync as flushAnalyticsAsync,
|
||||
initAsync as initAnalyticsAsync,
|
||||
logEvent,
|
||||
} from '../analytics/rudderstackClient';
|
||||
import { findProjectRootAsync } from '../project/projectUtils';
|
||||
import { getUserAsync } from '../user/User';
|
||||
import { ensureLoggedInAsync } from '../user/actions';
|
||||
import { easCliVersion } from '../utils/easCli';
|
||||
import { setVcsClient } from '../vcs';
|
||||
import GitClient from '../vcs/clients/git';
|
||||
} from '../analytics/rudderstackClient.js';
|
||||
import { findProjectRootAsync } from '../project/projectUtils.js';
|
||||
import { getUserAsync } from '../user/User.js';
|
||||
import { ensureLoggedInAsync } from '../user/actions.js';
|
||||
import { easCliVersion } from '../utils/easCli.js';
|
||||
import GitClient from '../vcs/clients/git.js';
|
||||
import { setVcsClient } from '../vcs/index.js';
|
||||
|
||||
export default abstract class EasCommand extends Command {
|
||||
/**
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { flushAsync, initAsync, logEvent } from '../../analytics/rudderstackClient';
|
||||
import { jester as mockJester } from '../../credentials/__tests__/fixtures-constants';
|
||||
import { getUserAsync } from '../../user/User';
|
||||
import { ensureLoggedInAsync } from '../../user/actions';
|
||||
import EasCommand from '../EasCommand';
|
||||
import { flushAsync, initAsync, logEvent } from '../../analytics/rudderstackClient.js';
|
||||
import { jester as mockJester } from '../../credentials/__tests__/fixtures-constants.js';
|
||||
import { getUserAsync } from '../../user/User.js';
|
||||
import { ensureLoggedInAsync } from '../../user/actions.js';
|
||||
import EasCommand from '../EasCommand.js';
|
||||
|
||||
jest.mock('../../user/User');
|
||||
jest.mock('../../user/actions', () => ({ ensureLoggedInAsync: jest.fn() }));
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import Log from '../../log';
|
||||
import { showLoginPromptAsync } from '../../user/actions';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import Log from '../../log.js';
|
||||
import { showLoginPromptAsync } from '../../user/actions.js';
|
||||
|
||||
export default class AccountLogin extends EasCommand {
|
||||
static description = 'log in with your Expo account';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import Log from '../../log';
|
||||
import { logoutAsync } from '../../user/User';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import Log from '../../log.js';
|
||||
import { logoutAsync } from '../../user/User.js';
|
||||
|
||||
export default class AccountLogout extends EasCommand {
|
||||
static description = 'log out';
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import chalk from 'chalk';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import Log from '../../log';
|
||||
import { getActorDisplayName, getUserAsync } from '../../user/User';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import Log from '../../log.js';
|
||||
import { getActorDisplayName, getUserAsync } from '../../user/User.js';
|
||||
|
||||
export default class AccountView extends EasCommand {
|
||||
static description = 'show the username you are logged in as';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import EasCommand from '../commandUtils/EasCommand';
|
||||
import Log from '../log';
|
||||
import UserSettings from '../user/UserSettings';
|
||||
import EasCommand from '../commandUtils/EasCommand.js';
|
||||
import Log from '../log.js';
|
||||
import UserSettings from '../user/UserSettings.js';
|
||||
|
||||
export default class AnalyticsView extends EasCommand {
|
||||
static description = 'display or change analytics settings';
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
import { Flags } from '@oclif/core';
|
||||
import chalk from 'chalk';
|
||||
import gql from 'graphql-tag';
|
||||
import { gql } from 'graphql-tag';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client.js';
|
||||
import {
|
||||
CreateUpdateBranchForAppMutation,
|
||||
CreateUpdateBranchForAppMutationVariables,
|
||||
UpdateBranch,
|
||||
} from '../../graphql/generated';
|
||||
import Log from '../../log';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
} from '../../graphql/generated.js';
|
||||
import Log from '../../log.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import {
|
||||
findProjectRootAsync,
|
||||
getProjectFullNameAsync,
|
||||
getProjectIdAsync,
|
||||
} from '../../project/projectUtils';
|
||||
import { promptAsync } from '../../prompts';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json';
|
||||
import { getVcsClient } from '../../vcs';
|
||||
} from '../../project/projectUtils.js';
|
||||
import { promptAsync } from '../../prompts.js';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json.js';
|
||||
import { getVcsClient } from '../../vcs/index.js';
|
||||
|
||||
export async function createUpdateBranchOnAppAsync({
|
||||
appId,
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
import { Flags } from '@oclif/core';
|
||||
import chalk from 'chalk';
|
||||
import gql from 'graphql-tag';
|
||||
import { gql } from 'graphql-tag';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client.js';
|
||||
import {
|
||||
DeleteUpdateBranchMutation,
|
||||
DeleteUpdateBranchMutationVariables,
|
||||
DeleteUpdateBranchResult,
|
||||
GetBranchInfoQuery,
|
||||
GetBranchInfoQueryVariables,
|
||||
} from '../../graphql/generated';
|
||||
import Log from '../../log';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
} from '../../graphql/generated.js';
|
||||
import Log from '../../log.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import {
|
||||
findProjectRootAsync,
|
||||
getProjectFullNameAsync,
|
||||
getProjectIdAsync,
|
||||
} from '../../project/projectUtils';
|
||||
import { promptAsync, toggleConfirmAsync } from '../../prompts';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json';
|
||||
} from '../../project/projectUtils.js';
|
||||
import { promptAsync, toggleConfirmAsync } from '../../prompts.js';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json.js';
|
||||
|
||||
async function getBranchInfoAsync({
|
||||
appId,
|
||||
|
||||
@@ -2,21 +2,21 @@ import { Flags } from '@oclif/core';
|
||||
import chalk from 'chalk';
|
||||
import CliTable from 'cli-table3';
|
||||
import { print } from 'graphql';
|
||||
import gql from 'graphql-tag';
|
||||
import { gql } from 'graphql-tag';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client.js';
|
||||
import {
|
||||
BranchesByAppQuery,
|
||||
BranchesByAppQueryVariables,
|
||||
UpdateBranchFragment,
|
||||
} from '../../graphql/generated';
|
||||
import { UpdateBranchFragmentNode } from '../../graphql/types/UpdateBranch';
|
||||
import Log from '../../log';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils';
|
||||
import { UPDATE_COLUMNS, formatUpdate, getPlatformsForGroup } from '../../update/utils';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json';
|
||||
} from '../../graphql/generated.js';
|
||||
import { UpdateBranchFragmentNode } from '../../graphql/types/UpdateBranch.js';
|
||||
import Log from '../../log.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils.js';
|
||||
import { UPDATE_COLUMNS, formatUpdate, getPlatformsForGroup } from '../../update/utils.js';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json.js';
|
||||
|
||||
const BRANCHES_LIMIT = 10_000;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
|
||||
export default class BranchPublish extends EasCommand {
|
||||
static description = 'deprecated, use "eas update"';
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
import { Flags } from '@oclif/core';
|
||||
import chalk from 'chalk';
|
||||
import gql from 'graphql-tag';
|
||||
import { gql } from 'graphql-tag';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client.js';
|
||||
import {
|
||||
EditUpdateBranchInput,
|
||||
EditUpdateBranchMutation,
|
||||
EditUpdateBranchMutationVariables,
|
||||
UpdateBranch,
|
||||
} from '../../graphql/generated';
|
||||
import Log from '../../log';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
} from '../../graphql/generated.js';
|
||||
import Log from '../../log.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import {
|
||||
findProjectRootAsync,
|
||||
getProjectFullNameAsync,
|
||||
getProjectIdAsync,
|
||||
} from '../../project/projectUtils';
|
||||
import { promptAsync } from '../../prompts';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json';
|
||||
} from '../../project/projectUtils.js';
|
||||
import { promptAsync } from '../../prompts.js';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json.js';
|
||||
|
||||
async function renameUpdateBranchOnAppAsync({
|
||||
appId,
|
||||
|
||||
@@ -2,16 +2,16 @@ import { Flags } from '@oclif/core';
|
||||
import chalk from 'chalk';
|
||||
import Table from 'cli-table3';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { UpdateQuery } from '../../graphql/queries/UpdateQuery';
|
||||
import Log from '../../log';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils';
|
||||
import { promptAsync } from '../../prompts';
|
||||
import { UPDATE_COLUMNS, formatUpdate, getPlatformsForGroup } from '../../update/utils';
|
||||
import groupBy from '../../utils/expodash/groupBy';
|
||||
import formatFields from '../../utils/formatFields';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { UpdateQuery } from '../../graphql/queries/UpdateQuery.js';
|
||||
import Log from '../../log.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils.js';
|
||||
import { promptAsync } from '../../prompts.js';
|
||||
import { UPDATE_COLUMNS, formatUpdate, getPlatformsForGroup } from '../../update/utils.js';
|
||||
import groupBy from '../../utils/expodash/groupBy.js';
|
||||
import formatFields from '../../utils/formatFields.js';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json.js';
|
||||
|
||||
export default class BranchView extends EasCommand {
|
||||
static description = 'view a branch';
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
import chalk from 'chalk';
|
||||
import gql from 'graphql-tag';
|
||||
import { gql } from 'graphql-tag';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client.js';
|
||||
import {
|
||||
Build,
|
||||
BuildStatus,
|
||||
CancelBuildMutation,
|
||||
CancelBuildMutationVariables,
|
||||
} from '../../graphql/generated';
|
||||
import { BuildQuery } from '../../graphql/queries/BuildQuery';
|
||||
import Log from '../../log';
|
||||
import { ora } from '../../ora';
|
||||
import { appPlatformEmojis } from '../../platform';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
} from '../../graphql/generated.js';
|
||||
import { BuildQuery } from '../../graphql/queries/BuildQuery.js';
|
||||
import Log from '../../log.js';
|
||||
import { ora } from '../../ora.js';
|
||||
import { appPlatformEmojis } from '../../platform.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import {
|
||||
findProjectRootAsync,
|
||||
getProjectFullNameAsync,
|
||||
getProjectIdAsync,
|
||||
} from '../../project/projectUtils';
|
||||
import { confirmAsync, selectAsync } from '../../prompts';
|
||||
} from '../../project/projectUtils.js';
|
||||
import { confirmAsync, selectAsync } from '../../prompts.js';
|
||||
|
||||
async function cancelBuildAsync(buildId: string): Promise<Pick<Build, 'id' | 'status'>> {
|
||||
const data = await withErrorHandlingAsync(
|
||||
|
||||
@@ -2,18 +2,18 @@ import { Platform, Workflow } from '@expo/eas-build-job';
|
||||
import { Flags } from '@oclif/core';
|
||||
import chalk from 'chalk';
|
||||
|
||||
import { cleanUpOldEasBuildGradleScriptAsync } from '../../build/android/syncProjectConfiguration';
|
||||
import { ensureProjectConfiguredAsync } from '../../build/configure';
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import Log, { learnMore } from '../../log';
|
||||
import { RequestedPlatform } from '../../platform';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import { findProjectRootAsync, isExpoUpdatesInstalled } from '../../project/projectUtils';
|
||||
import { resolveWorkflowAsync } from '../../project/workflow';
|
||||
import { promptAsync } from '../../prompts';
|
||||
import { syncUpdatesConfigurationAsync as syncAndroidUpdatesConfigurationAsync } from '../../update/android/UpdatesModule';
|
||||
import { syncUpdatesConfigurationAsync as syncIosUpdatesConfigurationAsync } from '../../update/ios/UpdatesModule';
|
||||
import { getVcsClient } from '../../vcs';
|
||||
import { cleanUpOldEasBuildGradleScriptAsync } from '../../build/android/syncProjectConfiguration.js';
|
||||
import { ensureProjectConfiguredAsync } from '../../build/configure.js';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import Log, { learnMore } from '../../log.js';
|
||||
import { RequestedPlatform } from '../../platform.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import { findProjectRootAsync, isExpoUpdatesInstalled } from '../../project/projectUtils.js';
|
||||
import { resolveWorkflowAsync } from '../../project/workflow.js';
|
||||
import { promptAsync } from '../../prompts.js';
|
||||
import { syncUpdatesConfigurationAsync as syncAndroidUpdatesConfigurationAsync } from '../../update/android/UpdatesModule.js';
|
||||
import { syncUpdatesConfigurationAsync as syncIosUpdatesConfigurationAsync } from '../../update/ios/UpdatesModule.js';
|
||||
import { getVcsClient } from '../../vcs/index.js';
|
||||
|
||||
export default class BuildConfigure extends EasCommand {
|
||||
static description = 'configure the project to support EAS Build';
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { Errors, Flags } from '@oclif/core';
|
||||
import path from 'path';
|
||||
|
||||
import { BuildFlags, runBuildAndSubmitAsync } from '../../build/runBuildAndSubmit';
|
||||
import { UserInputResourceClass } from '../../build/types';
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import Log from '../../log';
|
||||
import { RequestedPlatform, selectRequestedPlatformAsync } from '../../platform';
|
||||
import { findProjectRootAsync } from '../../project/projectUtils';
|
||||
import { enableJsonOutput } from '../../utils/json';
|
||||
import { BuildFlags, runBuildAndSubmitAsync } from '../../build/runBuildAndSubmit.js';
|
||||
import { UserInputResourceClass } from '../../build/types.js';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import Log from '../../log.js';
|
||||
import { RequestedPlatform, selectRequestedPlatformAsync } from '../../platform.js';
|
||||
import { findProjectRootAsync } from '../../project/projectUtils.js';
|
||||
import { enableJsonOutput } from '../../utils/json.js';
|
||||
|
||||
interface RawBuildFlags {
|
||||
platform?: string;
|
||||
|
||||
@@ -4,14 +4,14 @@ import fs from 'fs-extra';
|
||||
import path from 'path';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
||||
import { runBuildAndSubmitAsync } from '../../build/runBuildAndSubmit';
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import Log from '../../log';
|
||||
import { ora } from '../../ora';
|
||||
import { RequestedPlatform } from '../../platform';
|
||||
import { findProjectRootAsync } from '../../project/projectUtils';
|
||||
import { getTmpDirectory } from '../../utils/paths';
|
||||
import { getVcsClient } from '../../vcs';
|
||||
import { runBuildAndSubmitAsync } from '../../build/runBuildAndSubmit.js';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import Log from '../../log.js';
|
||||
import { ora } from '../../ora.js';
|
||||
import { RequestedPlatform } from '../../platform.js';
|
||||
import { findProjectRootAsync } from '../../project/projectUtils.js';
|
||||
import { getTmpDirectory } from '../../utils/paths.js';
|
||||
import { getVcsClient } from '../../vcs/index.js';
|
||||
|
||||
enum InspectStage {
|
||||
ARCHIVE = 'archive',
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
import { Flags } from '@oclif/core';
|
||||
import chalk from 'chalk';
|
||||
|
||||
import { BuildDistributionType, BuildStatus } from '../../build/types';
|
||||
import { formatGraphQLBuild } from '../../build/utils/formatBuild';
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { BuildDistributionType, BuildStatus } from '../../build/types.js';
|
||||
import { formatGraphQLBuild } from '../../build/utils/formatBuild.js';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import {
|
||||
AppPlatform,
|
||||
DistributionType,
|
||||
BuildStatus as GraphQLBuildStatus,
|
||||
} from '../../graphql/generated';
|
||||
import { BuildQuery } from '../../graphql/queries/BuildQuery';
|
||||
import Log from '../../log';
|
||||
import { ora } from '../../ora';
|
||||
import { RequestedPlatform } from '../../platform';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
} from '../../graphql/generated.js';
|
||||
import { BuildQuery } from '../../graphql/queries/BuildQuery.js';
|
||||
import Log from '../../log.js';
|
||||
import { ora } from '../../ora.js';
|
||||
import { RequestedPlatform } from '../../platform.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import {
|
||||
findProjectRootAsync,
|
||||
getProjectFullNameAsync,
|
||||
getProjectIdAsync,
|
||||
} from '../../project/projectUtils';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json';
|
||||
} from '../../project/projectUtils.js';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json.js';
|
||||
|
||||
export default class BuildList extends EasCommand {
|
||||
static description = 'list all builds for your project';
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
import { Flags } from '@oclif/core';
|
||||
|
||||
import { formatGraphQLBuild } from '../../build/utils/formatBuild';
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { BuildFragment } from '../../graphql/generated';
|
||||
import { BuildQuery } from '../../graphql/queries/BuildQuery';
|
||||
import Log from '../../log';
|
||||
import { ora } from '../../ora';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import { formatGraphQLBuild } from '../../build/utils/formatBuild.js';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { BuildFragment } from '../../graphql/generated.js';
|
||||
import { BuildQuery } from '../../graphql/queries/BuildQuery.js';
|
||||
import Log from '../../log.js';
|
||||
import { ora } from '../../ora.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import {
|
||||
findProjectRootAsync,
|
||||
getProjectFullNameAsync,
|
||||
getProjectIdAsync,
|
||||
} from '../../project/projectUtils';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json';
|
||||
} from '../../project/projectUtils.js';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json.js';
|
||||
|
||||
export default class BuildView extends EasCommand {
|
||||
static description = 'view a build for your project';
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
import { Flags } from '@oclif/core';
|
||||
import chalk from 'chalk';
|
||||
import gql from 'graphql-tag';
|
||||
import { gql } from 'graphql-tag';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client.js';
|
||||
import {
|
||||
CreateUpdateChannelOnAppMutation,
|
||||
CreateUpdateChannelOnAppMutationVariables,
|
||||
} from '../../graphql/generated';
|
||||
import { BranchQuery } from '../../graphql/queries/BranchQuery';
|
||||
import Log from '../../log';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
} from '../../graphql/generated.js';
|
||||
import { BranchQuery } from '../../graphql/queries/BranchQuery.js';
|
||||
import Log from '../../log.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import {
|
||||
findProjectRootAsync,
|
||||
getProjectFullNameAsync,
|
||||
getProjectIdAsync,
|
||||
} from '../../project/projectUtils';
|
||||
import { promptAsync } from '../../prompts';
|
||||
import formatFields from '../../utils/formatFields';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json';
|
||||
import { createUpdateBranchOnAppAsync } from '../branch/create';
|
||||
} from '../../project/projectUtils.js';
|
||||
import { promptAsync } from '../../prompts.js';
|
||||
import formatFields from '../../utils/formatFields.js';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json.js';
|
||||
import { createUpdateBranchOnAppAsync } from '../branch/create.js';
|
||||
|
||||
export async function createUpdateChannelOnAppAsync({
|
||||
appId,
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
import { Flags } from '@oclif/core';
|
||||
import gql from 'graphql-tag';
|
||||
import { gql } from 'graphql-tag';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client.js';
|
||||
import {
|
||||
DeleteUpdateChannelMutation,
|
||||
DeleteUpdateChannelMutationVariables,
|
||||
DeleteUpdateChannelResult,
|
||||
GetChannelInfoQuery,
|
||||
GetChannelInfoQueryVariables,
|
||||
} from '../../graphql/generated';
|
||||
import Log from '../../log';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
} from '../../graphql/generated.js';
|
||||
import Log from '../../log.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import {
|
||||
findProjectRootAsync,
|
||||
getProjectFullNameAsync,
|
||||
getProjectIdAsync,
|
||||
} from '../../project/projectUtils';
|
||||
import { promptAsync, toggleConfirmAsync } from '../../prompts';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json';
|
||||
} from '../../project/projectUtils.js';
|
||||
import { promptAsync, toggleConfirmAsync } from '../../prompts.js';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json.js';
|
||||
|
||||
export default class ChannelDelete extends EasCommand {
|
||||
static hidden = true;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { Flags } from '@oclif/core';
|
||||
import chalk from 'chalk';
|
||||
import gql from 'graphql-tag';
|
||||
import { gql } from 'graphql-tag';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client.js';
|
||||
import {
|
||||
GetChannelByNameToEditQuery,
|
||||
GetChannelByNameToEditQueryVariables,
|
||||
@@ -11,13 +11,13 @@ import {
|
||||
UpdateChannel,
|
||||
UpdateChannelBranchMappingMutation,
|
||||
UpdateChannelBranchMappingMutationVariables,
|
||||
} from '../../graphql/generated';
|
||||
import { BranchQuery } from '../../graphql/queries/BranchQuery';
|
||||
import Log from '../../log';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils';
|
||||
import { promptAsync } from '../../prompts';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json';
|
||||
} from '../../graphql/generated.js';
|
||||
import { BranchQuery } from '../../graphql/queries/BranchQuery.js';
|
||||
import Log from '../../log.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils.js';
|
||||
import { promptAsync } from '../../prompts.js';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json.js';
|
||||
|
||||
async function getChannelByNameForAppAsync({
|
||||
appId,
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
import { Flags } from '@oclif/core';
|
||||
import gql from 'graphql-tag';
|
||||
import { gql } from 'graphql-tag';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client.js';
|
||||
import {
|
||||
GetAllChannelsForAppQuery,
|
||||
GetAllChannelsForAppQueryVariables,
|
||||
} from '../../graphql/generated';
|
||||
import Log from '../../log';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils';
|
||||
import formatFields from '../../utils/formatFields';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json';
|
||||
import { logChannelDetails } from './view';
|
||||
} from '../../graphql/generated.js';
|
||||
import Log from '../../log.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils.js';
|
||||
import formatFields from '../../utils/formatFields.js';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json.js';
|
||||
import { logChannelDetails } from './view.js';
|
||||
|
||||
const CHANNEL_LIMIT = 10_000;
|
||||
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
import { Flags } from '@oclif/core';
|
||||
import chalk from 'chalk';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { GetChannelByNameForAppQuery, UpdateBranch } from '../../graphql/generated';
|
||||
import { BranchQuery } from '../../graphql/queries/BranchQuery';
|
||||
import { ChannelQuery } from '../../graphql/queries/ChannelQuery';
|
||||
import Log from '../../log';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { GetChannelByNameForAppQuery, UpdateBranch } from '../../graphql/generated.js';
|
||||
import { BranchQuery } from '../../graphql/queries/BranchQuery.js';
|
||||
import { ChannelQuery } from '../../graphql/queries/ChannelQuery.js';
|
||||
import Log from '../../log.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import {
|
||||
findProjectRootAsync,
|
||||
getProjectFullNameAsync,
|
||||
getProjectIdAsync,
|
||||
} from '../../project/projectUtils';
|
||||
import { promptAsync, selectAsync } from '../../prompts';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json';
|
||||
import { updateChannelBranchMappingAsync } from './edit';
|
||||
import { BranchMapping, getBranchMapping } from './view';
|
||||
} from '../../project/projectUtils.js';
|
||||
import { promptAsync, selectAsync } from '../../prompts.js';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json.js';
|
||||
import { updateChannelBranchMappingAsync } from './edit.js';
|
||||
import { BranchMapping, getBranchMapping } from './view.js';
|
||||
|
||||
async function promptForRolloutPercentAsync({
|
||||
promptMessage,
|
||||
|
||||
@@ -3,20 +3,20 @@ import assert from 'assert';
|
||||
import chalk from 'chalk';
|
||||
import Table from 'cli-table3';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { ChannelQuery } from '../../graphql/queries/ChannelQuery';
|
||||
import Log from '../../log';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils';
|
||||
import { promptAsync } from '../../prompts';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { ChannelQuery } from '../../graphql/queries/ChannelQuery.js';
|
||||
import Log from '../../log.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils.js';
|
||||
import { promptAsync } from '../../prompts.js';
|
||||
import {
|
||||
FormatUpdateParameter,
|
||||
UPDATE_COLUMNS,
|
||||
formatUpdate,
|
||||
getPlatformsForGroup,
|
||||
} from '../../update/utils';
|
||||
import formatFields from '../../utils/formatFields';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json';
|
||||
} from '../../update/utils.js';
|
||||
import formatFields from '../../utils/formatFields.js';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json.js';
|
||||
|
||||
export type BranchMapping = {
|
||||
version: number;
|
||||
|
||||
@@ -4,13 +4,13 @@ import { EasJsonReader } from '@expo/eas-json';
|
||||
import { Flags } from '@oclif/core';
|
||||
import chalk from 'chalk';
|
||||
|
||||
import EasCommand from '../commandUtils/EasCommand';
|
||||
import { toAppPlatform } from '../graphql/types/AppPlatform';
|
||||
import Log from '../log';
|
||||
import { appPlatformEmojis } from '../platform';
|
||||
import { getExpoConfig } from '../project/expoConfig';
|
||||
import { findProjectRootAsync } from '../project/projectUtils';
|
||||
import { selectAsync } from '../prompts';
|
||||
import EasCommand from '../commandUtils/EasCommand.js';
|
||||
import { toAppPlatform } from '../graphql/types/AppPlatform.js';
|
||||
import Log from '../log.js';
|
||||
import { appPlatformEmojis } from '../platform.js';
|
||||
import { getExpoConfig } from '../project/expoConfig.js';
|
||||
import { findProjectRootAsync } from '../project/projectUtils.js';
|
||||
import { selectAsync } from '../prompts.js';
|
||||
|
||||
export default class Config extends EasCommand {
|
||||
static description = 'display project configuration (app.json + eas.json)';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import EasCommand from '../commandUtils/EasCommand';
|
||||
import { SelectPlatform } from '../credentials/manager/SelectPlatform';
|
||||
import EasCommand from '../commandUtils/EasCommand.js';
|
||||
import { SelectPlatform } from '../credentials/manager/SelectPlatform.js';
|
||||
|
||||
export default class Credentials extends EasCommand {
|
||||
static description = 'manage credentials';
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import AppStoreApi from '../../credentials/ios/appstore/AppStoreApi';
|
||||
import { createContextAsync } from '../../devices/context';
|
||||
import DeviceManager from '../../devices/manager';
|
||||
import { ensureLoggedInAsync } from '../../user/actions';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import AppStoreApi from '../../credentials/ios/appstore/AppStoreApi.js';
|
||||
import { createContextAsync } from '../../devices/context.js';
|
||||
import DeviceManager from '../../devices/manager.js';
|
||||
import { ensureLoggedInAsync } from '../../user/actions.js';
|
||||
|
||||
export default class DeviceCreate extends EasCommand {
|
||||
static description = 'register new Apple Devices to use for internal distribution';
|
||||
|
||||
@@ -1,24 +1,29 @@
|
||||
import { Device, DeviceStatus } from '@expo/apple-utils';
|
||||
import AppleUtils from '@expo/apple-utils';
|
||||
import { Flags } from '@oclif/core';
|
||||
import assert from 'assert';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { chooseDevicesToDeleteAsync } from '../../credentials/ios/actions/DeviceUtils';
|
||||
import { AppleDeviceMutation } from '../../credentials/ios/api/graphql/mutations/AppleDeviceMutation';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { chooseDevicesToDeleteAsync } from '../../credentials/ios/actions/DeviceUtils.js';
|
||||
import { AppleDeviceMutation } from '../../credentials/ios/api/graphql/mutations/AppleDeviceMutation.js';
|
||||
import {
|
||||
AppleDeviceQuery,
|
||||
AppleDeviceQueryResult,
|
||||
AppleDevicesByTeamIdentifierQueryResult,
|
||||
} from '../../credentials/ios/api/graphql/queries/AppleDeviceQuery';
|
||||
import { AppleTeamQuery } from '../../credentials/ios/api/graphql/queries/AppleTeamQuery';
|
||||
import { authenticateAsync, getRequestContext } from '../../credentials/ios/appstore/authenticate';
|
||||
import formatDevice from '../../devices/utils/formatDevice';
|
||||
import { AppleDevice, Maybe } from '../../graphql/generated';
|
||||
import Log from '../../log';
|
||||
import { ora } from '../../ora';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import { findProjectRootAsync, getProjectAccountNameAsync } from '../../project/projectUtils';
|
||||
import { promptAsync, toggleConfirmAsync } from '../../prompts';
|
||||
} from '../../credentials/ios/api/graphql/queries/AppleDeviceQuery.js';
|
||||
import { AppleTeamQuery } from '../../credentials/ios/api/graphql/queries/AppleTeamQuery.js';
|
||||
import {
|
||||
authenticateAsync,
|
||||
getRequestContext,
|
||||
} from '../../credentials/ios/appstore/authenticate.js';
|
||||
import formatDevice from '../../devices/utils/formatDevice.js';
|
||||
import { AppleDevice, Maybe } from '../../graphql/generated.js';
|
||||
import Log from '../../log.js';
|
||||
import { ora } from '../../ora.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import { findProjectRootAsync, getProjectAccountNameAsync } from '../../project/projectUtils.js';
|
||||
import { promptAsync, toggleConfirmAsync } from '../../prompts.js';
|
||||
|
||||
const { Device, DeviceStatus } = AppleUtils;
|
||||
|
||||
export default class DeviceDelete extends EasCommand {
|
||||
static description = 'remove a registered device from your account';
|
||||
|
||||
@@ -2,15 +2,15 @@ import { Flags } from '@oclif/core';
|
||||
import assert from 'assert';
|
||||
import chalk from 'chalk';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { AppleDeviceQuery } from '../../credentials/ios/api/graphql/queries/AppleDeviceQuery';
|
||||
import { AppleTeamQuery } from '../../credentials/ios/api/graphql/queries/AppleTeamQuery';
|
||||
import formatDevice from '../../devices/utils/formatDevice';
|
||||
import Log from '../../log';
|
||||
import { Ora, ora } from '../../ora';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import { findProjectRootAsync, getProjectAccountNameAsync } from '../../project/projectUtils';
|
||||
import { promptAsync } from '../../prompts';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { AppleDeviceQuery } from '../../credentials/ios/api/graphql/queries/AppleDeviceQuery.js';
|
||||
import { AppleTeamQuery } from '../../credentials/ios/api/graphql/queries/AppleTeamQuery.js';
|
||||
import formatDevice from '../../devices/utils/formatDevice.js';
|
||||
import Log from '../../log.js';
|
||||
import { Ora, ora } from '../../ora.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import { findProjectRootAsync, getProjectAccountNameAsync } from '../../project/projectUtils.js';
|
||||
import { promptAsync } from '../../prompts.js';
|
||||
|
||||
export default class BuildList extends EasCommand {
|
||||
static description = 'list all registered devices for your account';
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { AppleDeviceQuery } from '../../credentials/ios/api/graphql/queries/AppleDeviceQuery';
|
||||
import formatDevice from '../../devices/utils/formatDevice';
|
||||
import Log from '../../log';
|
||||
import { ora } from '../../ora';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import { findProjectRootAsync, getProjectAccountNameAsync } from '../../project/projectUtils';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { AppleDeviceQuery } from '../../credentials/ios/api/graphql/queries/AppleDeviceQuery.js';
|
||||
import formatDevice from '../../devices/utils/formatDevice.js';
|
||||
import Log from '../../log.js';
|
||||
import { ora } from '../../ora.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import { findProjectRootAsync, getProjectAccountNameAsync } from '../../project/projectUtils.js';
|
||||
|
||||
export default class DeviceView extends EasCommand {
|
||||
static description = 'view a device for your project';
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { Platform } from '@expo/eas-build-job';
|
||||
import envinfo from 'envinfo';
|
||||
|
||||
import EasCommand from '../commandUtils/EasCommand';
|
||||
import Log from '../log';
|
||||
import { findProjectRootAsync } from '../project/projectUtils';
|
||||
import { resolveWorkflowAsync } from '../project/workflow';
|
||||
import { easCliVersion } from '../utils/easCli';
|
||||
import EasCommand from '../commandUtils/EasCommand.js';
|
||||
import Log from '../log.js';
|
||||
import { findProjectRootAsync } from '../project/projectUtils.js';
|
||||
import { resolveWorkflowAsync } from '../project/workflow.js';
|
||||
import { easCliVersion } from '../utils/easCli.js';
|
||||
|
||||
export default class Diagnostics extends EasCommand {
|
||||
static description = 'display environment info';
|
||||
|
||||
@@ -3,15 +3,15 @@ import { Flags } from '@oclif/core';
|
||||
import chalk from 'chalk';
|
||||
import path from 'path';
|
||||
|
||||
import { ensureProjectConfiguredAsync } from '../../build/configure';
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { CredentialsContext } from '../../credentials/context';
|
||||
import Log, { learnMore } from '../../log';
|
||||
import { createMetadataContextAsync } from '../../metadata/context';
|
||||
import { downloadMetadataAsync } from '../../metadata/download';
|
||||
import { handleMetadataError } from '../../metadata/errors';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils';
|
||||
import { ensureLoggedInAsync } from '../../user/actions';
|
||||
import { ensureProjectConfiguredAsync } from '../../build/configure.js';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { CredentialsContext } from '../../credentials/context.js';
|
||||
import Log, { learnMore } from '../../log.js';
|
||||
import { createMetadataContextAsync } from '../../metadata/context.js';
|
||||
import { downloadMetadataAsync } from '../../metadata/download.js';
|
||||
import { handleMetadataError } from '../../metadata/errors.js';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils.js';
|
||||
import { ensureLoggedInAsync } from '../../user/actions.js';
|
||||
|
||||
export default class MetadataPull extends EasCommand {
|
||||
static description = 'generate the local store configuration from the app stores';
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import { getConfig } from '@expo/config';
|
||||
import { Flags } from '@oclif/core';
|
||||
|
||||
import { ensureProjectConfiguredAsync } from '../../build/configure';
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { CredentialsContext } from '../../credentials/context';
|
||||
import Log, { learnMore } from '../../log';
|
||||
import { createMetadataContextAsync } from '../../metadata/context';
|
||||
import { handleMetadataError } from '../../metadata/errors';
|
||||
import { uploadMetadataAsync } from '../../metadata/upload';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils';
|
||||
import { ensureLoggedInAsync } from '../../user/actions';
|
||||
import { ensureProjectConfiguredAsync } from '../../build/configure.js';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { CredentialsContext } from '../../credentials/context.js';
|
||||
import Log, { learnMore } from '../../log.js';
|
||||
import { createMetadataContextAsync } from '../../metadata/context.js';
|
||||
import { handleMetadataError } from '../../metadata/errors.js';
|
||||
import { uploadMetadataAsync } from '../../metadata/upload.js';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils.js';
|
||||
import { ensureLoggedInAsync } from '../../user/actions.js';
|
||||
|
||||
export default class MetadataPush extends EasCommand {
|
||||
static description = 'sync the local store configuration to the app stores';
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import gql from 'graphql-tag';
|
||||
import { gql } from 'graphql-tag';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client';
|
||||
import { AppInfoQuery, AppInfoQueryVariables } from '../../graphql/generated';
|
||||
import Log from '../../log';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils';
|
||||
import formatFields from '../../utils/formatFields';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client.js';
|
||||
import { AppInfoQuery, AppInfoQueryVariables } from '../../graphql/generated.js';
|
||||
import Log from '../../log.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils.js';
|
||||
import formatFields from '../../utils/formatFields.js';
|
||||
|
||||
async function projectInfoByIdAsync(appId: string): Promise<AppInfoQuery> {
|
||||
const data = await withErrorHandlingAsync(
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import chalk from 'chalk';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import Log from '../../log';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import { findProjectRootAsync, setProjectIdAsync } from '../../project/projectUtils';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import Log from '../../log.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import { findProjectRootAsync, setProjectIdAsync } from '../../project/projectUtils.js';
|
||||
|
||||
export default class ProjectInit extends EasCommand {
|
||||
static description = 'create or link an EAS project';
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
import { Flags } from '@oclif/core';
|
||||
import chalk from 'chalk';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { EnvironmentSecretMutation } from '../../graphql/mutations/EnvironmentSecretMutation';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { EnvironmentSecretMutation } from '../../graphql/mutations/EnvironmentSecretMutation.js';
|
||||
import {
|
||||
EnvironmentSecretScope,
|
||||
EnvironmentSecretsQuery,
|
||||
} from '../../graphql/queries/EnvironmentSecretsQuery';
|
||||
import Log from '../../log';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
} from '../../graphql/queries/EnvironmentSecretsQuery.js';
|
||||
import Log from '../../log.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import {
|
||||
findProjectRootAsync,
|
||||
getProjectAccountNameAsync,
|
||||
getProjectIdAsync,
|
||||
} from '../../project/projectUtils';
|
||||
import { promptAsync } from '../../prompts';
|
||||
import { findAccountByName } from '../../user/Account';
|
||||
import { getActorDisplayName } from '../../user/User';
|
||||
import { ensureLoggedInAsync } from '../../user/actions';
|
||||
} from '../../project/projectUtils.js';
|
||||
import { promptAsync } from '../../prompts.js';
|
||||
import { findAccountByName } from '../../user/Account.js';
|
||||
import { getActorDisplayName } from '../../user/User.js';
|
||||
import { ensureLoggedInAsync } from '../../user/actions.js';
|
||||
|
||||
export default class EnvironmentSecretCreate extends EasCommand {
|
||||
static description = 'create an environment secret on the current project or owner account';
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
import { Flags } from '@oclif/core';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { EnvironmentSecretMutation } from '../../graphql/mutations/EnvironmentSecretMutation';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { EnvironmentSecretMutation } from '../../graphql/mutations/EnvironmentSecretMutation.js';
|
||||
import {
|
||||
EnvironmentSecretScope,
|
||||
EnvironmentSecretWithScope,
|
||||
EnvironmentSecretsQuery,
|
||||
} from '../../graphql/queries/EnvironmentSecretsQuery';
|
||||
import Log from '../../log';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
} from '../../graphql/queries/EnvironmentSecretsQuery.js';
|
||||
import Log from '../../log.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import {
|
||||
findProjectRootAsync,
|
||||
getProjectAccountNameAsync,
|
||||
getProjectIdAsync,
|
||||
} from '../../project/projectUtils';
|
||||
import { promptAsync, toggleConfirmAsync } from '../../prompts';
|
||||
} from '../../project/projectUtils.js';
|
||||
import { promptAsync, toggleConfirmAsync } from '../../prompts.js';
|
||||
|
||||
export default class EnvironmentSecretDelete extends EasCommand {
|
||||
static description = 'delete an environment secret by ID';
|
||||
|
||||
@@ -2,15 +2,15 @@ import chalk from 'chalk';
|
||||
import Table from 'cli-table3';
|
||||
import dateFormat from 'dateformat';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { EnvironmentSecretsQuery } from '../../graphql/queries/EnvironmentSecretsQuery';
|
||||
import Log from '../../log';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { EnvironmentSecretsQuery } from '../../graphql/queries/EnvironmentSecretsQuery.js';
|
||||
import Log from '../../log.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import {
|
||||
findProjectRootAsync,
|
||||
getProjectAccountNameAsync,
|
||||
getProjectIdAsync,
|
||||
} from '../../project/projectUtils';
|
||||
} from '../../project/projectUtils.js';
|
||||
|
||||
export default class EnvironmentSecretList extends EasCommand {
|
||||
static description = 'list environment secrets available for your current app';
|
||||
|
||||
@@ -2,23 +2,23 @@ import { EasJsonReader } from '@expo/eas-json';
|
||||
import { Errors, Flags } from '@oclif/core';
|
||||
import chalk from 'chalk';
|
||||
|
||||
import EasCommand from '../commandUtils/EasCommand';
|
||||
import { SubmissionFragment } from '../graphql/generated';
|
||||
import { toAppPlatform } from '../graphql/types/AppPlatform';
|
||||
import Log from '../log';
|
||||
import EasCommand from '../commandUtils/EasCommand.js';
|
||||
import { SubmissionFragment } from '../graphql/generated.js';
|
||||
import { toAppPlatform } from '../graphql/types/AppPlatform.js';
|
||||
import Log from '../log.js';
|
||||
import {
|
||||
RequestedPlatform,
|
||||
appPlatformDisplayNames,
|
||||
appPlatformEmojis,
|
||||
selectRequestedPlatformAsync,
|
||||
toPlatforms,
|
||||
} from '../platform';
|
||||
import { getExpoConfig } from '../project/expoConfig';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../project/projectUtils';
|
||||
import { SubmitArchiveFlags, createSubmissionContextAsync } from '../submit/context';
|
||||
import { submitAsync, waitToCompleteAsync } from '../submit/submit';
|
||||
import { printSubmissionDetailsUrls } from '../submit/utils/urls';
|
||||
import { getProfilesAsync } from '../utils/profiles';
|
||||
} from '../platform.js';
|
||||
import { getExpoConfig } from '../project/expoConfig.js';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../project/projectUtils.js';
|
||||
import { SubmitArchiveFlags, createSubmissionContextAsync } from '../submit/context.js';
|
||||
import { submitAsync, waitToCompleteAsync } from '../submit/submit.js';
|
||||
import { printSubmissionDetailsUrls } from '../submit/utils/urls.js';
|
||||
import { getProfilesAsync } from '../utils/profiles.js';
|
||||
|
||||
interface RawCommandFlags {
|
||||
platform?: string;
|
||||
|
||||
@@ -4,21 +4,21 @@ import { Flags } from '@oclif/core';
|
||||
import assert from 'assert';
|
||||
import chalk from 'chalk';
|
||||
|
||||
import { getEASUpdateURL } from '../../api';
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { AppPlatform } from '../../graphql/generated';
|
||||
import Log, { learnMore } from '../../log';
|
||||
import { RequestedPlatform, appPlatformDisplayNames } from '../../platform';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import { getEASUpdateURL } from '../../api.js';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { AppPlatform } from '../../graphql/generated.js';
|
||||
import Log, { learnMore } from '../../log.js';
|
||||
import { RequestedPlatform, appPlatformDisplayNames } from '../../platform.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import {
|
||||
findProjectRootAsync,
|
||||
getProjectIdAsync,
|
||||
installExpoUpdatesAsync,
|
||||
isExpoUpdatesInstalledOrAvailable,
|
||||
} from '../../project/projectUtils';
|
||||
import { resolveWorkflowAsync } from '../../project/workflow';
|
||||
import { syncUpdatesConfigurationAsync as syncAndroidUpdatesConfigurationAsync } from '../../update/android/UpdatesModule';
|
||||
import { syncUpdatesConfigurationAsync as syncIosUpdatesConfigurationAsync } from '../../update/ios/UpdatesModule';
|
||||
} from '../../project/projectUtils.js';
|
||||
import { resolveWorkflowAsync } from '../../project/workflow.js';
|
||||
import { syncUpdatesConfigurationAsync as syncAndroidUpdatesConfigurationAsync } from '../../update/android/UpdatesModule.js';
|
||||
import { syncUpdatesConfigurationAsync as syncIosUpdatesConfigurationAsync } from '../../update/ios/UpdatesModule.js';
|
||||
|
||||
const DEFAULT_MANAGED_RUNTIME_VERSION = { policy: 'sdkVersion' } as const;
|
||||
const DEFAULT_BARE_RUNTIME_VERSION = '1.0.0' as const;
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import { Flags } from '@oclif/core';
|
||||
import chalk from 'chalk';
|
||||
import gql from 'graphql-tag';
|
||||
import { gql } from 'graphql-tag';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client.js';
|
||||
import {
|
||||
DeleteUpdateGroupMutation,
|
||||
UpdateMutationDeleteUpdateGroupArgs,
|
||||
} from '../../graphql/generated';
|
||||
import Log from '../../log';
|
||||
import { confirmAsync } from '../../prompts';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json';
|
||||
} from '../../graphql/generated.js';
|
||||
import Log from '../../log.js';
|
||||
import { confirmAsync } from '../../prompts.js';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json.js';
|
||||
|
||||
async function deleteUpdateGroupAsync({
|
||||
group,
|
||||
|
||||
@@ -1,18 +1,17 @@
|
||||
import { ExpoConfig } from '@expo/config';
|
||||
import { Updates } from '@expo/config-plugins';
|
||||
import ConfigPlugins from '@expo/config-plugins';
|
||||
import { Platform, Workflow } from '@expo/eas-build-job';
|
||||
import { Errors, Flags } from '@oclif/core';
|
||||
import assert from 'assert';
|
||||
import chalk from 'chalk';
|
||||
import dateFormat from 'dateformat';
|
||||
import gql from 'graphql-tag';
|
||||
import nullthrows from 'nullthrows';
|
||||
import { gql } from 'graphql-tag';
|
||||
|
||||
import { getEASUpdateURL } from '../../api';
|
||||
import { getUpdateGroupUrl } from '../../build/utils/url';
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import fetch from '../../fetch';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client';
|
||||
import { getEASUpdateURL } from '../../api.js';
|
||||
import { getUpdateGroupUrl } from '../../build/utils/url.js';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import fetch from '../../fetch.js';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client.js';
|
||||
import {
|
||||
GetUpdateGroupAsyncQuery,
|
||||
PublishUpdateGroupInput,
|
||||
@@ -23,43 +22,46 @@ import {
|
||||
UpdatePublishMutation,
|
||||
User,
|
||||
ViewBranchUpdatesQuery,
|
||||
} from '../../graphql/generated';
|
||||
import { PublishMutation } from '../../graphql/mutations/PublishMutation';
|
||||
import { UpdateQuery } from '../../graphql/queries/UpdateQuery';
|
||||
import Log, { link } from '../../log';
|
||||
import { ora } from '../../ora';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
} from '../../graphql/generated.js';
|
||||
import { PublishMutation } from '../../graphql/mutations/PublishMutation.js';
|
||||
import { UpdateQuery } from '../../graphql/queries/UpdateQuery.js';
|
||||
import Log, { link } from '../../log.js';
|
||||
import { ora } from '../../ora.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import {
|
||||
findProjectRootAsync,
|
||||
getProjectAccountName,
|
||||
getProjectIdAsync,
|
||||
installExpoUpdatesAsync,
|
||||
isExpoUpdatesInstalledOrAvailable,
|
||||
} from '../../project/projectUtils';
|
||||
} from '../../project/projectUtils.js';
|
||||
import {
|
||||
PublishPlatform,
|
||||
buildBundlesAsync,
|
||||
buildUnsortedUpdateInfoGroupAsync,
|
||||
collectAssetsAsync,
|
||||
uploadAssetsAsync,
|
||||
} from '../../project/publish';
|
||||
import { resolveWorkflowAsync } from '../../project/workflow';
|
||||
import { confirmAsync, promptAsync, selectAsync } from '../../prompts';
|
||||
import { formatUpdate } from '../../update/utils';
|
||||
import { ensureLoggedInAsync } from '../../user/actions';
|
||||
} from '../../project/publish.js';
|
||||
import { resolveWorkflowAsync } from '../../project/workflow.js';
|
||||
import { confirmAsync, promptAsync, selectAsync } from '../../prompts.js';
|
||||
import { formatUpdate } from '../../update/utils.js';
|
||||
import { ensureLoggedInAsync } from '../../user/actions.js';
|
||||
import {
|
||||
checkManifestBodyAgainstUpdateInfoGroup,
|
||||
getCodeSigningInfoAsync,
|
||||
getManifestBodyAsync,
|
||||
signManifestBody,
|
||||
} from '../../utils/code-signing';
|
||||
import uniqBy from '../../utils/expodash/uniqBy';
|
||||
import formatFields from '../../utils/formatFields';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json';
|
||||
import { getVcsClient } from '../../vcs';
|
||||
import { createUpdateBranchOnAppAsync } from '../branch/create';
|
||||
import { listBranchesAsync } from '../branch/list';
|
||||
import { createUpdateChannelOnAppAsync } from '../channel/create';
|
||||
} from '../../utils/code-signing.js';
|
||||
import uniqBy from '../../utils/expodash/uniqBy.js';
|
||||
import formatFields from '../../utils/formatFields.js';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json.js';
|
||||
import { nullthrows } from '../../utils/nullthrows.js';
|
||||
import { getVcsClient } from '../../vcs/index.js';
|
||||
import { createUpdateBranchOnAppAsync } from '../branch/create.js';
|
||||
import { listBranchesAsync } from '../branch/list.js';
|
||||
import { createUpdateChannelOnAppAsync } from '../channel/create.js';
|
||||
|
||||
const { Updates } = ConfigPlugins;
|
||||
|
||||
export const defaultPublishPlatforms: PublishPlatform[] = ['android', 'ios'];
|
||||
export type PublishPlatformFlag = PublishPlatform | 'all';
|
||||
|
||||
@@ -3,17 +3,17 @@ import assert from 'assert';
|
||||
import chalk from 'chalk';
|
||||
import CliTable from 'cli-table3';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { ViewAllUpdatesQuery } from '../../graphql/generated';
|
||||
import { UpdateQuery } from '../../graphql/queries/UpdateQuery';
|
||||
import Log from '../../log';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils';
|
||||
import { promptAsync } from '../../prompts';
|
||||
import { FormatUpdateParameter, UPDATE_COLUMNS, formatUpdate } from '../../update/utils';
|
||||
import groupBy from '../../utils/expodash/groupBy';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json';
|
||||
import { getVcsClient } from '../../vcs';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { ViewAllUpdatesQuery } from '../../graphql/generated.js';
|
||||
import { UpdateQuery } from '../../graphql/queries/UpdateQuery.js';
|
||||
import Log from '../../log.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils.js';
|
||||
import { promptAsync } from '../../prompts.js';
|
||||
import { FormatUpdateParameter, UPDATE_COLUMNS, formatUpdate } from '../../update/utils.js';
|
||||
import groupBy from '../../utils/expodash/groupBy.js';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json.js';
|
||||
import { getVcsClient } from '../../vcs/index.js';
|
||||
|
||||
type UpdateGroupDescription = FormatUpdateParameter & {
|
||||
branch: string;
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { Flags } from '@oclif/core';
|
||||
import Table from 'cli-table3';
|
||||
import gql from 'graphql-tag';
|
||||
import { gql } from 'graphql-tag';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client';
|
||||
import { UpdatesByGroupQuery, UpdatesByGroupQueryVariables } from '../../graphql/generated';
|
||||
import Log from '../../log';
|
||||
import { UPDATE_COLUMNS, formatUpdate, getPlatformsForGroup } from '../../update/utils';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { graphqlClient, withErrorHandlingAsync } from '../../graphql/client.js';
|
||||
import { UpdatesByGroupQuery, UpdatesByGroupQueryVariables } from '../../graphql/generated.js';
|
||||
import Log from '../../log.js';
|
||||
import { UPDATE_COLUMNS, formatUpdate, getPlatformsForGroup } from '../../update/utils.js';
|
||||
import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json.js';
|
||||
|
||||
export async function viewUpdateAsync({
|
||||
groupId,
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { Flags } from '@oclif/core';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { WebhookType } from '../../graphql/generated';
|
||||
import { WebhookMutation } from '../../graphql/mutations/WebhookMutation';
|
||||
import { ora } from '../../ora';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils';
|
||||
import { prepareInputParamsAsync } from '../../webhooks/input';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { WebhookType } from '../../graphql/generated.js';
|
||||
import { WebhookMutation } from '../../graphql/mutations/WebhookMutation.js';
|
||||
import { ora } from '../../ora.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils.js';
|
||||
import { prepareInputParamsAsync } from '../../webhooks/input.js';
|
||||
|
||||
export default class WebhookCreate extends EasCommand {
|
||||
static description = 'create a webhook';
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
import assert from 'assert';
|
||||
import chalk from 'chalk';
|
||||
import nullthrows from 'nullthrows';
|
||||
|
||||
import EasCommand from '../../commandUtils/EasCommand';
|
||||
import { WebhookFragment } from '../../graphql/generated';
|
||||
import { WebhookMutation } from '../../graphql/mutations/WebhookMutation';
|
||||
import { WebhookQuery } from '../../graphql/queries/WebhookQuery';
|
||||
import Log from '../../log';
|
||||
import { ora } from '../../ora';
|
||||
import { getExpoConfig } from '../../project/expoConfig';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils';
|
||||
import { promptAsync, toggleConfirmAsync } from '../../prompts';
|
||||
import { formatWebhook } from '../../webhooks/formatWebhook';
|
||||
import EasCommand from '../../commandUtils/EasCommand.js';
|
||||
import { WebhookFragment } from '../../graphql/generated.js';
|
||||
import { WebhookMutation } from '../../graphql/mutations/WebhookMutation.js';
|
||||
import { WebhookQuery } from '../../graphql/queries/WebhookQuery.js';
|
||||
import Log from '../../log.js';
|
||||
import { ora } from '../../ora.js';
|
||||
import { getExpoConfig } from '../../project/expoConfig.js';
|
||||
import { findProjectRootAsync, getProjectIdAsync } from '../../project/projectUtils.js';
|
||||
import { promptAsync, toggleConfirmAsync } from '../../prompts.js';
|
||||
import { nullthrows } from '../../utils/nullthrows.js';
|
||||
import { formatWebhook } from '../../webhooks/formatWebhook.js';
|
||||
|
||||
export default class WebhookDelete extends EasCommand {
|
||||
static description = 'delete a webhook';
|
||||
|
||||
Loaded 100 of 495 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user