@expo/build-tools 0.1.128 → 0.1.129

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,9 +5,11 @@ export declare class XcodeBuildLogger {
5
5
  private loggerError?;
6
6
  private flushing;
7
7
  private logReaderPromise?;
8
+ private logsPath?;
8
9
  constructor(logger: bunyan, projectRoot: string);
9
10
  watchLogFiles(logsDirectory: string): Promise<void>;
10
11
  flush(): Promise<void>;
11
12
  private getBuildLogFilename;
12
13
  private startBuildLogger;
14
+ private findBundlerErrors;
13
15
  }
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.XcodeBuildLogger = void 0;
7
7
  const assert_1 = __importDefault(require("assert"));
8
8
  const path_1 = __importDefault(require("path"));
9
+ const fs_extra_1 = __importDefault(require("fs-extra"));
9
10
  const xcpretty_1 = require("@expo/xcpretty");
10
11
  const spawn_async_1 = __importDefault(require("@expo/spawn-async"));
11
12
  const fast_glob_1 = __importDefault(require("fast-glob"));
@@ -20,7 +21,8 @@ class XcodeBuildLogger {
20
21
  while (!this.flushing) {
21
22
  const logsFilename = await this.getBuildLogFilename(logsDirectory);
22
23
  if (logsFilename) {
23
- void this.startBuildLogger(path_1.default.join(logsDirectory, logsFilename));
24
+ this.logsPath = path_1.default.join(logsDirectory, logsFilename);
25
+ void this.startBuildLogger(this.logsPath);
24
26
  return;
25
27
  }
26
28
  await new Promise((res) => setTimeout(res, CHECK_FILE_INTERVAL_MS));
@@ -38,6 +40,9 @@ class XcodeBuildLogger {
38
40
  }
39
41
  catch (_a) { }
40
42
  }
43
+ if (this.logsPath) {
44
+ await this.findBundlerErrors(this.logsPath);
45
+ }
41
46
  }
42
47
  async getBuildLogFilename(logsDirectory) {
43
48
  const paths = await (0, fast_glob_1.default)('*.log', { cwd: logsDirectory });
@@ -66,6 +71,18 @@ class XcodeBuildLogger {
66
71
  }
67
72
  }
68
73
  }
74
+ async findBundlerErrors(logsPath) {
75
+ try {
76
+ const logFile = await fs_extra_1.default.readFile(logsPath, 'utf-8');
77
+ const match = logFile.match(/Welcome to Metro!\s* Fast - Scalable - Integrated\s*([\s\S]*)Run CLI with --verbose flag for more details.\nCommand PhaseScriptExecution failed with a nonzero exit code/);
78
+ if (match) {
79
+ this.logger.info(match[1]);
80
+ }
81
+ }
82
+ catch (err) {
83
+ this.logger.error({ err }, 'Failed to read Xcode logs');
84
+ }
85
+ }
69
86
  }
70
87
  exports.XcodeBuildLogger = XcodeBuildLogger;
