@expo/build-tools 1.0.205 → 1.0.206
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/android/credentials.js +1 -2
- package/dist/android/credentials.js.map +1 -1
- package/dist/android/expoUpdates.js +5 -5
- package/dist/android/expoUpdates.js.map +1 -1
- package/dist/android/gradle.d.ts +0 -1
- package/dist/android/gradle.js +3 -4
- package/dist/android/gradle.js.map +1 -1
- package/dist/android/gradleConfig.js +1 -2
- package/dist/android/gradleConfig.js.map +1 -1
- package/dist/buildErrors/detectError.js +1 -2
- package/dist/buildErrors/detectError.js.map +1 -1
- package/dist/builders/android.js +1 -1
- package/dist/builders/android.js.map +1 -1
- package/dist/builders/common.js +1 -2
- package/dist/builders/common.js.map +1 -1
- package/dist/builders/custom.js +1 -2
- package/dist/builders/custom.js.map +1 -1
- package/dist/builders/ios.js +1 -1
- package/dist/builders/ios.js.map +1 -1
- package/dist/common/eagerBundle.d.ts +0 -1
- package/dist/common/eagerBundle.js +2 -3
- package/dist/common/eagerBundle.js.map +1 -1
- package/dist/common/easBuildInternal.d.ts +0 -1
- package/dist/common/easBuildInternal.js +2 -3
- package/dist/common/easBuildInternal.js.map +1 -1
- package/dist/common/git.d.ts +0 -1
- package/dist/common/git.js +1 -2
- package/dist/common/git.js.map +1 -1
- package/dist/common/installDependencies.js +2 -3
- package/dist/common/installDependencies.js.map +1 -1
- package/dist/common/prebuild.d.ts +0 -1
- package/dist/common/prebuild.js +1 -2
- package/dist/common/prebuild.js.map +1 -1
- package/dist/common/projectSources.js +2 -3
- package/dist/common/projectSources.js.map +1 -1
- package/dist/common/setup.js +1 -2
- package/dist/common/setup.js.map +1 -1
- package/dist/context.d.ts +0 -1
- package/dist/customBuildContext.d.ts +0 -1
- package/dist/gcs/LoggerStream.d.ts +0 -2
- package/dist/gcs/client.d.ts +0 -1
- package/dist/gcs/retry.js +1 -2
- package/dist/gcs/retry.js.map +1 -1
- package/dist/generic.js +1 -2
- package/dist/generic.js.map +1 -1
- package/dist/ios/configure.js +2 -3
- package/dist/ios/configure.js.map +1 -1
- package/dist/ios/credentials/distributionCertificate.js +2 -3
- package/dist/ios/credentials/distributionCertificate.js.map +1 -1
- package/dist/ios/credentials/provisioningProfile.d.ts +0 -1
- package/dist/ios/expoUpdates.js +5 -5
- package/dist/ios/expoUpdates.js.map +1 -1
- package/dist/ios/fastfile.js +1 -2
- package/dist/ios/fastfile.js.map +1 -1
- package/dist/ios/fastlane.d.ts +0 -1
- package/dist/ios/fastlane.js +3 -4
- package/dist/ios/fastlane.js.map +1 -1
- package/dist/ios/gymfile.js +2 -3
- package/dist/ios/gymfile.js.map +1 -1
- package/dist/ios/pod.js +1 -2
- package/dist/ios/pod.js.map +1 -1
- package/dist/ios/resign.js +1 -2
- package/dist/ios/resign.js.map +1 -1
- package/dist/ios/resolve.js +3 -4
- package/dist/ios/resolve.js.map +1 -1
- package/dist/ios/tvos.js +1 -2
- package/dist/ios/tvos.js.map +1 -1
- package/dist/ios/xcodeBuildLogs.d.ts +0 -1
- package/dist/ios/xcodeBuildLogs.js +2 -3
- package/dist/ios/xcodeBuildLogs.js.map +1 -1
- package/dist/ios/xcodeEnv.js +1 -2
- package/dist/ios/xcodeEnv.js.map +1 -1
- package/dist/ios/xcpretty.d.ts +0 -1
- package/dist/steps/easFunctionGroups.js +1 -2
- package/dist/steps/easFunctionGroups.js.map +1 -1
- package/dist/steps/easFunctions.js +1 -2
- package/dist/steps/easFunctions.js.map +1 -1
- package/dist/steps/functionGroups/build.js +1 -2
- package/dist/steps/functionGroups/build.js.map +1 -1
- package/dist/steps/functionGroups/maestroTest.js +1 -2
- package/dist/steps/functionGroups/maestroTest.js.map +1 -1
- package/dist/steps/functions/calculateEASUpdateRuntimeVersion.js +1 -2
- package/dist/steps/functions/calculateEASUpdateRuntimeVersion.js.map +1 -1
- package/dist/steps/functions/checkout.js +1 -2
- package/dist/steps/functions/checkout.js.map +1 -1
- package/dist/steps/functions/configureAndroidVersion.js +1 -2
- package/dist/steps/functions/configureAndroidVersion.js.map +1 -1
- package/dist/steps/functions/configureEASUpdateIfInstalled.js +1 -2
- package/dist/steps/functions/configureEASUpdateIfInstalled.js.map +1 -1
- package/dist/steps/functions/configureIosCredentials.js +1 -2
- package/dist/steps/functions/configureIosCredentials.js.map +1 -1
- package/dist/steps/functions/configureIosVersion.js +1 -2
- package/dist/steps/functions/configureIosVersion.js.map +1 -1
- package/dist/steps/functions/createSubmissionEntity.js +1 -2
- package/dist/steps/functions/createSubmissionEntity.js.map +1 -1
- package/dist/steps/functions/downloadArtifact.d.ts +0 -1
- package/dist/steps/functions/downloadArtifact.js +2 -3
- package/dist/steps/functions/downloadArtifact.js.map +1 -1
- package/dist/steps/functions/downloadBuild.d.ts +0 -1
- package/dist/steps/functions/downloadBuild.js +2 -3
- package/dist/steps/functions/downloadBuild.js.map +1 -1
- package/dist/steps/functions/eagerBundle.js +1 -2
- package/dist/steps/functions/eagerBundle.js.map +1 -1
- package/dist/steps/functions/findAndUploadBuildArtifacts.js +1 -2
- package/dist/steps/functions/findAndUploadBuildArtifacts.js.map +1 -1
- package/dist/steps/functions/generateGymfileFromTemplate.js +1 -2
- package/dist/steps/functions/generateGymfileFromTemplate.js.map +1 -1
- package/dist/steps/functions/getCredentialsForBuildTriggeredByGitHubIntegration.js +1 -2
- package/dist/steps/functions/getCredentialsForBuildTriggeredByGitHubIntegration.js.map +1 -1
- package/dist/steps/functions/injectAndroidCredentials.js +1 -2
- package/dist/steps/functions/injectAndroidCredentials.js.map +1 -1
- package/dist/steps/functions/installMaestro.js +14 -16
- package/dist/steps/functions/installMaestro.js.map +1 -1
- package/dist/steps/functions/installNodeModules.js +2 -3
- package/dist/steps/functions/installNodeModules.js.map +1 -1
- package/dist/steps/functions/installPods.js +1 -2
- package/dist/steps/functions/installPods.js.map +1 -1
- package/dist/steps/functions/internalMaestroTest.js +2 -3
- package/dist/steps/functions/internalMaestroTest.js.map +1 -1
- package/dist/steps/functions/prebuild.js +1 -2
- package/dist/steps/functions/prebuild.js.map +1 -1
- package/dist/steps/functions/repack.d.ts +0 -1
- package/dist/steps/functions/repack.js +3 -4
- package/dist/steps/functions/repack.js.map +1 -1
- package/dist/steps/functions/resolveAppleTeamIdFromCredentials.js +1 -2
- package/dist/steps/functions/resolveAppleTeamIdFromCredentials.js.map +1 -1
- package/dist/steps/functions/resolveBuildConfig.d.ts +0 -1
- package/dist/steps/functions/resolveBuildConfig.js +2 -3
- package/dist/steps/functions/resolveBuildConfig.js.map +1 -1
- package/dist/steps/functions/runFastlane.js +1 -2
- package/dist/steps/functions/runFastlane.js.map +1 -1
- package/dist/steps/functions/runGradle.js +1 -2
- package/dist/steps/functions/runGradle.js.map +1 -1
- package/dist/steps/functions/sendSlackMessage.js +1 -2
- package/dist/steps/functions/sendSlackMessage.js.map +1 -1
- package/dist/steps/functions/startAndroidEmulator.js +1 -2
- package/dist/steps/functions/startAndroidEmulator.js.map +1 -1
- package/dist/steps/functions/startIosSimulator.js +1 -2
- package/dist/steps/functions/startIosSimulator.js.map +1 -1
- package/dist/steps/functions/uploadArtifact.js +1 -2
- package/dist/steps/functions/uploadArtifact.js.map +1 -1
- package/dist/steps/functions/useNpmToken.js +1 -2
- package/dist/steps/functions/useNpmToken.js.map +1 -1
- package/dist/steps/utils/android/expoUpdates.js +4 -4
- package/dist/steps/utils/android/expoUpdates.js.map +1 -1
- package/dist/steps/utils/android/gradle.d.ts +0 -1
- package/dist/steps/utils/android/gradle.js +2 -3
- package/dist/steps/utils/android/gradle.js.map +1 -1
- package/dist/steps/utils/android/gradleConfig.d.ts +0 -1
- package/dist/steps/utils/android/gradleConfig.js +2 -3
- package/dist/steps/utils/android/gradleConfig.js.map +1 -1
- package/dist/steps/utils/expoUpdates.d.ts +0 -1
- package/dist/steps/utils/expoUpdates.js +2 -3
- package/dist/steps/utils/expoUpdates.js.map +1 -1
- package/dist/steps/utils/ios/configure.d.ts +0 -1
- package/dist/steps/utils/ios/configure.js +3 -4
- package/dist/steps/utils/ios/configure.js.map +1 -1
- package/dist/steps/utils/ios/credentials/distributionCertificate.js +2 -3
- package/dist/steps/utils/ios/credentials/distributionCertificate.js.map +1 -1
- package/dist/steps/utils/ios/credentials/keychain.d.ts +0 -1
- package/dist/steps/utils/ios/credentials/manager.d.ts +0 -1
- package/dist/steps/utils/ios/credentials/provisioningProfile.d.ts +0 -2
- package/dist/steps/utils/ios/expoUpdates.js +4 -4
- package/dist/steps/utils/ios/expoUpdates.js.map +1 -1
- package/dist/steps/utils/ios/fastlane.d.ts +0 -1
- package/dist/steps/utils/ios/fastlane.js +2 -3
- package/dist/steps/utils/ios/fastlane.js.map +1 -1
- package/dist/steps/utils/ios/resolve.js +2 -3
- package/dist/steps/utils/ios/resolve.js.map +1 -1
- package/dist/steps/utils/ios/tvos.js +1 -2
- package/dist/steps/utils/ios/tvos.js.map +1 -1
- package/dist/steps/utils/ios/xcpretty.d.ts +0 -1
- package/dist/utils/AndroidEmulatorUtils.d.ts +0 -2
- package/dist/utils/IosSimulatorUtils.d.ts +0 -1
- package/dist/utils/appConfig.d.ts +0 -1
- package/dist/utils/appConfig.js +1 -2
- package/dist/utils/appConfig.js.map +1 -1
- package/dist/utils/artifacts.d.ts +0 -1
- package/dist/utils/artifacts.js +5 -5
- package/dist/utils/artifacts.js.map +1 -1
- package/dist/utils/diffFingerprintsAsync.d.ts +0 -1
- package/dist/utils/diffFingerprintsAsync.js +1 -2
- package/dist/utils/diffFingerprintsAsync.js.map +1 -1
- package/dist/utils/environmentSecrets.js +1 -2
- package/dist/utils/environmentSecrets.js.map +1 -1
- package/dist/utils/expoFingerprintCli.js +3 -3
- package/dist/utils/expoFingerprintCli.js.map +1 -1
- package/dist/utils/expoUpdates.d.ts +0 -1
- package/dist/utils/expoUpdates.js +9 -10
- package/dist/utils/expoUpdates.js.map +1 -1
- package/dist/utils/expoUpdatesCli.js +2 -2
- package/dist/utils/expoUpdatesCli.js.map +1 -1
- package/dist/utils/files.js +2 -3
- package/dist/utils/files.js.map +1 -1
- package/dist/utils/findMaestroPathsFlowsToExecuteAsync.d.ts +0 -1
- package/dist/utils/findMaestroPathsFlowsToExecuteAsync.js +1 -2
- package/dist/utils/findMaestroPathsFlowsToExecuteAsync.js.map +1 -1
- package/dist/utils/fingerprint.js +1 -2
- package/dist/utils/fingerprint.js.map +1 -1
- package/dist/utils/getExpoUpdatesPackageVersionIfInstalledAsync.d.ts +0 -1
- package/dist/utils/getExpoUpdatesPackageVersionIfInstalledAsync.js +1 -1
- package/dist/utils/getExpoUpdatesPackageVersionIfInstalledAsync.js.map +1 -1
- package/dist/utils/hooks.js +2 -2
- package/dist/utils/hooks.js.map +1 -1
- package/dist/utils/npmrc.d.ts +0 -1
- package/dist/utils/npmrc.js +1 -2
- package/dist/utils/npmrc.js.map +1 -1
- package/dist/utils/outputs.d.ts +0 -1
- package/dist/utils/outputs.js +2 -3
- package/dist/utils/outputs.js.map +1 -1
- package/dist/utils/packageManager.js +6 -6
- package/dist/utils/packageManager.js.map +1 -1
- package/dist/utils/prepareBuildExecutable.js +1 -2
- package/dist/utils/prepareBuildExecutable.js.map +1 -1
- package/dist/utils/processes.js +1 -2
- package/dist/utils/processes.js.map +1 -1
- package/dist/utils/project.js +3 -4
- package/dist/utils/project.js.map +1 -1
- package/dist/utils/promiseRetryWithCondition.js +1 -2
- package/dist/utils/promiseRetryWithCondition.js.map +1 -1
- package/dist/utils/resolveRuntimeVersionAsync.d.ts +0 -1
- package/dist/utils/resolveRuntimeVersionAsync.js +1 -2
- package/dist/utils/resolveRuntimeVersionAsync.js.map +1 -1
- package/dist/utils/retry.d.ts +0 -1
- package/dist/utils/retry.js +2 -3
- package/dist/utils/retry.js.map +1 -1
- package/dist/utils/retryOnDNSFailure.js +2 -3
- package/dist/utils/retryOnDNSFailure.js.map +1 -1
- package/dist/utils/turtleFetch.d.ts +0 -1
- package/dist/utils/turtleFetch.js +2 -2
- package/dist/utils/turtleFetch.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expoUpdates.js","sourceRoot":"","sources":["../../src/utils/expoUpdates.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'assert';\nimport os from 'os';\nimport path from 'path';\n\nimport { v4 as uuidv4 } from 'uuid';\nimport { Platform, Job, BuildJob, Workflow, FingerprintSourceType } from '@expo/eas-build-job';\nimport semver from 'semver';\nimport { ExpoConfig } from '@expo/config';\nimport { bunyan } from '@expo/logger';\nimport { BuildStepEnv } from '@expo/steps';\nimport fetch from 'node-fetch';\nimport fs from 'fs-extra';\n\nimport {\n androidSetRuntimeVersionNativelyAsync,\n androidSetChannelNativelyAsync,\n androidGetNativelyDefinedRuntimeVersionAsync,\n androidGetNativelyDefinedChannelAsync,\n} from '../android/expoUpdates';\nimport {\n iosSetRuntimeVersionNativelyAsync,\n iosSetChannelNativelyAsync,\n iosGetNativelyDefinedRuntimeVersionAsync,\n iosGetNativelyDefinedChannelAsync,\n} from '../ios/expoUpdates';\nimport { BuildContext } from '../context';\n\nimport getExpoUpdatesPackageVersionIfInstalledAsync from './getExpoUpdatesPackageVersionIfInstalledAsync';\nimport { resolveRuntimeVersionAsync } from './resolveRuntimeVersionAsync';\nimport { diffFingerprintsAsync } from './diffFingerprintsAsync';\nimport { stringifyFingerprintDiff } from './fingerprint';\n\nexport async function setRuntimeVersionNativelyAsync(\n ctx: BuildContext<Job>,\n runtimeVersion: string\n): Promise<void> {\n switch (ctx.job.platform) {\n case Platform.ANDROID: {\n await androidSetRuntimeVersionNativelyAsync(ctx, runtimeVersion);\n return;\n }\n case Platform.IOS: {\n await iosSetRuntimeVersionNativelyAsync(ctx, runtimeVersion);\n return;\n }\n default:\n throw new Error(`Platform is not supported.`);\n }\n}\n\n/**\n * Used for when Expo Updates is pointed at an EAS server.\n */\nexport async function setChannelNativelyAsync(ctx: BuildContext<BuildJob>): Promise<void> {\n assert(ctx.job.updates?.channel, 'updates.channel must be defined');\n const newUpdateRequestHeaders: Record<string, string> = {\n 'expo-channel-name': ctx.job.updates.channel,\n };\n\n const configFile = ctx.job.platform === Platform.ANDROID ? 'AndroidManifest.xml' : 'Expo.plist';\n ctx.logger.info(\n `Setting the update request headers in '${configFile}' to '${JSON.stringify(\n newUpdateRequestHeaders\n )}'`\n );\n\n switch (ctx.job.platform) {\n case Platform.ANDROID: {\n await androidSetChannelNativelyAsync(ctx);\n return;\n }\n case Platform.IOS: {\n await iosSetChannelNativelyAsync(ctx);\n return;\n }\n default:\n throw new Error(`Platform is not supported.`);\n }\n}\n\nexport async function configureEASExpoUpdatesAsync(ctx: BuildContext<BuildJob>): Promise<void> {\n await setChannelNativelyAsync(ctx);\n}\n\ntype ResolvedRuntime = {\n resolvedRuntimeVersion: string | null;\n resolvedFingerprintSources?: object[] | null;\n};\n\nexport async function configureExpoUpdatesIfInstalledAsync(\n ctx: BuildContext<BuildJob>,\n resolvedRuntime: ResolvedRuntime\n): Promise<void> {\n const expoUpdatesPackageVersion = await getExpoUpdatesPackageVersionIfInstalledAsync(\n ctx.getReactNativeProjectDirectory(),\n ctx.logger\n );\n if (expoUpdatesPackageVersion === null) {\n return;\n }\n\n const appConfigRuntimeVersion =\n ctx.job.version?.runtimeVersion ?? resolvedRuntime.resolvedRuntimeVersion;\n\n if (ctx.metadata?.runtimeVersion && ctx.metadata.runtimeVersion !== appConfigRuntimeVersion) {\n ctx.logger.warn(\n `\nRuntime version mismatch:\n- Runtime version calculated on local machine: ${ctx.metadata.runtimeVersion}\n- Runtime version calculated on EAS: ${appConfigRuntimeVersion}\n\nThis may be due to one or more factors:\n- Differing result of conditional app config (app.config.js) evaluation for runtime version resolution.\n- Differing fingerprint when using fingerprint runtime version policy. If applicable, see fingerprint diff below.\n\nThis would cause any updates published on the local machine to not be compatible with this build.\n`\n );\n await logDiffFingerprints({ resolvedRuntime, ctx });\n throw new Error(\n 'Runtime version calculated on local machine not equal to runtime version calculated during build.'\n );\n }\n\n if (isEASUpdateConfigured(ctx)) {\n if (ctx.job.updates?.channel !== undefined) {\n await configureEASExpoUpdatesAsync(ctx);\n } else {\n const channel = await getChannelAsync(ctx);\n const isDevelopmentClient = ctx.job.developmentClient ?? false;\n\n if (channel !== null) {\n const configFile =\n ctx.job.platform === Platform.ANDROID ? 'AndroidManifest.xml' : 'Expo.plist';\n ctx.logger.info(`The channel name for EAS Update in ${configFile} is set to \"${channel}\"`);\n } else if (isDevelopmentClient) {\n // NO-OP: Development clients don't need to have a channel set\n } else {\n const easUpdateUrl = ctx.appConfig.updates?.url ?? null;\n const jobProfile = ctx.job.buildProfile ?? null;\n ctx.logger.warn(\n `This build has an invalid EAS Update configuration: update.url is set to \"${easUpdateUrl}\" in app config, but a channel is not specified${\n jobProfile ? '' : ` for the current build profile \"${jobProfile}\" in eas.json`\n }.`\n );\n ctx.logger.warn(`- No channel will be set and EAS Update will be disabled for the build.`);\n ctx.logger.warn(\n `- Run \\`eas update:configure\\` to set your channel in eas.json. For more details, see https://docs.expo.dev/eas-update/getting-started/#configure-your-project`\n );\n\n ctx.markBuildPhaseHasWarnings();\n }\n }\n }\n\n if (ctx.job.version?.runtimeVersion) {\n ctx.logger.info('Updating runtimeVersion in Expo.plist');\n await setRuntimeVersionNativelyAsync(ctx, ctx.job.version.runtimeVersion);\n }\n}\n\nexport async function resolveRuntimeVersionForExpoUpdatesIfConfiguredAsync({\n cwd,\n appConfig,\n platform,\n workflow,\n logger,\n env,\n}: {\n cwd: string;\n appConfig: ExpoConfig;\n platform: Platform;\n workflow: Workflow;\n logger: bunyan;\n env: BuildStepEnv;\n}): Promise<{\n runtimeVersion: string | null;\n fingerprintSources: object[] | null;\n} | null> {\n const expoUpdatesPackageVersion = await getExpoUpdatesPackageVersionIfInstalledAsync(cwd, logger);\n if (expoUpdatesPackageVersion === null) {\n return null;\n }\n\n const resolvedRuntimeVersion = await resolveRuntimeVersionAsync({\n projectDir: cwd,\n exp: appConfig,\n platform,\n workflow,\n logger,\n expoUpdatesPackageVersion,\n env,\n });\n\n logger.info(`Resolved runtime version: ${resolvedRuntimeVersion?.runtimeVersion}`);\n return resolvedRuntimeVersion;\n}\n\nexport async function getChannelAsync(ctx: BuildContext<Job>): Promise<string | null> {\n switch (ctx.job.platform) {\n case Platform.ANDROID: {\n return await androidGetNativelyDefinedChannelAsync(ctx);\n }\n case Platform.IOS: {\n return await iosGetNativelyDefinedChannelAsync(ctx);\n }\n default:\n throw new Error(`Platform is not supported.`);\n }\n}\n\nexport async function getRuntimeVersionAsync(ctx: BuildContext<Job>): Promise<string | null> {\n switch (ctx.job.platform) {\n case Platform.ANDROID: {\n return await androidGetNativelyDefinedRuntimeVersionAsync(ctx);\n }\n case Platform.IOS: {\n return await iosGetNativelyDefinedRuntimeVersionAsync(ctx);\n }\n default:\n throw new Error(`Platform is not supported.`);\n }\n}\n\nexport function isEASUpdateConfigured(ctx: BuildContext<Job>): boolean {\n const rawUrl = ctx.appConfig.updates?.url;\n if (!rawUrl) {\n return false;\n }\n try {\n const url = new URL(rawUrl);\n return ['u.expo.dev', 'staging-u.expo.dev'].includes(url.hostname);\n } catch (err) {\n ctx.logger.error({ err }, `Cannot parse expo.updates.url = ${rawUrl} as URL`);\n ctx.logger.error(`Assuming EAS Update is not configured`);\n return false;\n }\n}\n\nexport function isModernExpoUpdatesCLIWithRuntimeVersionCommandSupported(\n expoUpdatesPackageVersion: string\n): boolean {\n if (expoUpdatesPackageVersion.includes('canary')) {\n return true;\n }\n\n // Anything SDK 51 or greater uses the expo-updates CLI\n return semver.gte(expoUpdatesPackageVersion, '0.25.4');\n}\n\nasync function logDiffFingerprints({\n resolvedRuntime,\n ctx,\n}: {\n resolvedRuntime: ResolvedRuntime;\n ctx: BuildContext<BuildJob>;\n}): Promise<void> {\n const { resolvedRuntimeVersion, resolvedFingerprintSources } = resolvedRuntime;\n if (ctx.metadata?.fingerprintSource && resolvedFingerprintSources && resolvedRuntimeVersion) {\n try {\n const fingerprintSource = ctx.metadata.fingerprintSource;\n\n let localFingerprintFile: string | null = null;\n\n if (fingerprintSource.type === FingerprintSourceType.URL) {\n const result = await fetch(fingerprintSource.url);\n const localFingerprintJSON = await result.json();\n localFingerprintFile = path.join(os.tmpdir(), `eas-build-${uuidv4()}-local-fingerprint`);\n await fs.writeFile(localFingerprintFile, JSON.stringify(localFingerprintJSON));\n } else if (fingerprintSource.type === FingerprintSourceType.PATH) {\n localFingerprintFile = fingerprintSource.path;\n } else {\n ctx.logger.warn(`Invalid fingerprint source type: ${fingerprintSource.type}`);\n }\n\n if (localFingerprintFile) {\n const easFingerprint = {\n hash: resolvedRuntimeVersion,\n sources: resolvedFingerprintSources,\n };\n const easFingerprintFile = path.join(os.tmpdir(), `eas-build-${uuidv4()}-eas-fingerprint`);\n await fs.writeFile(easFingerprintFile, JSON.stringify(easFingerprint));\n\n const changesJSONString = await diffFingerprintsAsync(\n ctx.getReactNativeProjectDirectory(),\n localFingerprintFile,\n easFingerprintFile,\n { env: ctx.env, logger: ctx.logger }\n );\n if (changesJSONString) {\n const changes = JSON.parse(changesJSONString);\n if (changes.length) {\n ctx.logger.warn('Difference between local and EAS fingerprints:');\n ctx.logger.warn(stringifyFingerprintDiff(changes));\n }\n }\n }\n } catch (error) {\n ctx.logger.warn('Failed to compare fingerprints', error);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"expoUpdates.js","sourceRoot":"","sources":["../../src/utils/expoUpdates.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'assert';\nimport os from 'os';\nimport path from 'path';\n\nimport { v4 as uuidv4 } from 'uuid';\nimport { Platform, Job, BuildJob, Workflow, FingerprintSourceType } from '@expo/eas-build-job';\nimport semver from 'semver';\nimport { ExpoConfig } from '@expo/config';\nimport { bunyan } from '@expo/logger';\nimport { BuildStepEnv } from '@expo/steps';\nimport fetch from 'node-fetch';\nimport fs from 'fs-extra';\n\nimport {\n androidSetRuntimeVersionNativelyAsync,\n androidSetChannelNativelyAsync,\n androidGetNativelyDefinedRuntimeVersionAsync,\n androidGetNativelyDefinedChannelAsync,\n} from '../android/expoUpdates';\nimport {\n iosSetRuntimeVersionNativelyAsync,\n iosSetChannelNativelyAsync,\n iosGetNativelyDefinedRuntimeVersionAsync,\n iosGetNativelyDefinedChannelAsync,\n} from '../ios/expoUpdates';\nimport { BuildContext } from '../context';\n\nimport getExpoUpdatesPackageVersionIfInstalledAsync from './getExpoUpdatesPackageVersionIfInstalledAsync';\nimport { resolveRuntimeVersionAsync } from './resolveRuntimeVersionAsync';\nimport { diffFingerprintsAsync } from './diffFingerprintsAsync';\nimport { stringifyFingerprintDiff } from './fingerprint';\n\nexport async function setRuntimeVersionNativelyAsync(\n ctx: BuildContext<Job>,\n runtimeVersion: string\n): Promise<void> {\n switch (ctx.job.platform) {\n case Platform.ANDROID: {\n await androidSetRuntimeVersionNativelyAsync(ctx, runtimeVersion);\n return;\n }\n case Platform.IOS: {\n await iosSetRuntimeVersionNativelyAsync(ctx, runtimeVersion);\n return;\n }\n default:\n throw new Error(`Platform is not supported.`);\n }\n}\n\n/**\n * Used for when Expo Updates is pointed at an EAS server.\n */\nexport async function setChannelNativelyAsync(ctx: BuildContext<BuildJob>): Promise<void> {\n assert(ctx.job.updates?.channel, 'updates.channel must be defined');\n const newUpdateRequestHeaders: Record<string, string> = {\n 'expo-channel-name': ctx.job.updates.channel,\n };\n\n const configFile = ctx.job.platform === Platform.ANDROID ? 'AndroidManifest.xml' : 'Expo.plist';\n ctx.logger.info(\n `Setting the update request headers in '${configFile}' to '${JSON.stringify(\n newUpdateRequestHeaders\n )}'`\n );\n\n switch (ctx.job.platform) {\n case Platform.ANDROID: {\n await androidSetChannelNativelyAsync(ctx);\n return;\n }\n case Platform.IOS: {\n await iosSetChannelNativelyAsync(ctx);\n return;\n }\n default:\n throw new Error(`Platform is not supported.`);\n }\n}\n\nexport async function configureEASExpoUpdatesAsync(ctx: BuildContext<BuildJob>): Promise<void> {\n await setChannelNativelyAsync(ctx);\n}\n\ntype ResolvedRuntime = {\n resolvedRuntimeVersion: string | null;\n resolvedFingerprintSources?: object[] | null;\n};\n\nexport async function configureExpoUpdatesIfInstalledAsync(\n ctx: BuildContext<BuildJob>,\n resolvedRuntime: ResolvedRuntime\n): Promise<void> {\n const expoUpdatesPackageVersion = await getExpoUpdatesPackageVersionIfInstalledAsync(\n ctx.getReactNativeProjectDirectory(),\n ctx.logger\n );\n if (expoUpdatesPackageVersion === null) {\n return;\n }\n\n const appConfigRuntimeVersion =\n ctx.job.version?.runtimeVersion ?? resolvedRuntime.resolvedRuntimeVersion;\n\n if (ctx.metadata?.runtimeVersion && ctx.metadata.runtimeVersion !== appConfigRuntimeVersion) {\n ctx.logger.warn(\n `\nRuntime version mismatch:\n- Runtime version calculated on local machine: ${ctx.metadata.runtimeVersion}\n- Runtime version calculated on EAS: ${appConfigRuntimeVersion}\n\nThis may be due to one or more factors:\n- Differing result of conditional app config (app.config.js) evaluation for runtime version resolution.\n- Differing fingerprint when using fingerprint runtime version policy. If applicable, see fingerprint diff below.\n\nThis would cause any updates published on the local machine to not be compatible with this build.\n`\n );\n await logDiffFingerprints({ resolvedRuntime, ctx });\n throw new Error(\n 'Runtime version calculated on local machine not equal to runtime version calculated during build.'\n );\n }\n\n if (isEASUpdateConfigured(ctx)) {\n if (ctx.job.updates?.channel !== undefined) {\n await configureEASExpoUpdatesAsync(ctx);\n } else {\n const channel = await getChannelAsync(ctx);\n const isDevelopmentClient = ctx.job.developmentClient ?? false;\n\n if (channel !== null) {\n const configFile =\n ctx.job.platform === Platform.ANDROID ? 'AndroidManifest.xml' : 'Expo.plist';\n ctx.logger.info(`The channel name for EAS Update in ${configFile} is set to \"${channel}\"`);\n } else if (isDevelopmentClient) {\n // NO-OP: Development clients don't need to have a channel set\n } else {\n const easUpdateUrl = ctx.appConfig.updates?.url ?? null;\n const jobProfile = ctx.job.buildProfile ?? null;\n ctx.logger.warn(\n `This build has an invalid EAS Update configuration: update.url is set to \"${easUpdateUrl}\" in app config, but a channel is not specified${\n jobProfile ? '' : ` for the current build profile \"${jobProfile}\" in eas.json`\n }.`\n );\n ctx.logger.warn(`- No channel will be set and EAS Update will be disabled for the build.`);\n ctx.logger.warn(\n `- Run \\`eas update:configure\\` to set your channel in eas.json. For more details, see https://docs.expo.dev/eas-update/getting-started/#configure-your-project`\n );\n\n ctx.markBuildPhaseHasWarnings();\n }\n }\n }\n\n if (ctx.job.version?.runtimeVersion) {\n ctx.logger.info('Updating runtimeVersion in Expo.plist');\n await setRuntimeVersionNativelyAsync(ctx, ctx.job.version.runtimeVersion);\n }\n}\n\nexport async function resolveRuntimeVersionForExpoUpdatesIfConfiguredAsync({\n cwd,\n appConfig,\n platform,\n workflow,\n logger,\n env,\n}: {\n cwd: string;\n appConfig: ExpoConfig;\n platform: Platform;\n workflow: Workflow;\n logger: bunyan;\n env: BuildStepEnv;\n}): Promise<{\n runtimeVersion: string | null;\n fingerprintSources: object[] | null;\n} | null> {\n const expoUpdatesPackageVersion = await getExpoUpdatesPackageVersionIfInstalledAsync(cwd, logger);\n if (expoUpdatesPackageVersion === null) {\n return null;\n }\n\n const resolvedRuntimeVersion = await resolveRuntimeVersionAsync({\n projectDir: cwd,\n exp: appConfig,\n platform,\n workflow,\n logger,\n expoUpdatesPackageVersion,\n env,\n });\n\n logger.info(`Resolved runtime version: ${resolvedRuntimeVersion?.runtimeVersion}`);\n return resolvedRuntimeVersion;\n}\n\nexport async function getChannelAsync(ctx: BuildContext<Job>): Promise<string | null> {\n switch (ctx.job.platform) {\n case Platform.ANDROID: {\n return await androidGetNativelyDefinedChannelAsync(ctx);\n }\n case Platform.IOS: {\n return await iosGetNativelyDefinedChannelAsync(ctx);\n }\n default:\n throw new Error(`Platform is not supported.`);\n }\n}\n\nexport async function getRuntimeVersionAsync(ctx: BuildContext<Job>): Promise<string | null> {\n switch (ctx.job.platform) {\n case Platform.ANDROID: {\n return await androidGetNativelyDefinedRuntimeVersionAsync(ctx);\n }\n case Platform.IOS: {\n return await iosGetNativelyDefinedRuntimeVersionAsync(ctx);\n }\n default:\n throw new Error(`Platform is not supported.`);\n }\n}\n\nexport function isEASUpdateConfigured(ctx: BuildContext<Job>): boolean {\n const rawUrl = ctx.appConfig.updates?.url;\n if (!rawUrl) {\n return false;\n }\n try {\n const url = new URL(rawUrl);\n return ['u.expo.dev', 'staging-u.expo.dev'].includes(url.hostname);\n } catch (err) {\n ctx.logger.error({ err }, `Cannot parse expo.updates.url = ${rawUrl} as URL`);\n ctx.logger.error(`Assuming EAS Update is not configured`);\n return false;\n }\n}\n\nexport function isModernExpoUpdatesCLIWithRuntimeVersionCommandSupported(\n expoUpdatesPackageVersion: string\n): boolean {\n if (expoUpdatesPackageVersion.includes('canary')) {\n return true;\n }\n\n // Anything SDK 51 or greater uses the expo-updates CLI\n return semver.gte(expoUpdatesPackageVersion, '0.25.4');\n}\n\nasync function logDiffFingerprints({\n resolvedRuntime,\n ctx,\n}: {\n resolvedRuntime: ResolvedRuntime;\n ctx: BuildContext<BuildJob>;\n}): Promise<void> {\n const { resolvedRuntimeVersion, resolvedFingerprintSources } = resolvedRuntime;\n if (ctx.metadata?.fingerprintSource && resolvedFingerprintSources && resolvedRuntimeVersion) {\n try {\n const fingerprintSource = ctx.metadata.fingerprintSource;\n\n let localFingerprintFile: string | null = null;\n\n if (fingerprintSource.type === FingerprintSourceType.URL) {\n const result = await fetch(fingerprintSource.url);\n const localFingerprintJSON = await result.json();\n localFingerprintFile = path.join(os.tmpdir(), `eas-build-${uuidv4()}-local-fingerprint`);\n await fs.writeFile(localFingerprintFile, JSON.stringify(localFingerprintJSON));\n } else if (fingerprintSource.type === FingerprintSourceType.PATH) {\n localFingerprintFile = fingerprintSource.path;\n } else {\n ctx.logger.warn(`Invalid fingerprint source type: ${fingerprintSource.type}`);\n }\n\n if (localFingerprintFile) {\n const easFingerprint = {\n hash: resolvedRuntimeVersion,\n sources: resolvedFingerprintSources,\n };\n const easFingerprintFile = path.join(os.tmpdir(), `eas-build-${uuidv4()}-eas-fingerprint`);\n await fs.writeFile(easFingerprintFile, JSON.stringify(easFingerprint));\n\n const changesJSONString = await diffFingerprintsAsync(\n ctx.getReactNativeProjectDirectory(),\n localFingerprintFile,\n easFingerprintFile,\n { env: ctx.env, logger: ctx.logger }\n );\n if (changesJSONString) {\n const changes = JSON.parse(changesJSONString);\n if (changes.length) {\n ctx.logger.warn('Difference between local and EAS fingerprints:');\n ctx.logger.warn(stringifyFingerprintDiff(changes));\n }\n }\n }\n } catch (error) {\n ctx.logger.warn('Failed to compare fingerprints', error);\n }\n }\n}\n"]}
|
|
@@ -26,7 +26,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
29
|
+
exports.ExpoUpdatesCLICommandFailedError = exports.ExpoUpdatesCLIInvalidCommandError = exports.ExpoUpdatesCLIModuleNotFoundError = void 0;
|
|
30
|
+
exports.expoUpdatesCommandAsync = expoUpdatesCommandAsync;
|
|
30
31
|
const resolve_from_1 = __importStar(require("resolve-from"));
|
|
31
32
|
const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
|
|
32
33
|
class ExpoUpdatesCLIModuleNotFoundError extends Error {
|
|
@@ -71,5 +72,4 @@ async function expoUpdatesCommandAsync(projectDir, args, { env }) {
|
|
|
71
72
|
throw e;
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
|
-
exports.expoUpdatesCommandAsync = expoUpdatesCommandAsync;
|
|
75
75
|
//# sourceMappingURL=expoUpdatesCli.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expoUpdatesCli.js","sourceRoot":"","sources":["../../src/utils/expoUpdatesCli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"expoUpdatesCli.js","sourceRoot":"","sources":["../../src/utils/expoUpdatesCli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,0DAsCC;AA9CD,6DAAwE;AACxE,sEAA4C;AAG5C,MAAa,iCAAkC,SAAQ,KAAK;CAAG;AAA/D,8EAA+D;AAC/D,MAAa,iCAAkC,SAAQ,KAAK;CAAG;AAA/D,8EAA+D;AAC/D,MAAa,gCAAiC,SAAQ,KAAK;CAAG;AAA9D,4EAA8D;AAEvD,KAAK,UAAU,uBAAuB,CAC3C,UAAkB,EAClB,IAAc,EACd,EAAE,GAAG,EAAyB;;IAE9B,IAAI,cAAc,CAAC;IACnB,IAAI,CAAC;QACH,cAAc;YACZ,MAAA,IAAA,qBAAiB,EAAC,UAAU,EAAE,sBAAsB,CAAC,mCACrD,IAAA,sBAAW,EAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAClC,MAAM,IAAI,iCAAiC,CACzC,uIAAuI,CACxI,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;IAED,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,IAAA,sBAAU,EAAC,cAAc,EAAE,IAAI,EAAE;YACzD,KAAK,EAAE,MAAM;YACb,GAAG,EAAE,UAAU;YACf,GAAG;SACJ,CAAC,CAAC;QACH,OAAO,WAAW,CAAC,MAAM,CAAC;IAC5B,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7C,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,iCAAiC,CACzC,4BAA4B,IAAI,6CAA6C,CAC9E,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,gCAAgC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC","sourcesContent":["import resolveFrom, { silent as silentResolveFrom } from 'resolve-from';\nimport spawnAsync from '@expo/turtle-spawn';\nimport { BuildStepEnv } from '@expo/steps';\n\nexport class ExpoUpdatesCLIModuleNotFoundError extends Error {}\nexport class ExpoUpdatesCLIInvalidCommandError extends Error {}\nexport class ExpoUpdatesCLICommandFailedError extends Error {}\n\nexport async function expoUpdatesCommandAsync(\n projectDir: string,\n args: string[],\n { env }: { env: BuildStepEnv }\n): Promise<string> {\n let expoUpdatesCli;\n try {\n expoUpdatesCli =\n silentResolveFrom(projectDir, 'expo-updates/bin/cli') ??\n resolveFrom(projectDir, 'expo-updates/bin/cli.js');\n } catch (e: any) {\n if (e.code === 'MODULE_NOT_FOUND') {\n throw new ExpoUpdatesCLIModuleNotFoundError(\n `The \\`expo-updates\\` package was not found. Follow the installation directions at https://docs.expo.dev/bare/installing-expo-modules/`\n );\n }\n throw e;\n }\n\n try {\n const spawnResult = await spawnAsync(expoUpdatesCli, args, {\n stdio: 'pipe',\n cwd: projectDir,\n env,\n });\n return spawnResult.stdout;\n } catch (e: any) {\n if (e.stderr && typeof e.stderr === 'string') {\n if (e.stderr.includes('Invalid command')) {\n throw new ExpoUpdatesCLIInvalidCommandError(\n `The command specified by ${args} was not valid in the \\`expo-updates\\` CLI.`\n );\n } else {\n throw new ExpoUpdatesCLICommandFailedError(e.stderr);\n }\n }\n throw e;\n }\n}\n"]}
|
package/dist/utils/files.js
CHANGED
|
@@ -26,7 +26,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
29
|
+
exports.decompressTarAsync = decompressTarAsync;
|
|
30
|
+
exports.isFileTarGzAsync = isFileTarGzAsync;
|
|
30
31
|
// import fs from 'node:fs';
|
|
31
32
|
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
32
33
|
const node_stream_1 = __importDefault(require("node:stream"));
|
|
@@ -37,7 +38,6 @@ async function decompressTarAsync({ archivePath, destinationDirectory, }) {
|
|
|
37
38
|
const fileHandle = await promises_1.default.open(archivePath, 'r');
|
|
38
39
|
await streamPipeline(fileHandle.createReadStream(), tar.extract({ cwd: destinationDirectory }, []));
|
|
39
40
|
}
|
|
40
|
-
exports.decompressTarAsync = decompressTarAsync;
|
|
41
41
|
async function isFileTarGzAsync(path) {
|
|
42
42
|
if (path.endsWith('tar.gz') || path.endsWith('.tgz')) {
|
|
43
43
|
return true;
|
|
@@ -54,5 +54,4 @@ async function isFileTarGzAsync(path) {
|
|
|
54
54
|
// Source: https://en.wikipedia.org/wiki/Gzip#File_format
|
|
55
55
|
return buffer[0] === 0x1f && buffer[1] === 0x8b && buffer[2] === 0x08;
|
|
56
56
|
}
|
|
57
|
-
exports.isFileTarGzAsync = isFileTarGzAsync;
|
|
58
57
|
//# sourceMappingURL=files.js.map
|
package/dist/utils/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/utils/files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/utils/files.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,gDAYC;AAED,4CAkBC;AAzCD,4BAA4B;AAC5B,gEAA0C;AAC1C,8DAAiC;AACjC,yCAAsC;AAEtC,yCAA2B;AAE3B,MAAM,cAAc,GAAG,IAAA,qBAAS,EAAC,qBAAM,CAAC,QAAQ,CAAC,CAAC;AAE3C,KAAK,UAAU,kBAAkB,CAAC,EACvC,WAAW,EACX,oBAAoB,GAIrB;IACC,MAAM,UAAU,GAAG,MAAM,kBAAU,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,cAAc,CAClB,UAAU,CAAC,gBAAgB,EAAE,EAC7B,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC,CAC/C,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,IAAY;IACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gDAAgD;IAChD,MAAM,EAAE,GAAG,MAAM,kBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IAEjB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8DAA8D;IAC9D,0DAA0D;IAC1D,yDAAyD;IACzD,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AACxE,CAAC","sourcesContent":["// import fs from 'node:fs';\nimport fsPromises from 'node:fs/promises';\nimport stream from 'node:stream';\nimport { promisify } from 'node:util';\n\nimport * as tar from 'tar';\n\nconst streamPipeline = promisify(stream.pipeline);\n\nexport async function decompressTarAsync({\n archivePath,\n destinationDirectory,\n}: {\n archivePath: string;\n destinationDirectory: string;\n}): Promise<void> {\n const fileHandle = await fsPromises.open(archivePath, 'r');\n await streamPipeline(\n fileHandle.createReadStream(),\n tar.extract({ cwd: destinationDirectory }, [])\n );\n}\n\nexport async function isFileTarGzAsync(path: string): Promise<boolean> {\n if (path.endsWith('tar.gz') || path.endsWith('.tgz')) {\n return true;\n }\n\n // read only first 3 bytes to check if it's gzip\n const fd = await fsPromises.open(path, 'r');\n const { buffer } = await fd.read(Buffer.alloc(3), 0, 3, 0);\n await fd.close();\n\n if (buffer.length < 3) {\n return false;\n }\n\n // Check whether provided `buffer` is a valid Gzip file header\n // Gzip files always begin with 0x1F 0x8B 0x08 magic bytes\n // Source: https://en.wikipedia.org/wiki/Gzip#File_format\n return buffer[0] === 0x1f && buffer[1] === 0x8b && buffer[2] === 0x08;\n}\n"]}
|
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.findMaestroPathsFlowsToExecuteAsync =
|
|
29
|
+
exports.findMaestroPathsFlowsToExecuteAsync = findMaestroPathsFlowsToExecuteAsync;
|
|
30
30
|
const node_fs_1 = require("node:fs");
|
|
31
31
|
const path = __importStar(require("node:path"));
|
|
32
32
|
const yaml = __importStar(require("yaml"));
|
|
@@ -98,7 +98,6 @@ async function findMaestroPathsFlowsToExecuteAsync({ workingDirectory, flowPath,
|
|
|
98
98
|
})
|
|
99
99
|
.map(({ path }) => path);
|
|
100
100
|
}
|
|
101
|
-
exports.findMaestroPathsFlowsToExecuteAsync = findMaestroPathsFlowsToExecuteAsync;
|
|
102
101
|
async function findAndParseWorkspaceConfigAsync({ dirPath, workingDirectory, logger, }) {
|
|
103
102
|
const configPaths = await (0, fast_glob_1.default)(['config.yaml', 'config.yml'], {
|
|
104
103
|
cwd: dirPath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findMaestroPathsFlowsToExecuteAsync.js","sourceRoot":"","sources":["../../src/utils/findMaestroPathsFlowsToExecuteAsync.ts"],"names":[],"mappings":"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","sourcesContent":["import { promises as fs } from 'node:fs';\nimport * as path from 'node:path';\n\nimport { bunyan } from '@expo/logger';\nimport * as yaml from 'yaml';\nimport { z } from 'zod';\nimport { asyncResult } from '@expo/results';\nimport fg from 'fast-glob';\n\nconst FlowConfigSchema = z.object({\n name: z.string().optional(),\n tags: z.array(z.string()).optional(),\n});\n\nconst WorkspaceConfigSchema = z.object({\n flows: z.array(z.string()).optional(),\n executionOrder: z.record(z.unknown()).optional(),\n includeTags: z.array(z.string()).optional(),\n excludeTags: z.array(z.string()).optional(),\n});\n\ntype FlowConfig = z.infer<typeof FlowConfigSchema>;\ntype WorkspaceConfig = z.infer<typeof WorkspaceConfigSchema>;\n\nexport async function findMaestroPathsFlowsToExecuteAsync({\n workingDirectory,\n flowPath,\n includeTags: _includeTags,\n excludeTags: _excludeTags,\n logger,\n}: {\n workingDirectory: string;\n flowPath: string;\n includeTags: string[] | undefined;\n excludeTags: string[] | undefined;\n logger: bunyan;\n}): Promise<string[]> {\n const absoluteFlowPath = path.resolve(workingDirectory, flowPath);\n // If it's a file, just return it (no validation needed)\n const stat = await fs.stat(absoluteFlowPath);\n\n if (stat.isFile()) {\n logger.info(`Found a file: ${path.relative(workingDirectory, absoluteFlowPath)}`);\n return [absoluteFlowPath];\n }\n\n // It's a directory - discover flow files\n logger.info(`Found a directory: ${path.relative(workingDirectory, absoluteFlowPath)}`);\n\n // Check for workspace config\n logger.info(`Searching for workspace config...`);\n const workspaceConfig = await findAndParseWorkspaceConfigAsync({\n dirPath: absoluteFlowPath,\n workingDirectory,\n logger,\n });\n logger.info(`Using workspace config: ${JSON.stringify(workspaceConfig)}`);\n\n if (workspaceConfig?.executionOrder) {\n logger.warn(`Execution order is not supported yet. Ignoring.`);\n }\n\n logger.info(`Searching for flow files...`);\n const { flows } = await findAndParseFlowFilesAsync({\n dirPath: absoluteFlowPath,\n workingDirectory,\n workspaceConfig,\n logger,\n });\n\n if (flows.length === 0) {\n logger.info(\n `No valid flow files found in: ${path.relative(workingDirectory, absoluteFlowPath)}`\n );\n return [];\n }\n\n const includeTags = [...(_includeTags ?? []), ...(workspaceConfig?.includeTags ?? [])];\n const excludeTags = [...(_excludeTags ?? []), ...(workspaceConfig?.excludeTags ?? [])];\n\n if (includeTags.length === 0 && excludeTags.length === 0) {\n logger.info(`No tags provided, returning all flows.`);\n return flows.map(({ path }) => path);\n }\n\n logger.info(\n `Filtering flows by tags. Tags to include: ${JSON.stringify(includeTags)}. Tags to exclude: ${JSON.stringify(excludeTags) ?? 'none'}.`\n );\n return flows\n .filter(({ config, path: flowPath }) => {\n const shouldInclude = matchesTags({\n flowTags: config?.tags ?? [],\n includeTags,\n excludeTags,\n });\n\n logger.info(\n shouldInclude\n ? `- ${path.relative(workingDirectory, flowPath)} matches tags, including.`\n : `- ${path.relative(workingDirectory, flowPath)} does not match tags, excluding.`\n );\n\n return shouldInclude;\n })\n .map(({ path }) => path);\n}\n\nasync function findAndParseWorkspaceConfigAsync({\n dirPath,\n workingDirectory,\n logger,\n}: {\n dirPath: string;\n workingDirectory: string;\n logger: bunyan;\n}): Promise<WorkspaceConfig | null> {\n const configPaths = await fg(['config.yaml', 'config.yml'], {\n cwd: dirPath,\n absolute: true,\n });\n\n if (configPaths.length === 0) {\n logger.info(`No workspace config found in: ${path.relative(workingDirectory, dirPath)}`);\n return null;\n }\n\n for (const configPath of configPaths) {\n try {\n const content = await fs.readFile(configPath, 'utf-8');\n const configDoc = yaml.parse(content);\n if (!configDoc) {\n logger.warn(\n `No content found in workspace config: ${path.relative(workingDirectory, configPath)}`\n );\n continue;\n }\n logger.info(`Using workspace config from: ${path.relative(workingDirectory, configPath)}`);\n return WorkspaceConfigSchema.parse(configDoc);\n } catch (err) {\n logger.warn(\n { err },\n `Failed to parse workspace config: ${path.relative(workingDirectory, configPath)}`\n );\n continue;\n }\n }\n\n logger.info(`No valid workspace config found in: ${path.relative(workingDirectory, dirPath)}`);\n return null;\n}\n\nasync function findAndParseFlowFilesAsync({\n workingDirectory,\n dirPath,\n workspaceConfig,\n logger,\n}: {\n workingDirectory: string;\n dirPath: string;\n workspaceConfig: WorkspaceConfig | null;\n logger: bunyan;\n}): Promise<{ flows: { config: FlowConfig; path: string }[] }> {\n const flows: { config: FlowConfig; path: string }[] = [];\n\n // Determine flow patterns from config or use default\n const flowPatterns = workspaceConfig?.flows ?? ['*'];\n logger.info(`Using flow patterns: ${JSON.stringify(flowPatterns)}`);\n\n // Use fast-glob to find matching files\n const matchedFiles = await fg(flowPatterns, {\n cwd: dirPath,\n absolute: true,\n onlyFiles: true,\n ignore: ['*/config.yaml', '*/config.yml'], // Skip workspace config files\n });\n\n logger.info(`Found ${matchedFiles.length} potential flow files`);\n\n // Parse each matched file\n for (const filePath of matchedFiles) {\n // Skip non-YAML files\n const ext = path.extname(filePath);\n if (ext !== '.yaml' && ext !== '.yml') {\n logger.info(`Skipping non-YAML file: ${path.relative(workingDirectory, filePath)}`);\n continue;\n }\n\n const result = await asyncResult(parseFlowFile(filePath));\n if (result.ok) {\n logger.info(`Found flow file: ${path.relative(workingDirectory, filePath)}`);\n flows.push({ config: result.value, path: filePath });\n } else {\n logger.info(\n { err: result.reason },\n `Skipping flow file: ${path.relative(workingDirectory, filePath)}`\n );\n }\n }\n\n return { flows };\n}\n\nasync function parseFlowFile(filePath: string): Promise<FlowConfig> {\n const content = await fs.readFile(filePath, 'utf-8');\n const documents = yaml.parseAllDocuments(content);\n const configDoc = documents[0];\n if (!configDoc) {\n throw new Error(`No config section found in ${filePath}`);\n }\n return FlowConfigSchema.parse(configDoc.toJS());\n}\n\nfunction matchesTags({\n flowTags,\n includeTags,\n excludeTags,\n}: {\n flowTags: string[];\n includeTags: string[];\n excludeTags: string[];\n}): boolean {\n // Include logic: if includeTags is empty OR flow has any of the include tags\n const includeMatch =\n includeTags.length === 0 || includeTags.some((tag) => flowTags.includes(tag));\n\n // Exclude logic: if excludeTags is empty OR flow has none of the exclude tags\n const excludeMatch =\n excludeTags.length === 0 || !excludeTags.some((tag) => flowTags.includes(tag));\n\n return includeMatch && excludeMatch;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"findMaestroPathsFlowsToExecuteAsync.js","sourceRoot":"","sources":["../../src/utils/findMaestroPathsFlowsToExecuteAsync.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,kFAiFC;AAzGD,qCAAyC;AACzC,gDAAkC;AAGlC,2CAA6B;AAC7B,6BAAwB;AACxB,2CAA4C;AAC5C,0DAA2B;AAE3B,MAAM,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrC,cAAc,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAChD,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3C,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAKI,KAAK,UAAU,mCAAmC,CAAC,EACxD,gBAAgB,EAChB,QAAQ,EACR,WAAW,EAAE,YAAY,EACzB,WAAW,EAAE,YAAY,EACzB,MAAM,GAOP;;IACC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAClE,wDAAwD;IACxD,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAE7C,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAClF,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5B,CAAC;IAED,yCAAyC;IACzC,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAEvF,6BAA6B;IAC7B,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,MAAM,gCAAgC,CAAC;QAC7D,OAAO,EAAE,gBAAgB;QACzB,gBAAgB;QAChB,MAAM;KACP,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAE1E,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,cAAc,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC3C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,0BAA0B,CAAC;QACjD,OAAO,EAAE,gBAAgB;QACzB,gBAAgB;QAChB,eAAe;QACf,MAAM;KACP,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CACT,iCAAiC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,CACrF,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,mCAAI,EAAE,CAAC,CAAC,CAAC;IACvF,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,mCAAI,EAAE,CAAC,CAAC,CAAC;IAEvF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,IAAI,CACT,6CAA6C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,sBAAsB,MAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,mCAAI,MAAM,GAAG,CACvI,CAAC;IACF,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;;QACrC,MAAM,aAAa,GAAG,WAAW,CAAC;YAChC,QAAQ,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,EAAE;YAC5B,WAAW;YACX,WAAW;SACZ,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CACT,aAAa;YACX,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,2BAA2B;YAC3E,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,kCAAkC,CACrF,CAAC;QAEF,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,gCAAgC,CAAC,EAC9C,OAAO,EACP,gBAAgB,EAChB,MAAM,GAKP;IACC,MAAM,WAAW,GAAG,MAAM,IAAA,mBAAE,EAAC,CAAC,aAAa,EAAE,YAAY,CAAC,EAAE;QAC1D,GAAG,EAAE,OAAO;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,iCAAiC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CACT,yCAAyC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAAE,CACvF,CAAC;gBACF,SAAS;YACX,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;YAC3F,OAAO,qBAAqB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CACT,EAAE,GAAG,EAAE,EACP,qCAAqC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAAE,CACnF,CAAC;YACF,SAAS;QACX,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,uCAAuC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/F,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,0BAA0B,CAAC,EACxC,gBAAgB,EAChB,OAAO,EACP,eAAe,EACf,MAAM,GAMP;;IACC,MAAM,KAAK,GAA2C,EAAE,CAAC;IAEzD,qDAAqD;IACrD,MAAM,YAAY,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,mCAAI,CAAC,GAAG,CAAC,CAAC;IACrD,MAAM,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAEpE,uCAAuC;IACvC,MAAM,YAAY,GAAG,MAAM,IAAA,mBAAE,EAAC,YAAY,EAAE;QAC1C,GAAG,EAAE,OAAO;QACZ,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,8BAA8B;KAC1E,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,MAAM,uBAAuB,CAAC,CAAC;IAEjE,0BAA0B;IAC1B,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;QACpC,sBAAsB;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpF,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAW,EAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7E,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CACT,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,EACtB,uBAAuB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,EAAE,CACnE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAgB;IAC3C,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,WAAW,CAAC,EACnB,QAAQ,EACR,WAAW,EACX,WAAW,GAKZ;IACC,6EAA6E;IAC7E,MAAM,YAAY,GAChB,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAEhF,8EAA8E;IAC9E,MAAM,YAAY,GAChB,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAEjF,OAAO,YAAY,IAAI,YAAY,CAAC;AACtC,CAAC","sourcesContent":["import { promises as fs } from 'node:fs';\nimport * as path from 'node:path';\n\nimport { bunyan } from '@expo/logger';\nimport * as yaml from 'yaml';\nimport { z } from 'zod';\nimport { asyncResult } from '@expo/results';\nimport fg from 'fast-glob';\n\nconst FlowConfigSchema = z.object({\n name: z.string().optional(),\n tags: z.array(z.string()).optional(),\n});\n\nconst WorkspaceConfigSchema = z.object({\n flows: z.array(z.string()).optional(),\n executionOrder: z.record(z.unknown()).optional(),\n includeTags: z.array(z.string()).optional(),\n excludeTags: z.array(z.string()).optional(),\n});\n\ntype FlowConfig = z.infer<typeof FlowConfigSchema>;\ntype WorkspaceConfig = z.infer<typeof WorkspaceConfigSchema>;\n\nexport async function findMaestroPathsFlowsToExecuteAsync({\n workingDirectory,\n flowPath,\n includeTags: _includeTags,\n excludeTags: _excludeTags,\n logger,\n}: {\n workingDirectory: string;\n flowPath: string;\n includeTags: string[] | undefined;\n excludeTags: string[] | undefined;\n logger: bunyan;\n}): Promise<string[]> {\n const absoluteFlowPath = path.resolve(workingDirectory, flowPath);\n // If it's a file, just return it (no validation needed)\n const stat = await fs.stat(absoluteFlowPath);\n\n if (stat.isFile()) {\n logger.info(`Found a file: ${path.relative(workingDirectory, absoluteFlowPath)}`);\n return [absoluteFlowPath];\n }\n\n // It's a directory - discover flow files\n logger.info(`Found a directory: ${path.relative(workingDirectory, absoluteFlowPath)}`);\n\n // Check for workspace config\n logger.info(`Searching for workspace config...`);\n const workspaceConfig = await findAndParseWorkspaceConfigAsync({\n dirPath: absoluteFlowPath,\n workingDirectory,\n logger,\n });\n logger.info(`Using workspace config: ${JSON.stringify(workspaceConfig)}`);\n\n if (workspaceConfig?.executionOrder) {\n logger.warn(`Execution order is not supported yet. Ignoring.`);\n }\n\n logger.info(`Searching for flow files...`);\n const { flows } = await findAndParseFlowFilesAsync({\n dirPath: absoluteFlowPath,\n workingDirectory,\n workspaceConfig,\n logger,\n });\n\n if (flows.length === 0) {\n logger.info(\n `No valid flow files found in: ${path.relative(workingDirectory, absoluteFlowPath)}`\n );\n return [];\n }\n\n const includeTags = [...(_includeTags ?? []), ...(workspaceConfig?.includeTags ?? [])];\n const excludeTags = [...(_excludeTags ?? []), ...(workspaceConfig?.excludeTags ?? [])];\n\n if (includeTags.length === 0 && excludeTags.length === 0) {\n logger.info(`No tags provided, returning all flows.`);\n return flows.map(({ path }) => path);\n }\n\n logger.info(\n `Filtering flows by tags. Tags to include: ${JSON.stringify(includeTags)}. Tags to exclude: ${JSON.stringify(excludeTags) ?? 'none'}.`\n );\n return flows\n .filter(({ config, path: flowPath }) => {\n const shouldInclude = matchesTags({\n flowTags: config?.tags ?? [],\n includeTags,\n excludeTags,\n });\n\n logger.info(\n shouldInclude\n ? `- ${path.relative(workingDirectory, flowPath)} matches tags, including.`\n : `- ${path.relative(workingDirectory, flowPath)} does not match tags, excluding.`\n );\n\n return shouldInclude;\n })\n .map(({ path }) => path);\n}\n\nasync function findAndParseWorkspaceConfigAsync({\n dirPath,\n workingDirectory,\n logger,\n}: {\n dirPath: string;\n workingDirectory: string;\n logger: bunyan;\n}): Promise<WorkspaceConfig | null> {\n const configPaths = await fg(['config.yaml', 'config.yml'], {\n cwd: dirPath,\n absolute: true,\n });\n\n if (configPaths.length === 0) {\n logger.info(`No workspace config found in: ${path.relative(workingDirectory, dirPath)}`);\n return null;\n }\n\n for (const configPath of configPaths) {\n try {\n const content = await fs.readFile(configPath, 'utf-8');\n const configDoc = yaml.parse(content);\n if (!configDoc) {\n logger.warn(\n `No content found in workspace config: ${path.relative(workingDirectory, configPath)}`\n );\n continue;\n }\n logger.info(`Using workspace config from: ${path.relative(workingDirectory, configPath)}`);\n return WorkspaceConfigSchema.parse(configDoc);\n } catch (err) {\n logger.warn(\n { err },\n `Failed to parse workspace config: ${path.relative(workingDirectory, configPath)}`\n );\n continue;\n }\n }\n\n logger.info(`No valid workspace config found in: ${path.relative(workingDirectory, dirPath)}`);\n return null;\n}\n\nasync function findAndParseFlowFilesAsync({\n workingDirectory,\n dirPath,\n workspaceConfig,\n logger,\n}: {\n workingDirectory: string;\n dirPath: string;\n workspaceConfig: WorkspaceConfig | null;\n logger: bunyan;\n}): Promise<{ flows: { config: FlowConfig; path: string }[] }> {\n const flows: { config: FlowConfig; path: string }[] = [];\n\n // Determine flow patterns from config or use default\n const flowPatterns = workspaceConfig?.flows ?? ['*'];\n logger.info(`Using flow patterns: ${JSON.stringify(flowPatterns)}`);\n\n // Use fast-glob to find matching files\n const matchedFiles = await fg(flowPatterns, {\n cwd: dirPath,\n absolute: true,\n onlyFiles: true,\n ignore: ['*/config.yaml', '*/config.yml'], // Skip workspace config files\n });\n\n logger.info(`Found ${matchedFiles.length} potential flow files`);\n\n // Parse each matched file\n for (const filePath of matchedFiles) {\n // Skip non-YAML files\n const ext = path.extname(filePath);\n if (ext !== '.yaml' && ext !== '.yml') {\n logger.info(`Skipping non-YAML file: ${path.relative(workingDirectory, filePath)}`);\n continue;\n }\n\n const result = await asyncResult(parseFlowFile(filePath));\n if (result.ok) {\n logger.info(`Found flow file: ${path.relative(workingDirectory, filePath)}`);\n flows.push({ config: result.value, path: filePath });\n } else {\n logger.info(\n { err: result.reason },\n `Skipping flow file: ${path.relative(workingDirectory, filePath)}`\n );\n }\n }\n\n return { flows };\n}\n\nasync function parseFlowFile(filePath: string): Promise<FlowConfig> {\n const content = await fs.readFile(filePath, 'utf-8');\n const documents = yaml.parseAllDocuments(content);\n const configDoc = documents[0];\n if (!configDoc) {\n throw new Error(`No config section found in ${filePath}`);\n }\n return FlowConfigSchema.parse(configDoc.toJS());\n}\n\nfunction matchesTags({\n flowTags,\n includeTags,\n excludeTags,\n}: {\n flowTags: string[];\n includeTags: string[];\n excludeTags: string[];\n}): boolean {\n // Include logic: if includeTags is empty OR flow has any of the include tags\n const includeMatch =\n includeTags.length === 0 || includeTags.some((tag) => flowTags.includes(tag));\n\n // Exclude logic: if excludeTags is empty OR flow has none of the exclude tags\n const excludeMatch =\n excludeTags.length === 0 || !excludeTags.some((tag) => flowTags.includes(tag));\n\n return includeMatch && excludeMatch;\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.stringifyFingerprintDiff =
|
|
3
|
+
exports.stringifyFingerprintDiff = stringifyFingerprintDiff;
|
|
4
4
|
function stringifyFingerprintDiff(fingerprintDiff) {
|
|
5
5
|
return JSON.stringify(fingerprintDiff, (key, value) => {
|
|
6
6
|
if (key === 'contents') {
|
|
@@ -15,5 +15,4 @@ function stringifyFingerprintDiff(fingerprintDiff) {
|
|
|
15
15
|
return value;
|
|
16
16
|
}, ' ');
|
|
17
17
|
}
|
|
18
|
-
exports.stringifyFingerprintDiff = stringifyFingerprintDiff;
|
|
19
18
|
//# sourceMappingURL=fingerprint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../../src/utils/fingerprint.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../../src/utils/fingerprint.ts"],"names":[],"mappings":";;AAAA,4DAgBC;AAhBD,SAAgB,wBAAwB,CAAC,eAAyB;IAChE,OAAO,IAAI,CAAC,SAAS,CACnB,eAAe,EACf,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACb,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC/B,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EACD,GAAG,CACJ,CAAC;AACJ,CAAC","sourcesContent":["export function stringifyFingerprintDiff(fingerprintDiff: object[]): string {\n return JSON.stringify(\n fingerprintDiff,\n (key, value) => {\n if (key === 'contents') {\n try {\n const item = JSON.parse(value);\n return item;\n } catch {\n return value;\n }\n }\n return value;\n },\n ' '\n );\n}\n"]}
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = getExpoUpdatesPackageVersionIfInstalledAsync;
|
|
6
7
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
7
8
|
const resolve_from_1 = __importDefault(require("resolve-from"));
|
|
8
9
|
async function getExpoUpdatesPackageVersionIfInstalledAsync(reactNativeProjectDirectory, logger) {
|
|
@@ -15,5 +16,4 @@ async function getExpoUpdatesPackageVersionIfInstalledAsync(reactNativeProjectDi
|
|
|
15
16
|
logger.debug(`Resolved expo-updates package version: ${versionOuter}`);
|
|
16
17
|
return versionOuter;
|
|
17
18
|
}
|
|
18
|
-
exports.default = getExpoUpdatesPackageVersionIfInstalledAsync;
|
|
19
19
|
//# sourceMappingURL=getExpoUpdatesPackageVersionIfInstalledAsync.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getExpoUpdatesPackageVersionIfInstalledAsync.js","sourceRoot":"","sources":["../../src/utils/getExpoUpdatesPackageVersionIfInstalledAsync.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"getExpoUpdatesPackageVersionIfInstalledAsync.js","sourceRoot":"","sources":["../../src/utils/getExpoUpdatesPackageVersionIfInstalledAsync.ts"],"names":[],"mappings":";;;;;AAIA,+DAiBC;AApBD,wDAA0B;AAC1B,gEAAuC;AAExB,KAAK,UAAU,4CAA4C,CACxE,2BAAmC,EACnC,MAAc;IAEd,MAAM,gBAAgB,GAAG,sBAAW,CAAC,MAAM,CACzC,2BAA2B,EAC3B,2BAA2B,CAC5B,CAAC;IAEF,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACxD,YAAY,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,0CAA0C,YAAY,EAAE,CAAC,CAAC;IACvE,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import { bunyan } from '@expo/logger';\nimport fs from 'fs-extra';\nimport resolveFrom from 'resolve-from';\n\nexport default async function getExpoUpdatesPackageVersionIfInstalledAsync(\n reactNativeProjectDirectory: string,\n logger: bunyan\n): Promise<string | null> {\n const maybePackageJson = resolveFrom.silent(\n reactNativeProjectDirectory,\n 'expo-updates/package.json'\n );\n\n let versionOuter: string | null = null;\n if (maybePackageJson) {\n const { version } = await fs.readJson(maybePackageJson);\n versionOuter = version;\n }\n\n logger.debug(`Resolved expo-updates package version: ${versionOuter}`);\n return versionOuter;\n}\n"]}
|
package/dist/utils/hooks.js
CHANGED
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.Hook = void 0;
|
|
7
|
+
exports.runHookIfPresent = runHookIfPresent;
|
|
7
8
|
const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
|
|
8
9
|
const packageManager_1 = require("./packageManager");
|
|
9
10
|
const project_1 = require("./project");
|
|
@@ -42,5 +43,4 @@ async function runHookIfPresent(ctx, hook, { extraEnvs } = {}) {
|
|
|
42
43
|
});
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
|
-
exports.runHookIfPresent = runHookIfPresent;
|
|
46
46
|
//# sourceMappingURL=hooks.js.map
|
package/dist/utils/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/utils/hooks.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/utils/hooks.ts"],"names":[],"mappings":";;;;;;AAqBA,4CAyBC;AA7CD,sEAAuC;AAIvC,qDAAkD;AAClD,uCAA4C;AAE5C,IAAY,IAWX;AAXD,WAAY,IAAI;IACd,6CAAqC,CAAA;IACrC,+CAAuC,CAAA;IACvC;;OAEG;IACH,+DAAuD,CAAA;IACvD,iDAAyC,CAAA;IACzC,6CAAqC,CAAA;IACrC,mDAA2C,CAAA;IAC3C,+CAAuC,CAAA;AACzC,CAAC,EAXW,IAAI,oBAAJ,IAAI,QAWf;AAEM,KAAK,UAAU,gBAAgB,CACpC,GAAuB,EACvB,IAAU,EACV,EAAE,SAAS,KAA6C,EAAE;;IAE1D,MAAM,UAAU,GAAG,GAAG,CAAC,8BAA8B,EAAE,CAAC;IACxD,MAAM,WAAW,GAAG,IAAA,yBAAe,EAAC,UAAU,CAAC,CAAC;IAChD,IAAI,MAAA,WAAW,CAAC,OAAO,0CAAG,IAAI,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,6CAA6C,CAAC,CAAC;QAC9E,6FAA6F;QAC7F,6BAA6B;QAC7B,2EAA2E;QAC3E,MAAM,cAAc,GAClB,GAAG,CAAC,cAAc,KAAK,+BAAc,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW;YACrE,CAAC,CAAC,+BAAc,CAAC,GAAG;YACpB,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;QACzB,MAAM,IAAA,sBAAK,EAAC,cAAc,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;YACzC,GAAG,EAAE,UAAU;YACf,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE;gBACH,GAAG,GAAG,CAAC,GAAG;gBACV,GAAG,SAAS;aACb;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC","sourcesContent":["import { BuildJob } from '@expo/eas-build-job';\nimport spawn from '@expo/turtle-spawn';\n\nimport { BuildContext } from '../context';\n\nimport { PackageManager } from './packageManager';\nimport { readPackageJson } from './project';\n\nexport enum Hook {\n PRE_INSTALL = 'eas-build-pre-install',\n POST_INSTALL = 'eas-build-post-install',\n /**\n * @deprecated\n */\n PRE_UPLOAD_ARTIFACTS = 'eas-build-pre-upload-artifacts',\n ON_BUILD_SUCCESS = 'eas-build-on-success',\n ON_BUILD_ERROR = 'eas-build-on-error',\n ON_BUILD_COMPLETE = 'eas-build-on-complete',\n ON_BUILD_CANCEL = 'eas-build-on-cancel',\n}\n\nexport async function runHookIfPresent<TJob extends BuildJob>(\n ctx: BuildContext<TJob>,\n hook: Hook,\n { extraEnvs }: { extraEnvs?: Record<string, string> } = {}\n): Promise<void> {\n const projectDir = ctx.getReactNativeProjectDirectory();\n const packageJson = readPackageJson(projectDir);\n if (packageJson.scripts?.[hook]) {\n ctx.logger.info(`Script '${hook}' is present in package.json, running it...`);\n // both yarn v2+ and yarn v1 seem to have issues with running preinstall script in some cases\n // like doing corepack enable\n // https://exponent-internal.slack.com/archives/C9PRD479V/p1736426668589209\n const packageManager =\n ctx.packageManager === PackageManager.YARN && hook === Hook.PRE_INSTALL\n ? PackageManager.NPM\n : ctx.packageManager;\n await spawn(packageManager, ['run', hook], {\n cwd: projectDir,\n logger: ctx.logger,\n env: {\n ...ctx.env,\n ...extraEnvs,\n },\n });\n }\n}\n"]}
|
package/dist/utils/npmrc.d.ts
CHANGED
package/dist/utils/npmrc.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.setUpNpmrcAsync =
|
|
6
|
+
exports.setUpNpmrcAsync = setUpNpmrcAsync;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
9
|
const packageManager_1 = require("./packageManager");
|
|
@@ -16,7 +16,6 @@ async function setUpNpmrcAsync(ctx, logger) {
|
|
|
16
16
|
await logIfNpmrcExistsAsync(ctx, logger);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
exports.setUpNpmrcAsync = setUpNpmrcAsync;
|
|
20
19
|
async function createNpmrcIfNotExistsAsync(ctx, logger) {
|
|
21
20
|
logger.info('We detected that you set the NPM_TOKEN environment variable');
|
|
22
21
|
const projectNpmrcPath = path_1.default.join(ctx.buildDirectory, '.npmrc');
|
package/dist/utils/npmrc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npmrc.js","sourceRoot":"","sources":["../../src/utils/npmrc.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"npmrc.js","sourceRoot":"","sources":["../../src/utils/npmrc.ts"],"names":[],"mappings":";;;;;AAYA,0CAMC;AAlBD,gDAAwB;AAIxB,wDAA0B;AAI1B,qDAAuD;AAEvD,MAAM,mBAAmB,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;AAEnE,KAAK,UAAU,eAAe,CAAC,GAAsB,EAAE,MAAc;IAC1E,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,MAAM,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,GAAsB,EAAE,MAAc;IAC/E,MAAM,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC3E,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACjE,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;IACtF,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;QACrE,MAAM,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;QACtF,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3B,MAAM,kBAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,GAAsB,EAAE,MAAc;IACzE,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAChC,IAAA,oCAAmB,EAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,EACzD,QAAQ,CACT,CAAC;IACF,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,mBAAmB,cAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC;AACH,CAAC","sourcesContent":["import path from 'path';\n\nimport { Job } from '@expo/eas-build-job';\nimport { bunyan } from '@expo/logger';\nimport fs from 'fs-extra';\n\nimport { BuildContext } from '../context';\n\nimport { findPackagerRootDir } from './packageManager';\n\nconst NPMRC_TEMPLATE_PATH = path.join(__dirname, '../../templates/npmrc');\n\nexport async function setUpNpmrcAsync(ctx: BuildContext<Job>, logger: bunyan): Promise<void> {\n if (ctx.env.NPM_TOKEN) {\n await createNpmrcIfNotExistsAsync(ctx, logger);\n } else {\n await logIfNpmrcExistsAsync(ctx, logger);\n }\n}\n\nasync function createNpmrcIfNotExistsAsync(ctx: BuildContext<Job>, logger: bunyan): Promise<void> {\n logger.info('We detected that you set the NPM_TOKEN environment variable');\n const projectNpmrcPath = path.join(ctx.buildDirectory, '.npmrc');\n if (await fs.pathExists(projectNpmrcPath)) {\n logger.info('.npmrc already exists in your project directory, skipping generation');\n } else {\n const npmrcContents = await fs.readFile(NPMRC_TEMPLATE_PATH, 'utf8');\n logger.info('Creating .npmrc in your project directory with the following contents:');\n logger.info(npmrcContents);\n await fs.copy(NPMRC_TEMPLATE_PATH, projectNpmrcPath);\n }\n}\n\nasync function logIfNpmrcExistsAsync(ctx: BuildContext<Job>, logger: bunyan): Promise<void> {\n const projectNpmrcPath = path.join(\n findPackagerRootDir(ctx.getReactNativeProjectDirectory()),\n '.npmrc'\n );\n if (await fs.pathExists(projectNpmrcPath)) {\n logger.info(`.npmrc found at ${path.relative(ctx.buildDirectory, projectNpmrcPath)}`);\n }\n}\n"]}
|
package/dist/utils/outputs.d.ts
CHANGED
package/dist/utils/outputs.js
CHANGED
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.uploadJobOutputsToWwwAsync = uploadJobOutputsToWwwAsync;
|
|
7
|
+
exports.collectJobOutputs = collectJobOutputs;
|
|
7
8
|
const steps_1 = require("@expo/steps");
|
|
8
9
|
const nullthrows_1 = __importDefault(require("nullthrows"));
|
|
9
10
|
const turtleFetch_1 = require("./turtleFetch");
|
|
@@ -49,7 +50,6 @@ async function uploadJobOutputsToWwwAsync(ctx, { logger, expoApiV2BaseUrl }) {
|
|
|
49
50
|
throw err;
|
|
50
51
|
}
|
|
51
52
|
}
|
|
52
|
-
exports.uploadJobOutputsToWwwAsync = uploadJobOutputsToWwwAsync;
|
|
53
53
|
/** Function we use to get outputs of the whole job from steps. */
|
|
54
54
|
function collectJobOutputs({ jobOutputDefinitions, interpolationContext, }) {
|
|
55
55
|
const jobOutputs = {};
|
|
@@ -62,5 +62,4 @@ function collectJobOutputs({ jobOutputDefinitions, interpolationContext, }) {
|
|
|
62
62
|
}
|
|
63
63
|
return jobOutputs;
|
|
64
64
|
}
|
|
65
|
-
exports.collectJobOutputs = collectJobOutputs;
|
|
66
65
|
//# sourceMappingURL=outputs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputs.js","sourceRoot":"","sources":["../../src/utils/outputs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"outputs.js","sourceRoot":"","sources":["../../src/utils/outputs.ts"],"names":[],"mappings":"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","sourcesContent":["import { JobInterpolationContext } from '@expo/eas-build-job';\nimport { BuildStepGlobalContext, jsepEval } from '@expo/steps';\nimport { bunyan } from '@expo/logger';\nimport nullthrows from 'nullthrows';\n\nimport { turtleFetch } from './turtleFetch';\n\nexport async function uploadJobOutputsToWwwAsync(\n ctx: BuildStepGlobalContext,\n { logger, expoApiV2BaseUrl }: { logger: bunyan; expoApiV2BaseUrl: string }\n): Promise<void> {\n if (!ctx.staticContext.job.outputs) {\n logger.info('Job defines no outputs, skipping upload');\n return;\n }\n\n try {\n const workflowJobId = nullthrows(ctx.env.__WORKFLOW_JOB_ID);\n const robotAccessToken = nullthrows(ctx.staticContext.job.secrets?.robotAccessToken);\n\n const interpolationContext: JobInterpolationContext = {\n ...ctx.staticContext,\n env: ctx.env,\n always: () => true,\n never: () => false,\n success: () => !ctx.hasAnyPreviousStepFailed,\n failure: () => ctx.hasAnyPreviousStepFailed,\n fromJSON: (json: string) => JSON.parse(json),\n toJSON: (value: unknown) => JSON.stringify(value),\n contains: (value, substring) => value.includes(substring),\n startsWith: (value, prefix) => value.startsWith(prefix),\n endsWith: (value, suffix) => value.endsWith(suffix),\n };\n logger.debug({ dynamicValues: interpolationContext }, 'Using dynamic values');\n\n const outputs = collectJobOutputs({\n jobOutputDefinitions: ctx.staticContext.job.outputs,\n interpolationContext,\n });\n logger.info('Uploading outputs');\n\n await turtleFetch(new URL(`workflows/${workflowJobId}`, expoApiV2BaseUrl).toString(), 'PATCH', {\n json: { outputs },\n headers: {\n Authorization: `Bearer ${robotAccessToken}`,\n },\n timeout: 20000,\n logger,\n });\n } catch (err) {\n logger.error({ err }, 'Failed to upload outputs');\n throw err;\n }\n}\n\n/** Function we use to get outputs of the whole job from steps. */\nexport function collectJobOutputs({\n jobOutputDefinitions,\n interpolationContext,\n}: {\n jobOutputDefinitions: Record<string, string>;\n interpolationContext: JobInterpolationContext;\n}): Record<string, string | undefined> {\n const jobOutputs: Record<string, string | undefined> = {};\n for (const [outputKey, outputDefinition] of Object.entries(jobOutputDefinitions)) {\n const outputValue = outputDefinition.replace(/\\$\\{\\{(.+?)\\}\\}/g, (_match, expression) => {\n return `${jsepEval(expression, interpolationContext) ?? ''}`;\n });\n\n jobOutputs[outputKey] = outputValue;\n }\n\n return jobOutputs;\n}\n"]}
|
|
@@ -26,7 +26,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
29
|
+
exports.PackageManager = void 0;
|
|
30
|
+
exports.resolvePackageManager = resolvePackageManager;
|
|
31
|
+
exports.findPackagerRootDir = findPackagerRootDir;
|
|
32
|
+
exports.isAtLeastNpm7Async = isAtLeastNpm7Async;
|
|
33
|
+
exports.shouldUseFrozenLockfile = shouldUseFrozenLockfile;
|
|
34
|
+
exports.getPackageVersionFromPackageJson = getPackageVersionFromPackageJson;
|
|
30
35
|
const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
|
|
31
36
|
const PackageManagerUtils = __importStar(require("@expo/package-manager"));
|
|
32
37
|
const semver_1 = __importDefault(require("semver"));
|
|
@@ -58,17 +63,14 @@ function resolvePackageManager(directory) {
|
|
|
58
63
|
return PackageManager.YARN;
|
|
59
64
|
}
|
|
60
65
|
}
|
|
61
|
-
exports.resolvePackageManager = resolvePackageManager;
|
|
62
66
|
function findPackagerRootDir(currentDir) {
|
|
63
67
|
var _a;
|
|
64
68
|
return (_a = PackageManagerUtils.resolveWorkspaceRoot(currentDir)) !== null && _a !== void 0 ? _a : currentDir;
|
|
65
69
|
}
|
|
66
|
-
exports.findPackagerRootDir = findPackagerRootDir;
|
|
67
70
|
async function isAtLeastNpm7Async() {
|
|
68
71
|
const version = (await (0, turtle_spawn_1.default)('npm', ['--version'], { stdio: 'pipe' })).stdout.trim();
|
|
69
72
|
return semver_1.default.gte(version, '7.0.0');
|
|
70
73
|
}
|
|
71
|
-
exports.isAtLeastNpm7Async = isAtLeastNpm7Async;
|
|
72
74
|
function shouldUseFrozenLockfile({ env, sdkVersion, reactNativeVersion, }) {
|
|
73
75
|
if (env.EAS_NO_FROZEN_LOCKFILE) {
|
|
74
76
|
return false;
|
|
@@ -86,7 +88,6 @@ function shouldUseFrozenLockfile({ env, sdkVersion, reactNativeVersion, }) {
|
|
|
86
88
|
// new enough that we do want to use it.
|
|
87
89
|
return true;
|
|
88
90
|
}
|
|
89
|
-
exports.shouldUseFrozenLockfile = shouldUseFrozenLockfile;
|
|
90
91
|
const PackageJsonZ = zod_1.z.object({
|
|
91
92
|
dependencies: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
|
|
92
93
|
devDependencies: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
|
|
@@ -103,5 +104,4 @@ function getPackageVersionFromPackageJson({ packageJson, packageName, }) {
|
|
|
103
104
|
}
|
|
104
105
|
return (_d = semver_1.default.coerce(version)) === null || _d === void 0 ? void 0 : _d.version;
|
|
105
106
|
}
|
|
106
|
-
exports.getPackageVersionFromPackageJson = getPackageVersionFromPackageJson;
|
|
107
107
|
//# sourceMappingURL=packageManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageManager.js","sourceRoot":"","sources":["../../src/utils/packageManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"packageManager.js","sourceRoot":"","sources":["../../src/utils/packageManager.ts"],"names":[],"mappings":"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","sourcesContent":["import spawnAsync from '@expo/turtle-spawn';\nimport * as PackageManagerUtils from '@expo/package-manager';\nimport semver from 'semver';\nimport { z } from 'zod';\n\nexport enum PackageManager {\n YARN = 'yarn',\n NPM = 'npm',\n PNPM = 'pnpm',\n BUN = 'bun',\n}\n\nexport function resolvePackageManager(directory: string): PackageManager {\n try {\n const manager = PackageManagerUtils.resolvePackageManager(directory);\n if (manager === 'npm') {\n return PackageManager.NPM;\n } else if (manager === 'pnpm') {\n return PackageManager.PNPM;\n } else if (manager === 'bun') {\n return PackageManager.BUN;\n } else {\n return PackageManager.YARN;\n }\n } catch {\n return PackageManager.YARN;\n }\n}\n\nexport function findPackagerRootDir(currentDir: string): string {\n return PackageManagerUtils.resolveWorkspaceRoot(currentDir) ?? currentDir;\n}\n\nexport async function isAtLeastNpm7Async(): Promise<boolean> {\n const version = (await spawnAsync('npm', ['--version'], { stdio: 'pipe' })).stdout.trim();\n return semver.gte(version, '7.0.0');\n}\n\nexport function shouldUseFrozenLockfile({\n env,\n sdkVersion,\n reactNativeVersion,\n}: {\n env: Record<string, string | undefined>;\n sdkVersion: string | undefined;\n reactNativeVersion: string | undefined;\n}): boolean {\n if (env.EAS_NO_FROZEN_LOCKFILE) {\n return false;\n }\n\n if (sdkVersion && semver.lt(sdkVersion, '53.0.0')) {\n // Before SDK 53 we could not have used frozen lockfile.\n return false;\n }\n\n if (reactNativeVersion && semver.lt(reactNativeVersion, '0.79.0')) {\n // Before react-native 0.79 we could not have used frozen lockfile.\n return false;\n }\n\n // We either don't know expo and react-native versions,\n // so we can try to use frozen lockfile, or the versions are\n // new enough that we do want to use it.\n return true;\n}\n\nconst PackageJsonZ = z.object({\n dependencies: z.record(z.string(), z.string()).optional(),\n devDependencies: z.record(z.string(), z.string()).optional(),\n});\n\nexport function getPackageVersionFromPackageJson({\n packageJson,\n packageName,\n}: {\n packageJson: unknown;\n packageName: string;\n}): string | undefined {\n const parsedPackageJson = PackageJsonZ.safeParse(packageJson);\n if (!parsedPackageJson.success) {\n return undefined;\n }\n\n const version =\n parsedPackageJson.data.dependencies?.[packageName] ??\n parsedPackageJson.data.devDependencies?.[packageName];\n if (!version) {\n return undefined;\n }\n\n return semver.coerce(version)?.version;\n}\n"]}
|
|
@@ -3,11 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.prepareExecutableAsync =
|
|
6
|
+
exports.prepareExecutableAsync = prepareExecutableAsync;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
9
|
async function prepareExecutableAsync(ctx) {
|
|
10
10
|
await fs_extra_1.default.copy(path_1.default.join(__dirname, '../../bin/set-env'), path_1.default.join(ctx.buildExecutablesDirectory, 'set-env'));
|
|
11
11
|
}
|
|
12
|
-
exports.prepareExecutableAsync = prepareExecutableAsync;
|
|
13
12
|
//# sourceMappingURL=prepareBuildExecutable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareBuildExecutable.js","sourceRoot":"","sources":["../../src/utils/prepareBuildExecutable.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prepareBuildExecutable.js","sourceRoot":"","sources":["../../src/utils/prepareBuildExecutable.ts"],"names":[],"mappings":";;;;;AAOA,wDAKC;AAZD,gDAAwB;AAGxB,wDAA0B;AAInB,KAAK,UAAU,sBAAsB,CAAC,GAAsB;IACjE,MAAM,kBAAE,CAAC,IAAI,CACX,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,EACzC,cAAI,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,SAAS,CAAC,CACpD,CAAC;AACJ,CAAC","sourcesContent":["import path from 'path';\n\nimport { Job } from '@expo/eas-build-job';\nimport fs from 'fs-extra';\n\nimport { BuildContext } from '../context';\n\nexport async function prepareExecutableAsync(ctx: BuildContext<Job>): Promise<void> {\n await fs.copy(\n path.join(__dirname, '../../bin/set-env'),\n path.join(ctx.buildExecutablesDirectory, 'set-env')\n );\n}\n"]}
|
package/dist/utils/processes.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getParentAndDescendantProcessPidsAsync =
|
|
6
|
+
exports.getParentAndDescendantProcessPidsAsync = getParentAndDescendantProcessPidsAsync;
|
|
7
7
|
const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
|
|
8
8
|
async function getChildrenPidsAsync(parentPids) {
|
|
9
9
|
try {
|
|
@@ -35,5 +35,4 @@ async function getParentAndDescendantProcessPidsAsync(ppid) {
|
|
|
35
35
|
}
|
|
36
36
|
return [...children];
|
|
37
37
|
}
|
|
38
|
-
exports.getParentAndDescendantProcessPidsAsync = getParentAndDescendantProcessPidsAsync;
|
|
39
38
|
//# sourceMappingURL=processes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processes.js","sourceRoot":"","sources":["../../src/utils/processes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"processes.js","sourceRoot":"","sources":["../../src/utils/processes.ts"],"names":[],"mappings":";;;;;AAiBA,wFAcC;AA/BD,sEAAuC;AAEvC,KAAK,UAAU,oBAAoB,CAAC,UAAoB;IACtD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAK,EAAC,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YAChE,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM;aACjB,QAAQ,EAAE;aACV,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,sCAAsC,CAAC,IAAY;IACvE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,IAAI,gBAAgB,GAAG,IAAI,CAAC;IAC5B,OAAO,gBAAgB,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QACvD,gBAAgB,GAAG,KAAK,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,gBAAgB,GAAG,IAAI,CAAC;gBACxB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AACvB,CAAC","sourcesContent":["import spawn from '@expo/turtle-spawn';\n\nasync function getChildrenPidsAsync(parentPids: number[]): Promise<number[]> {\n try {\n const result = await spawn('pgrep', ['-P', parentPids.join(',')], {\n stdio: 'pipe',\n });\n return result.stdout\n .toString()\n .split('\\n')\n .map((i) => Number(i.trim()))\n .filter((i) => i);\n } catch {\n return [];\n }\n}\n\nexport async function getParentAndDescendantProcessPidsAsync(ppid: number): Promise<number[]> {\n const children = new Set<number>([ppid]);\n let shouldCheckAgain = true;\n while (shouldCheckAgain) {\n const pids = await getChildrenPidsAsync([...children]);\n shouldCheckAgain = false;\n for (const pid of pids) {\n if (!children.has(pid)) {\n shouldCheckAgain = true;\n children.add(pid);\n }\n }\n }\n return [...children];\n}\n"]}
|
package/dist/utils/project.js
CHANGED
|
@@ -3,7 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.isUsingModernYarnVersion = isUsingModernYarnVersion;
|
|
7
|
+
exports.runExpoCliCommand = runExpoCliCommand;
|
|
8
|
+
exports.readPackageJson = readPackageJson;
|
|
7
9
|
const path_1 = __importDefault(require("path"));
|
|
8
10
|
const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
|
|
9
11
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
@@ -16,7 +18,6 @@ async function isUsingModernYarnVersion(projectDir) {
|
|
|
16
18
|
const yarnrcRootPath = path_1.default.join((0, packageManager_1.findPackagerRootDir)(projectDir), '.yarnrc.yml');
|
|
17
19
|
return (await fs_extra_1.default.pathExists(yarnrcPath)) || (await fs_extra_1.default.pathExists(yarnrcRootPath));
|
|
18
20
|
}
|
|
19
|
-
exports.isUsingModernYarnVersion = isUsingModernYarnVersion;
|
|
20
21
|
function runExpoCliCommand({ packageManager, args, options, }) {
|
|
21
22
|
const argsWithExpo = ['expo', ...args];
|
|
22
23
|
if (packageManager === packageManager_1.PackageManager.NPM) {
|
|
@@ -35,7 +36,6 @@ function runExpoCliCommand({ packageManager, args, options, }) {
|
|
|
35
36
|
throw new Error(`Unsupported package manager: ${packageManager}`);
|
|
36
37
|
}
|
|
37
38
|
}
|
|
38
|
-
exports.runExpoCliCommand = runExpoCliCommand;
|
|
39
39
|
function readPackageJson(projectDir) {
|
|
40
40
|
const packageJsonPath = path_1.default.join(projectDir, 'package.json');
|
|
41
41
|
if (!fs_extra_1.default.pathExistsSync(packageJsonPath)) {
|
|
@@ -48,5 +48,4 @@ function readPackageJson(projectDir) {
|
|
|
48
48
|
throw new Error(`Failed to parse or read package.json: ${err.message}`);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
exports.readPackageJson = readPackageJson;
|
|
52
51
|
//# sourceMappingURL=project.js.map
|