71
88
  //# sourceMappingURL=xcpretty.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"xcpretty.js","sourceRoot":"","sources":["../../src/ios/xcpretty.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'assert';\nimport path from 'path';\n\nimport { bunyan } from '@expo/logger';\nimport { ExpoRunFormatter } from '@expo/xcpretty';\nimport spawnAsync, { SpawnPromise, SpawnResult } from '@expo/spawn-async';\nimport fg from 'fast-glob';\n\nconst CHECK_FILE_INTERVAL_MS = 1000;\n\nexport class XcodeBuildLogger {\n private loggerError?: Error;\n private flushing: boolean = false;\n private logReaderPromise?: SpawnPromise<SpawnResult>;\n\n constructor(private readonly logger: bunyan, private readonly projectRoot: string) {}\n\n public async watchLogFiles(logsDirectory: string): Promise<void> {\n while (!this.flushing) {\n const logsFilename = await this.getBuildLogFilename(logsDirectory);\n if (logsFilename) {\n void this.startBuildLogger(path.join(logsDirectory, logsFilename));\n return;\n }\n await new Promise((res) => setTimeout(res, CHECK_FILE_INTERVAL_MS));\n }\n }\n\n public async flush(): Promise<void> {\n this.flushing = true;\n if (this.loggerError) {\n throw this.loggerError;\n }\n if (this.logReaderPromise) {\n this.logReaderPromise.child.kill('SIGINT');\n try {\n await this.logReaderPromise;\n } catch {}\n }\n }\n private async getBuildLogFilename(logsDirectory: string): Promise<string | undefined> {\n const paths = await fg('*.log', { cwd: logsDirectory });\n return paths.length >= 1 ? paths[0] : undefined;\n }\n\n private async startBuildLogger(logsPath: string): Promise<void> {\n try {\n const formatter = ExpoRunFormatter.create(this.projectRoot, {\n isDebug: false,\n // TODO: Can provide xcode project name for better parsing\n });\n this.logReaderPromise = spawnAsync('tail', ['-n', '+0', '-f', logsPath], { stdio: 'pipe' });\n assert(this.logReaderPromise.child.stdout, 'stdout is not available');\n this.logReaderPromise.child.stdout.on('data', (data: string) => {\n const lines = formatter.pipe(data.toString());\n for (const line of lines) {\n this.logger.info(line);\n }\n });\n await this.logReaderPromise;\n\n this.logger.info(formatter.getBuildSummary());\n } catch (err: any) {\n if (!this.flushing) {\n this.loggerError = err;\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"xcpretty.js","sourceRoot":"","sources":["../../src/ios/xcpretty.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'assert';\nimport path from 'path';\n\nimport fs from 'fs-extra';\nimport { bunyan } from '@expo/logger';\nimport { ExpoRunFormatter } from '@expo/xcpretty';\nimport spawnAsync, { SpawnPromise, SpawnResult } from '@expo/spawn-async';\nimport fg from 'fast-glob';\n\nconst CHECK_FILE_INTERVAL_MS = 1000;\n\nexport class XcodeBuildLogger {\n private loggerError?: Error;\n private flushing: boolean = false;\n private logReaderPromise?: SpawnPromise<SpawnResult>;\n private logsPath?: string;\n\n constructor(private readonly logger: bunyan, private readonly projectRoot: string) {}\n\n public async watchLogFiles(logsDirectory: string): Promise<void> {\n while (!this.flushing) {\n const logsFilename = await this.getBuildLogFilename(logsDirectory);\n if (logsFilename) {\n this.logsPath = path.join(logsDirectory, logsFilename);\n void this.startBuildLogger(this.logsPath);\n return;\n }\n await new Promise((res) => setTimeout(res, CHECK_FILE_INTERVAL_MS));\n }\n }\n\n public async flush(): Promise<void> {\n this.flushing = true;\n if (this.loggerError) {\n throw this.loggerError;\n }\n if (this.logReaderPromise) {\n this.logReaderPromise.child.kill('SIGINT');\n try {\n await this.logReaderPromise;\n } catch {}\n }\n if (this.logsPath) {\n await this.findBundlerErrors(this.logsPath);\n }\n }\n private async getBuildLogFilename(logsDirectory: string): Promise<string | undefined> {\n const paths = await fg('*.log', { cwd: logsDirectory });\n return paths.length >= 1 ? paths[0] : undefined;\n }\n\n private async startBuildLogger(logsPath: string): Promise<void> {\n try {\n const formatter = ExpoRunFormatter.create(this.projectRoot, {\n isDebug: false,\n // TODO: Can provide xcode project name for better parsing\n });\n this.logReaderPromise = spawnAsync('tail', ['-n', '+0', '-f', logsPath], { stdio: 'pipe' });\n assert(this.logReaderPromise.child.stdout, 'stdout is not available');\n this.logReaderPromise.child.stdout.on('data', (data: string) => {\n const lines = formatter.pipe(data.toString());\n for (const line of lines) {\n this.logger.info(line);\n }\n });\n await this.logReaderPromise;\n\n this.logger.info(formatter.getBuildSummary());\n } catch (err: any) {\n if (!this.flushing) {\n this.loggerError = err;\n }\n }\n }\n\n private async findBundlerErrors(logsPath: string): Promise<void> {\n try {\n const logFile = await fs.readFile(logsPath, 'utf-8');\n const match = logFile.match(\n /Welcome to Metro!\\s* Fast - Scalable - Integrated\\s*([\\s\\S]*)Run CLI with --verbose flag for more details.\\nCommand PhaseScriptExecution failed with a nonzero exit code/\n );\n if (match) {\n this.logger.info(match[1]);\n }\n } catch (err) {\n this.logger.error({ err }, 'Failed to read Xcode logs');\n }\n }\n}\n"]}
@@ -98,6 +98,23 @@ const errorHandlers = [
98
98
  return undefined;
99
99
  },
100
100
  },
101
+ {
102
+ phase: eas_build_job_1.BuildPhase.INSTALL_DEPENDENCIES,
103
+ // example log:
104
+ // yarn install v1.22.17
105
+ // [1/4] Resolving packages...
106
+ // [2/4] Fetching packages...
107
+ // [1/4] Resolving packages...
108
+ // [2/4] Fetching packages...
109
+ // [stderr] error https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, chmod '/Users/expo/Library/Caches/Yarn/v6/npm-jest-util-26.6.2-907535dbe4d5a6cb4c47ac9b926f6af29576cbc1-integrity/node_modules/jest-util/build/pluralize.d.ts'"
110
+ regexp: /\[1\/4\] Resolving packages...\s*\[2\/4\] Fetching packages...\s*\[1\/4\] Resolving packages...\s*\[2\/4\] Fetching packages.../,
111
+ createError: (matchResult) => {
112
+ if (matchResult) {
113
+ return new eas_build_job_1.errors.YarnMultipleInstancesError();
114
+ }
115
+ return undefined;
116
+ },
117
+ },
101
118
  {
102
119
  phase: eas_build_job_1.BuildPhase.INSTALL_DEPENDENCIES,
103
120
  // example log:
@@ -1 +1 @@
1
- {"version":3,"file":"detectUserError.js","sourceRoot":"","sources":["../../src/utils/detectUserError.ts"],"names":[],"mappings":"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","sourcesContent":["import { Job, errors, Platform, BuildPhase, Workflow } from '@expo/eas-build-job';\n\ninterface ErrorContext {\n phase: BuildPhase;\n job: Job;\n}\n\ninterface ErrorHandler {\n regexp: RegExp;\n platform?: Platform;\n phase?: BuildPhase;\n createError: (\n matchResult: RegExpMatchArray,\n errCtx: ErrorContext\n ) => errors.UserError | undefined;\n}\n\nconst errorHandlers: ErrorHandler[] = [\n {\n platform: Platform.IOS,\n phase: BuildPhase.INSTALL_PODS,\n regexp: /requires CocoaPods version/,\n // example log:\n // [!] `React` requires CocoaPods version `>= 1.10.1`, which is not satisfied by your current version, `1.10.0`.\n createError: () => new errors.UnsupportedCocoaPodsVersion(),\n },\n {\n platform: Platform.IOS,\n phase: BuildPhase.RUN_FASTLANE,\n regexp: /Could not find 'bundler' (.*) required by your/,\n // example log:\n // /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/dependency.rb:313:in `to_specs': Could not find 'bundler' (2.2.3) required by your /Users/expo/project/build/ios/Gemfile.lock. (Gem::MissingSpecVersionError)\n createError: () => new errors.UnsupportedBundlerVersion(),\n },\n {\n platform: Platform.ANDROID,\n phase: BuildPhase.RUN_GRADLEW,\n // example log:\n // > Failed to read key keyalias from store \"/build/workingdir/build/generic/keystore-5787e6af-3002-4cb7-8a57-3e73d13313c2.jks\": Invalid keystore format\n regexp: /Invalid keystore format/,\n createError: () => new errors.InvalidKeystoreFormatError(),\n },\n {\n platform: Platform.ANDROID,\n phase: BuildPhase.RUN_GRADLEW,\n // example log:\n // > Failed to read key keyalias from store \"/build/workingdir/build/generic/keystore-286069a8-4bb9-48a6-add9-acf6b58ea06d.jks\": null\n regexp: /Failed to read key[^\\n]+from store/,\n createError: () => new errors.InvalidKeystoreAliasError(),\n },\n {\n platform: Platform.ANDROID,\n phase: BuildPhase.PREBUILD,\n // example log:\n // [15:42:05] Error: Cannot copy google-services.json from /build/workingdir/build/managed/abc to /build/workingdir/build/managed/android/app/google-services.json\n regexp: /Error: Cannot copy google-services\\.json/,\n createError: () => new errors.MissingGoogleServicesJson(),\n },\n {\n platform: Platform.IOS,\n phase: BuildPhase.PREBUILD,\n // example log:\n // [08:44:18] ENOENT: no such file or directory, copyfile '/Users/expo/workingdir/build/managed/abc' -> '/Users/expo/workingdir/build/managed/ios/testapp/GoogleService-Info.plist'\n regexp: /ENOENT: no such file or directory, copyfile .*GoogleService-Info.plist/,\n createError: () => new errors.MissingGoogleServicesPlist(),\n },\n {\n platform: Platform.IOS,\n phase: BuildPhase.INSTALL_PODS,\n // example log:\n // CDN: trunk URL couldn't be downloaded: https://cdn.jsdelivr.net/cocoa/Specs/2/a/e/MultiplatformBleAdapter/0.0.3/MultiplatformBleAdapter.podspec.json Response: 429 429: Too Many Requests\n regexp: /CDN: trunk URL couldn't be downloaded.* Response: 429 429: Too Many Requests/,\n createError: () => {\n // do not report it to user, just send to sentry\n const error = new errors.UnknownError();\n error.innerError = Error('cocoapods: Too Many Requests');\n return error;\n },\n },\n {\n platform: Platform.IOS,\n phase: BuildPhase.INSTALL_PODS,\n // example log:\n // [!] CocoaPods could not find compatible versions for pod \"Firebase/Core\":\n // In snapshot (Podfile.lock):\n // Firebase/Core (= 6.14.0)\n // In Podfile:\n // EXFirebaseCore (from `../node_modules/expo-firebase-core/ios`) was resolved to 3.0.0, which depends on\n // Firebase/Core (= 7.7.0)\n // You have either:\n // * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.\n // * changed the constraints of dependency `Firebase/Core` inside your development pod `EXFirebaseCore`.\n // You should run `pod update Firebase/Core` to apply changes you've made.\n regexp: /CocoaPods could not find compatible versions for pod /,\n createError: (_, { job }) => {\n const usingDefaultCacheConfig = job.cache.key === '' || !job.cache.key;\n return job.type === Workflow.MANAGED\n ? new errors.IncompatiblePodsManagedWorkflowError(usingDefaultCacheConfig)\n : new errors.IncompatiblePodsGenericWorkflowError(usingDefaultCacheConfig);\n },\n },\n {\n phase: BuildPhase.INSTALL_DEPENDENCIES,\n // example log:\n // [stderr] error https://github.com/expo/react-native/archive/sdk-41.0.0.tar.gz: Integrity check failed for \"react-native\" (computed integrity doesn't match our records, got \"sha512-3jHI2YufrJi7eIABRf/DN/I2yOkmIZ0vAyezTz+PAUJiEs4v//5LLojWEU+W53AZsnuaEMcl/4fVy4bd+OuUbA== sha1-o9QuQTXIkc8VozXPaZIullB9a40=\")\n regexp: /Integrity check failed for \"(.*)\" \\(computed integrity doesn't match our records, got/,\n createError: (matchResult: RegExpMatchArray) => {\n if (matchResult.length >= 2) {\n return new errors.YarnLockChecksumError(matchResult[1]);\n }\n return undefined;\n },\n },\n {\n phase: BuildPhase.INSTALL_DEPENDENCIES,\n // example log:\n // [stderr] WARN tarball tarball data for @typescript-eslint/typescript-estree@5.26.0 (sha512-cozo/GbwixVR0sgfHItz3t1yXu521yn71Wj6PlYCFA3WPhy51CUPkifFKfBis91bDclGmAY45hhaAXVjdn4new==) seems to be corrupted. Trying again.\n regexp: /tarball tarball data for ([^ ]*) .* seems to be corrupted. Trying again/,\n createError: (matchResult: RegExpMatchArray) => {\n if (matchResult.length >= 2) {\n return new errors.NpmCorruptedPackageError(matchResult[1]);\n }\n return undefined;\n },\n },\n {\n platform: Platform.ANDROID,\n phase: BuildPhase.RUN_GRADLEW,\n regexp: /.*/,\n createError: () => new errors.UnknownGradleError(),\n },\n {\n platform: Platform.IOS,\n phase: BuildPhase.RUN_FASTLANE,\n regexp: /.*/,\n createError: () => new errors.UnknownFastlaneError(),\n },\n];\n\nexport function detectUserError(\n logLines: string[],\n { job, phase }: ErrorContext\n): errors.UserError | undefined {\n const { platform } = job;\n const logs = logLines.join('\\n');\n const handlers = errorHandlers\n .filter((handler) => handler.platform === platform || !handler.platform)\n .filter((handler) => handler.phase === phase || !handler.phase);\n for (const handler of handlers) {\n const match = logs.match(handler.regexp);\n if (match) {\n return handler.createError(match, { job, phase });\n }\n }\n return undefined;\n}\n"]}
1
+ {"version":3,"file":"detectUserError.js","sourceRoot":"","sources":["../../src/utils/detectUserError.ts"],"names":[],"mappings":"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","sourcesContent":["import { Job, errors, Platform, BuildPhase, Workflow } from '@expo/eas-build-job';\n\ninterface ErrorContext {\n phase: BuildPhase;\n job: Job;\n}\n\ninterface ErrorHandler {\n regexp: RegExp;\n platform?: Platform;\n phase?: BuildPhase;\n createError: (\n matchResult: RegExpMatchArray,\n errCtx: ErrorContext\n ) => errors.UserError | undefined;\n}\n\nconst errorHandlers: ErrorHandler[] = [\n {\n platform: Platform.IOS,\n phase: BuildPhase.INSTALL_PODS,\n regexp: /requires CocoaPods version/,\n // example log:\n // [!] `React` requires CocoaPods version `>= 1.10.1`, which is not satisfied by your current version, `1.10.0`.\n createError: () => new errors.UnsupportedCocoaPodsVersion(),\n },\n {\n platform: Platform.IOS,\n phase: BuildPhase.RUN_FASTLANE,\n regexp: /Could not find 'bundler' (.*) required by your/,\n // example log:\n // /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/dependency.rb:313:in `to_specs': Could not find 'bundler' (2.2.3) required by your /Users/expo/project/build/ios/Gemfile.lock. (Gem::MissingSpecVersionError)\n createError: () => new errors.UnsupportedBundlerVersion(),\n },\n {\n platform: Platform.ANDROID,\n phase: BuildPhase.RUN_GRADLEW,\n // example log:\n // > Failed to read key keyalias from store \"/build/workingdir/build/generic/keystore-5787e6af-3002-4cb7-8a57-3e73d13313c2.jks\": Invalid keystore format\n regexp: /Invalid keystore format/,\n createError: () => new errors.InvalidKeystoreFormatError(),\n },\n {\n platform: Platform.ANDROID,\n phase: BuildPhase.RUN_GRADLEW,\n // example log:\n // > Failed to read key keyalias from store \"/build/workingdir/build/generic/keystore-286069a8-4bb9-48a6-add9-acf6b58ea06d.jks\": null\n regexp: /Failed to read key[^\\n]+from store/,\n createError: () => new errors.InvalidKeystoreAliasError(),\n },\n {\n platform: Platform.ANDROID,\n phase: BuildPhase.PREBUILD,\n // example log:\n // [15:42:05] Error: Cannot copy google-services.json from /build/workingdir/build/managed/abc to /build/workingdir/build/managed/android/app/google-services.json\n regexp: /Error: Cannot copy google-services\\.json/,\n createError: () => new errors.MissingGoogleServicesJson(),\n },\n {\n platform: Platform.IOS,\n phase: BuildPhase.PREBUILD,\n // example log:\n // [08:44:18] ENOENT: no such file or directory, copyfile '/Users/expo/workingdir/build/managed/abc' -> '/Users/expo/workingdir/build/managed/ios/testapp/GoogleService-Info.plist'\n regexp: /ENOENT: no such file or directory, copyfile .*GoogleService-Info.plist/,\n createError: () => new errors.MissingGoogleServicesPlist(),\n },\n {\n platform: Platform.IOS,\n phase: BuildPhase.INSTALL_PODS,\n // example log:\n // CDN: trunk URL couldn't be downloaded: https://cdn.jsdelivr.net/cocoa/Specs/2/a/e/MultiplatformBleAdapter/0.0.3/MultiplatformBleAdapter.podspec.json Response: 429 429: Too Many Requests\n regexp: /CDN: trunk URL couldn't be downloaded.* Response: 429 429: Too Many Requests/,\n createError: () => {\n // do not report it to user, just send to sentry\n const error = new errors.UnknownError();\n error.innerError = Error('cocoapods: Too Many Requests');\n return error;\n },\n },\n {\n platform: Platform.IOS,\n phase: BuildPhase.INSTALL_PODS,\n // example log:\n // [!] CocoaPods could not find compatible versions for pod \"Firebase/Core\":\n // In snapshot (Podfile.lock):\n // Firebase/Core (= 6.14.0)\n // In Podfile:\n // EXFirebaseCore (from `../node_modules/expo-firebase-core/ios`) was resolved to 3.0.0, which depends on\n // Firebase/Core (= 7.7.0)\n // You have either:\n // * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.\n // * changed the constraints of dependency `Firebase/Core` inside your development pod `EXFirebaseCore`.\n // You should run `pod update Firebase/Core` to apply changes you've made.\n regexp: /CocoaPods could not find compatible versions for pod /,\n createError: (_, { job }) => {\n const usingDefaultCacheConfig = job.cache.key === '' || !job.cache.key;\n return job.type === Workflow.MANAGED\n ? new errors.IncompatiblePodsManagedWorkflowError(usingDefaultCacheConfig)\n : new errors.IncompatiblePodsGenericWorkflowError(usingDefaultCacheConfig);\n },\n },\n {\n phase: BuildPhase.INSTALL_DEPENDENCIES,\n // example log:\n // [stderr] error https://github.com/expo/react-native/archive/sdk-41.0.0.tar.gz: Integrity check failed for \"react-native\" (computed integrity doesn't match our records, got \"sha512-3jHI2YufrJi7eIABRf/DN/I2yOkmIZ0vAyezTz+PAUJiEs4v//5LLojWEU+W53AZsnuaEMcl/4fVy4bd+OuUbA== sha1-o9QuQTXIkc8VozXPaZIullB9a40=\")\n regexp: /Integrity check failed for \"(.*)\" \\(computed integrity doesn't match our records, got/,\n createError: (matchResult: RegExpMatchArray) => {\n if (matchResult.length >= 2) {\n return new errors.YarnLockChecksumError(matchResult[1]);\n }\n return undefined;\n },\n },\n {\n phase: BuildPhase.INSTALL_DEPENDENCIES,\n // example log:\n // yarn install v1.22.17\n // [1/4] Resolving packages...\n // [2/4] Fetching packages...\n // [1/4] Resolving packages...\n // [2/4] Fetching packages...\n // [stderr] error https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: \"ENOENT: no such file or directory, chmod '/Users/expo/Library/Caches/Yarn/v6/npm-jest-util-26.6.2-907535dbe4d5a6cb4c47ac9b926f6af29576cbc1-integrity/node_modules/jest-util/build/pluralize.d.ts'\"\n regexp: /\\[1\\/4\\] Resolving packages...\\s*\\[2\\/4\\] Fetching packages...\\s*\\[1\\/4\\] Resolving packages...\\s*\\[2\\/4\\] Fetching packages.../,\n createError: (matchResult: RegExpMatchArray) => {\n if (matchResult) {\n return new errors.YarnMultipleInstancesError();\n }\n return undefined;\n },\n },\n {\n phase: BuildPhase.INSTALL_DEPENDENCIES,\n // example log:\n // [stderr] WARN tarball tarball data for @typescript-eslint/typescript-estree@5.26.0 (sha512-cozo/GbwixVR0sgfHItz3t1yXu521yn71Wj6PlYCFA3WPhy51CUPkifFKfBis91bDclGmAY45hhaAXVjdn4new==) seems to be corrupted. Trying again.\n regexp: /tarball tarball data for ([^ ]*) .* seems to be corrupted. Trying again/,\n createError: (matchResult: RegExpMatchArray) => {\n if (matchResult.length >= 2) {\n return new errors.NpmCorruptedPackageError(matchResult[1]);\n }\n return undefined;\n },\n },\n {\n platform: Platform.ANDROID,\n phase: BuildPhase.RUN_GRADLEW,\n regexp: /.*/,\n createError: () => new errors.UnknownGradleError(),\n },\n {\n platform: Platform.IOS,\n phase: BuildPhase.RUN_FASTLANE,\n regexp: /.*/,\n createError: () => new errors.UnknownFastlaneError(),\n },\n];\n\nexport function detectUserError(\n logLines: string[],\n { job, phase }: ErrorContext\n): errors.UserError | undefined {\n const { platform } = job;\n const logs = logLines.join('\\n');\n const handlers = errorHandlers\n .filter((handler) => handler.platform === platform || !handler.platform)\n .filter((handler) => handler.phase === phase || !handler.phase);\n for (const handler of handlers) {\n const match = logs.match(handler.regexp);\n if (match) {\n return handler.createError(match, { job, phase });\n }\n }\n return undefined;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/build-tools",
3
- "version": "0.1.128",
3
+ "version": "0.1.129",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [
@@ -22,13 +22,13 @@
22
22
  "@expo/config": "6.0.24",
23
23
  "@expo/config-plugins": "4.1.5",
24
24
  "@expo/downloader": "0.0.19",
25
- "@expo/eas-build-job": "0.2.76",
25
+ "@expo/eas-build-job": "0.2.77",
26
26
  "@expo/logger": "0.0.22",
27
27
  "@expo/package-manager": "0.0.54",
28
28
  "@expo/plist": "^0.0.11",
29
29
  "@expo/template-file": "0.1.21",
30
30
  "@expo/turtle-spawn": "0.0.23",
31
- "@expo/xcpretty": "^4.1.1",
31
+ "@expo/xcpretty": "4.1.3",
32
32
  "fast-glob": "^3.2.5",
33
33
  "fs-extra": "^10.0.1",
34
34
  "node-forge": "^1.2.1",