@expo/cli 58.1.7 → 58.1.9

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.
Files changed (91) hide show
  1. package/build/src/api/rest/wrapFetchWithUserAgent.js +1 -1
  2. package/build/src/command/events/eventsAsync.d.ts +2 -0
  3. package/build/src/command/events/eventsAsync.js +31 -0
  4. package/build/src/command/events/eventsAsync.js.map +1 -0
  5. package/build/src/command/events/help.d.ts +2 -0
  6. package/build/src/command/events/help.js +69 -0
  7. package/build/src/command/events/help.js.map +1 -0
  8. package/build/src/command/events/index.d.ts +2 -0
  9. package/build/src/command/events/index.js +59 -0
  10. package/build/src/command/events/index.js.map +1 -0
  11. package/build/src/command/events/resolveOptions.d.ts +10 -0
  12. package/build/src/command/events/resolveOptions.js +23 -0
  13. package/build/src/command/events/resolveOptions.js.map +1 -0
  14. package/build/src/command/index.d.ts +2 -0
  15. package/build/src/command/index.js +65 -0
  16. package/build/src/command/index.js.map +1 -0
  17. package/build/src/command/ps/help.d.ts +2 -0
  18. package/build/src/command/ps/help.js +52 -0
  19. package/build/src/command/ps/help.js.map +1 -0
  20. package/build/src/command/ps/index.d.ts +2 -0
  21. package/build/src/command/ps/index.js +53 -0
  22. package/build/src/command/ps/index.js.map +1 -0
  23. package/build/src/command/ps/psAsync.d.ts +2 -0
  24. package/build/src/command/ps/psAsync.js +49 -0
  25. package/build/src/command/ps/psAsync.js.map +1 -0
  26. package/build/src/command/ps/resolveOptions.d.ts +9 -0
  27. package/build/src/command/ps/resolveOptions.js +20 -0
  28. package/build/src/command/ps/resolveOptions.js.map +1 -0
  29. package/build/src/command/sessions.d.ts +4 -0
  30. package/build/src/command/sessions.js +80 -0
  31. package/build/src/command/sessions.js.map +1 -0
  32. package/build/src/command/utils.d.ts +5 -0
  33. package/build/src/command/utils.js +62 -0
  34. package/build/src/command/utils.js.map +1 -0
  35. package/build/src/index.js +28 -7
  36. package/build/src/index.js.map +1 -1
  37. package/build/src/prebuild/prebuildAsync.d.ts +1 -1
  38. package/build/src/prebuild/prebuildAsync.js +17 -3
  39. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  40. package/build/src/prebuild/setupSwiftPM.d.ts +20 -0
  41. package/build/src/prebuild/setupSwiftPM.js +171 -0
  42. package/build/src/prebuild/setupSwiftPM.js.map +1 -0
  43. package/build/src/run/index.js +1 -1
  44. package/build/src/run/index.js.map +1 -1
  45. package/build/src/start/index.js +5 -2
  46. package/build/src/start/index.js.map +1 -1
  47. package/build/src/start/server/BundlerDevServer.d.ts +1 -0
  48. package/build/src/start/server/BundlerDevServer.js +9 -4
  49. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  50. package/build/src/start/server/DevServerManager.d.ts +1 -0
  51. package/build/src/start/server/DevServerManager.js +21 -0
  52. package/build/src/start/server/DevServerManager.js.map +1 -1
  53. package/build/src/start/server/metro/MetroBundlerDevServer.js +39 -15
  54. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  55. package/build/src/start/server/metro/MetroTerminalReporter.d.ts +16 -5
  56. package/build/src/start/server/metro/MetroTerminalReporter.js +61 -28
  57. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  58. package/build/src/start/server/metro/TerminalReporter.types.d.ts +2 -0
  59. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +1 -1
  60. package/build/src/start/server/metro/dev-server/createMessageSocket.js +1 -8
  61. package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -1
  62. package/build/src/start/server/metro/instantiateMetro.js +7 -3
  63. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  64. package/build/src/start/server/metro/metroErrorInterface.d.ts +19 -3
  65. package/build/src/start/server/metro/metroErrorInterface.js +18 -2
  66. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  67. package/build/src/start/server/middleware/ExpoMiddleware.js +3 -11
  68. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  69. package/build/src/start/server/middleware/ManifestMiddleware.js +1 -8
  70. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  71. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +2 -9
  72. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  73. package/build/src/start/server/middleware/ServeStaticMiddleware.js +1 -8
  74. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  75. package/build/src/start/server/middleware/resolvePlatform.js +2 -9
  76. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  77. package/build/src/utils/build-cache-providers/index.js +14 -44
  78. package/build/src/utils/build-cache-providers/index.js.map +1 -1
  79. package/build/src/utils/cocoapods.js +10 -0
  80. package/build/src/utils/cocoapods.js.map +1 -1
  81. package/build/src/utils/errors.d.ts +9 -1
  82. package/build/src/utils/errors.js +16 -2
  83. package/build/src/utils/errors.js.map +1 -1
  84. package/build/src/utils/metadata.d.ts +15 -0
  85. package/build/src/utils/metadata.js +39 -0
  86. package/build/src/utils/metadata.js.map +1 -0
  87. package/build/src/utils/nodeEnv.js +2 -0
  88. package/build/src/utils/nodeEnv.js.map +1 -1
  89. package/build/src/utils/telemetry/clients/FetchClient.js +1 -1
  90. package/build/src/utils/telemetry/utils/context.js +1 -1
  91. package/package.json +20 -20
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ 0 && (module.exports = {
6
+ handleOutputError: null,
7
+ installOutputErrorHandler: null,
8
+ reportError: null,
9
+ resolveSelector: null
10
+ });
11
+ function _export(target, all) {
12
+ for(var name in all)Object.defineProperty(target, name, {
13
+ enumerable: true,
14
+ get: Object.getOwnPropertyDescriptor(all, name).get
15
+ });
16
+ }
17
+ _export(exports, {
18
+ get handleOutputError () {
19
+ return handleOutputError;
20
+ },
21
+ get installOutputErrorHandler () {
22
+ return installOutputErrorHandler;
23
+ },
24
+ get reportError () {
25
+ return reportError;
26
+ },
27
+ get resolveSelector () {
28
+ return resolveSelector;
29
+ }
30
+ });
31
+ function _chalk() {
32
+ const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
33
+ _chalk = function() {
34
+ return data;
35
+ };
36
+ return data;
37
+ }
38
+ function _interop_require_default(obj) {
39
+ return obj && obj.__esModule ? obj : {
40
+ default: obj
41
+ };
42
+ }
43
+ function installOutputErrorHandler() {
44
+ process.stdout.on('error', handleOutputError);
45
+ }
46
+ function handleOutputError(error) {
47
+ // Exit also closes a live event subscription when its output reader closes.
48
+ if (error.code === 'EPIPE') process.exit(0);
49
+ throw error;
50
+ }
51
+ function reportError(error) {
52
+ process.stderr.write(`${_chalk().default.red(error instanceof Error ? error.message : String(error))}\n`);
53
+ process.exitCode = 1;
54
+ }
55
+ function resolveSelector(positionals) {
56
+ if (positionals.length > 1) {
57
+ throw new Error('Expected at most one session selector. Quote selectors containing spaces.');
58
+ }
59
+ return positionals[0];
60
+ }
61
+
62
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["command/utils.ts"],"sourcesContent":[null],"names":["handleOutputError","installOutputErrorHandler","reportError","resolveSelector","process","stdout","on","error","code","exit","stderr","write","chalk","red","Error","message","String","exitCode","positionals","length"],"mappings":";;;;;;;;;;;;;;;;;QAMgBA;eAAAA;;QAJAC;eAAAA;;QAWAC;eAAAA;;QAKAC;eAAAA;;;;gEAlBE;;;;;;;;;;;AAEX,SAASF;IACdG,QAAQC,MAAM,CAACC,EAAE,CAAC,SAASN;AAC7B;AAEO,SAASA,kBAAkBO,KAA4B;IAC5D,4EAA4E;IAC5E,IAAIA,MAAMC,IAAI,KAAK,SAASJ,QAAQK,IAAI,CAAC;IACzC,MAAMF;AACR;AAGO,SAASL,YAAYK,KAAc;IACxCH,QAAQM,MAAM,CAACC,KAAK,CAAC,GAAGC,gBAAK,CAACC,GAAG,CAACN,iBAAiBO,QAAQP,MAAMQ,OAAO,GAAGC,OAAOT,QAAQ,EAAE,CAAC;IAC7FH,QAAQa,QAAQ,GAAG;AACrB;AAEO,SAASd,gBAAgBe,WAAqB;IACnD,IAAIA,YAAYC,MAAM,GAAG,GAAG;QAC1B,MAAM,IAAIL,MAAM;IAClB;IACA,OAAOI,WAAW,CAAC,EAAE;AACvB"}
@@ -57,6 +57,10 @@ const commands = {
57
57
  'export:web': ()=>import('../src/export/web/index.js').then((i)=>i.expoExportWeb),
58
58
  'export:embed': ()=>import('../src/export/embed/index.js').then((i)=>i.expoExportEmbed),
59
59
  serve: ()=>import('../src/serve/index.js').then((i)=>i.expoServe),
60
+ // Recorded command sessions (primarily for agents).
61
+ command: ()=>import('../src/command/index.js').then((i)=>i.expoCommand),
62
+ 'command:ps': ()=>import('../src/command/ps/index.js').then((i)=>i.expoCommandPs),
63
+ 'command:events': ()=>import('../src/command/events/index.js').then((i)=>i.expoCommandEvents),
60
64
  // Auxiliary commands
61
65
  install: ()=>import('../src/install/index.js').then((i)=>i.expoInstall),
62
66
  add: ()=>import('../src/install/index.js').then((i)=>i.expoInstall),
@@ -85,15 +89,21 @@ const args = (0, _arg().default)({
85
89
  const isSubcommand = !!(args._[0] && commands[args._[0]]);
86
90
  const command = isSubcommand ? args._[0] : defaultCmd;
87
91
  const commandArgs = isSubcommand ? args._.slice(1) : args._;
92
+ const isCommandInspection = command === 'command' || command === 'command:ps' || command === 'command:events';
88
93
  // Setup event logger output before any console output. This single install handles explicit
89
94
  // LOG_EVENTS targets, parent IPC, and bounded command sessions in 2g's precedence order.
90
- (0, _2g().installEventLogger)({
91
- command: args['--version'] ? 'expo --version' : args['--help'] && !isSubcommand ? 'expo --help' : `expo ${command}`,
92
- version: "58.1.7"
93
- });
95
+ // Inspectors must not create sessions or mix their own events into JSON/JSONL output.
96
+ if (!isCommandInspection) {
97
+ (0, _2g().installEventLogger)({
98
+ command: args['--version'] ? 'expo --version' : args['--help'] && !isSubcommand ? 'expo --help' : `expo ${command}`,
99
+ metadata: {
100
+ version: "58.1.9"
101
+ }
102
+ });
103
+ }
94
104
  if (args['--version']) {
95
105
  // Version is added in the build script.
96
- console.log("58.1.7");
106
+ console.log("58.1.9");
97
107
  process.exit(0);
98
108
  }
99
109
  if (args['--non-interactive']) {
@@ -112,7 +122,7 @@ if (nodeVersion[0] < NODE_MIN[0] || nodeVersion[0] === NODE_MIN[0] && nodeVersio
112
122
  }
113
123
  // Handle `--help` flag
114
124
  if (!isSubcommand && args['--help']) {
115
- const { login, logout, whoami, register, start, install, add, export: _export, config, customize, prebuild, 'run:ios': runIos, 'run:android': runAndroid, // NOTE(EvanBacon): Don't document this command as it's a temporary
125
+ const { login, logout, whoami, register, start, install, add, export: _export, config, customize, prebuild, 'run:ios': runIos, 'run:android': runAndroid, command: commandInspect, 'command:ps': commandPs, 'command:events': commandEvents, // NOTE(EvanBacon): Don't document this command as it's a temporary
116
126
  // workaround until we can use `expo export` for all production bundling.
117
127
  // https://github.com/expo/expo/pull/21396/files#r1121025873
118
128
  'export:embed': exportEmbed_unused, // The export:web command is deprecated. Hide it from the help prompt.
@@ -148,6 +158,17 @@ if (!isSubcommand && args['--help']) {
148
158
  register
149
159
  }).join(', ')}}
150
160
 
161
+ {bold Agent Commands}
162
+ ${Object.keys({
163
+ command: commandInspect,
164
+ 'command:ps': commandPs,
165
+ 'command:events': commandEvents
166
+ }).join(', ')}
167
+ Discover recorded Expo CLI sessions and replay structured events:
168
+ {dim $} npx expo command:ps --active --json
169
+ {dim $} npx expo command:events <session-id> --since 5m
170
+ Add {bold --help} to either command for selectors and filtering options.
171
+
151
172
  {bold Options}
152
173
  --version, -v Version number
153
174
  --help, -h Usage info
@@ -230,7 +251,7 @@ commands[command]().then((exec)=>{
230
251
  // NOTE(EvanBacon): Track some basic telemetry events indicating the command
231
252
  // that was run. This can be disabled with the $EXPO_NO_TELEMETRY environment variable.
232
253
  // We do this to determine how well deprecations are going before removing a command.
233
- if (!(0, _getenv().boolish)('EXPO_NO_TELEMETRY', false)) {
254
+ if (!isCommandInspection && !(0, _getenv().boolish)('EXPO_NO_TELEMETRY', false)) {
234
255
  const { recordCommand } = require('../src/utils/telemetry');
235
256
  recordCommand(command);
236
257
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"sourcesContent":[null],"names":["boolish","test","process","env","DEBUG","EXPO_DEBUG","LOG_DEBUG","defaultCmd","commands","run","then","i","expoRun","expoRunIos","expoRunAndroid","start","expoStart","prebuild","expoPrebuild","config","expoConfig","export","expoExport","expoExportWeb","expoExportEmbed","serve","expoServe","install","expoInstall","add","customize","expoCustomize","lint","expoLint","login","expoLogin","logout","expoLogout","register","expoRegister","whoami","expoWhoami","args","arg","Boolean","permissive","isSubcommand","_","command","commandArgs","slice","installEventLogger","version","console","log","exit","warn","chalk","yellow","NODE_MIN","nodeVersion","split","map","Number","error","red","join","_export","runIos","runAndroid","exportEmbed_unused","exportWeb_unused","_run","_lint","others","Object","keys","migrationMap","init","eject","web","doctor","upgrade","publish","url","webhooks","subcommand","replacement","instruction","deprecated","includes","push","on","exec","recordCommand","require"],"mappings":"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"}
1
+ {"version":3,"sources":["index.ts"],"sourcesContent":[null],"names":["boolish","test","process","env","DEBUG","EXPO_DEBUG","LOG_DEBUG","defaultCmd","commands","run","then","i","expoRun","expoRunIos","expoRunAndroid","start","expoStart","prebuild","expoPrebuild","config","expoConfig","export","expoExport","expoExportWeb","expoExportEmbed","serve","expoServe","command","expoCommand","expoCommandPs","expoCommandEvents","install","expoInstall","add","customize","expoCustomize","lint","expoLint","login","expoLogin","logout","expoLogout","register","expoRegister","whoami","expoWhoami","args","arg","Boolean","permissive","isSubcommand","_","commandArgs","slice","isCommandInspection","installEventLogger","metadata","version","console","log","exit","warn","chalk","yellow","NODE_MIN","nodeVersion","split","map","Number","error","red","join","_export","runIos","runAndroid","commandInspect","commandPs","commandEvents","exportEmbed_unused","exportWeb_unused","_run","_lint","others","Object","keys","migrationMap","init","eject","web","doctor","upgrade","publish","url","webhooks","subcommand","replacement","instruction","deprecated","includes","push","on","exec","recordCommand","require"],"mappings":"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"}
@@ -19,7 +19,7 @@ export type PrebuildResults = {
19
19
  * 1. Create native projects (ios, android).
20
20
  * 2. Install node modules.
21
21
  * 3. Apply config to native projects.
22
- * 4. Install CocoaPods.
22
+ * 4. Install CocoaPods, or set up Swift Package Manager for iOS instead.
23
23
  */
24
24
  export declare function prebuildAsync(projectRoot: string, options: {
25
25
  /** Should install node modules and cocoapods. */
@@ -41,6 +41,7 @@ const _configureProjectAsync = require("./configureProjectAsync");
41
41
  const _ensureConfigAsync = require("./ensureConfigAsync");
42
42
  const _events = require("./events");
43
43
  const _resolveOptions = require("./resolveOptions");
44
+ const _setupSwiftPM = require("./setupSwiftPM");
44
45
  const _updateFromTemplate = require("./updateFromTemplate");
45
46
  function _interop_require_default(obj) {
46
47
  return obj && obj.__esModule ? obj : {
@@ -48,7 +49,8 @@ function _interop_require_default(obj) {
48
49
  };
49
50
  }
50
51
  async function prebuildAsync(projectRoot, options) {
51
- const { platforms } = (0, _config().getConfig)(projectRoot).exp;
52
+ const initialExp = (0, _config().getConfig)(projectRoot).exp;
53
+ const { platforms } = initialExp;
52
54
  if (platforms?.length) {
53
55
  // Filter out platforms that aren't in the app.json.
54
56
  const finalPlatforms = options.platforms.filter((platform)=>platforms.includes(platform));
@@ -84,6 +86,11 @@ async function prebuildAsync(projectRoot, options) {
84
86
  options.platforms = (0, _resolveOptions.ensureValidPlatforms)(options.platforms);
85
87
  // Assert if no platforms are left over after filtering.
86
88
  (0, _resolveOptions.assertPlatforms)(options.platforms);
89
+ const useSwiftPM = options.platforms.includes('ios') && (0, _setupSwiftPM.isSwiftPMEnabled)(initialExp);
90
+ if (options.platforms.includes('ios') && !useSwiftPM) {
91
+ // Runs after `--clean`, which already removed the marker with the ios directory.
92
+ (0, _setupSwiftPM.assertNoSwiftPMMarker)(projectRoot);
93
+ }
87
94
  const donePrebuild = _events.event.span();
88
95
  // Get the Expo config, create it if missing.
89
96
  const { exp, pkg } = await (0, _ensureConfigAsync.ensureConfigAsync)(projectRoot, {
@@ -147,10 +154,17 @@ async function prebuildAsync(projectRoot, options) {
147
154
  configSyncingStep.fail('Prebuild failed');
148
155
  throw error;
149
156
  }
150
- // Install CocoaPods
151
157
  let podsInstalled = false;
152
158
  // err towards running pod install less because it's slow and users can easily run npx pod-install afterwards.
153
- if (options.platforms.includes('ios') && options.install && needsPodInstall) {
159
+ if (useSwiftPM) {
160
+ (0, _events.event)('pods:installed', {
161
+ ms: 0,
162
+ skipped: true
163
+ });
164
+ await (0, _setupSwiftPM.setupSwiftPMAsync)(projectRoot, {
165
+ install: !!options.install
166
+ });
167
+ } else if (options.platforms.includes('ios') && options.install && needsPodInstall) {
154
168
  const { installCocoaPodsAsync } = await import('../utils/cocoapods.js');
155
169
  const startedAt = Date.now();
156
170
  podsInstalled = await installCocoaPodsAsync(projectRoot);
@@ -1 +1 @@
1
- {"version":3,"sources":["prebuild/prebuildAsync.ts"],"sourcesContent":[null],"names":["prebuildAsync","projectRoot","options","platforms","getConfig","exp","length","finalPlatforms","filter","platform","includes","requestedPlatforms","join","Log","warn","chalk","clean","existingPlatforms","getExistingNativePlatformsAsync","maybeBailOnGitStatusAsync","maybeBailOnNativeModuleAsync","clearNativeFolder","promptToClearMalformedNativeProjectsAsync","ensureValidPlatforms","assertPlatforms","donePrebuild","event","span","pkg","ensureConfigAsync","hasNewProjectFiles","needsPodInstall","templateChecksum","changedDependencies","updateFromTemplateAsync","template","resolveTemplateOption","undefined","skipDependencyUpdate","install","packageManager","npm","clearNodeModulesAsync","log","gray","confirmAsync","message","initial","startedAt","Date","now","installAsync","yarn","pnpm","bun","silent","env","EXPO_DEBUG","CI","resolvePackageManagerName","ms","configSyncingStep","succeed","text","fail","error","logNewSection","profile","configureProjectAsync","podsInstalled","installCocoaPodsAsync","skipped","inlineModules","experiments","updateXcodeProject","watchedDirectories","xcodeProjectTargets","name","nodeInstall","podInstall"],"mappings":"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"}
1
+ {"version":3,"sources":["prebuild/prebuildAsync.ts"],"sourcesContent":[null],"names":["prebuildAsync","projectRoot","options","initialExp","getConfig","exp","platforms","length","finalPlatforms","filter","platform","includes","requestedPlatforms","join","Log","warn","chalk","clean","existingPlatforms","getExistingNativePlatformsAsync","maybeBailOnGitStatusAsync","maybeBailOnNativeModuleAsync","clearNativeFolder","promptToClearMalformedNativeProjectsAsync","ensureValidPlatforms","assertPlatforms","useSwiftPM","isSwiftPMEnabled","assertNoSwiftPMMarker","donePrebuild","event","span","pkg","ensureConfigAsync","hasNewProjectFiles","needsPodInstall","templateChecksum","changedDependencies","updateFromTemplateAsync","template","resolveTemplateOption","undefined","skipDependencyUpdate","install","packageManager","npm","clearNodeModulesAsync","log","gray","confirmAsync","message","initial","startedAt","Date","now","installAsync","yarn","pnpm","bun","silent","env","EXPO_DEBUG","CI","resolvePackageManagerName","ms","configSyncingStep","succeed","text","fail","error","logNewSection","profile","configureProjectAsync","podsInstalled","skipped","setupSwiftPMAsync","installCocoaPodsAsync","inlineModules","experiments","updateXcodeProject","watchedDirectories","xcodeProjectTargets","name","nodeInstall","podInstall"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { ExpoConfig } from '@expo/config';
2
+ /**
3
+ * Returns the marker React Native writes to `ios/<name>.xcodeproj` when it sets up Swift Package
4
+ * Manager, or `null` when the iOS project does not use Swift Package Manager.
5
+ */
6
+ export declare function getSwiftPMMarkerPath(projectRoot: string): string | null;
7
+ /** Returns whether the app config opts iOS into Swift Package Manager (preview). */
8
+ export declare function isSwiftPMEnabled(exp: ExpoConfig): boolean;
9
+ /**
10
+ * Throws when the iOS project uses Swift Package Manager although the app config does not enable
11
+ * it, so CocoaPods never runs against a Swift Package Manager project.
12
+ */
13
+ export declare function assertNoSwiftPMMarker(projectRoot: string): void;
14
+ /**
15
+ * Sets up the iOS project with Swift Package Manager instead of CocoaPods, or updates an existing
16
+ * setup, with React Native's `setup-apple-spm.js`. Prints the command instead when it cannot run here.
17
+ */
18
+ export declare function setupSwiftPMAsync(projectRoot: string, { install }: {
19
+ install: boolean;
20
+ }): Promise<void>;
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ 0 && (module.exports = {
6
+ assertNoSwiftPMMarker: null,
7
+ getSwiftPMMarkerPath: null,
8
+ isSwiftPMEnabled: null,
9
+ setupSwiftPMAsync: null
10
+ });
11
+ function _export(target, all) {
12
+ for(var name in all)Object.defineProperty(target, name, {
13
+ enumerable: true,
14
+ get: Object.getOwnPropertyDescriptor(all, name).get
15
+ });
16
+ }
17
+ _export(exports, {
18
+ get assertNoSwiftPMMarker () {
19
+ return assertNoSwiftPMMarker;
20
+ },
21
+ get getSwiftPMMarkerPath () {
22
+ return getSwiftPMMarkerPath;
23
+ },
24
+ get isSwiftPMEnabled () {
25
+ return isSwiftPMEnabled;
26
+ },
27
+ get setupSwiftPMAsync () {
28
+ return setupSwiftPMAsync;
29
+ }
30
+ });
31
+ function _spawnasync() {
32
+ const data = /*#__PURE__*/ _interop_require_default(require("@expo/spawn-async"));
33
+ _spawnasync = function() {
34
+ return data;
35
+ };
36
+ return data;
37
+ }
38
+ function _chalk() {
39
+ const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
40
+ _chalk = function() {
41
+ return data;
42
+ };
43
+ return data;
44
+ }
45
+ function _fs() {
46
+ const data = /*#__PURE__*/ _interop_require_default(require("fs"));
47
+ _fs = function() {
48
+ return data;
49
+ };
50
+ return data;
51
+ }
52
+ function _module() {
53
+ const data = /*#__PURE__*/ _interop_require_default(require("module"));
54
+ _module = function() {
55
+ return data;
56
+ };
57
+ return data;
58
+ }
59
+ function _path() {
60
+ const data = /*#__PURE__*/ _interop_require_default(require("path"));
61
+ _path = function() {
62
+ return data;
63
+ };
64
+ return data;
65
+ }
66
+ const _log = require("../log");
67
+ const _env = require("../utils/env");
68
+ const _errors = require("../utils/errors");
69
+ const _ora = require("../utils/ora");
70
+ function _interop_require_default(obj) {
71
+ return obj && obj.__esModule ? obj : {
72
+ default: obj
73
+ };
74
+ }
75
+ // The command the template Podfile passes to `use_native_modules!`. Without it, React Native
76
+ // falls back to `@react-native-community/cli config`, which Expo projects do not install.
77
+ const AUTOLINKING_CONFIG_COMMAND = JSON.stringify([
78
+ 'node',
79
+ '--no-warnings',
80
+ '--eval',
81
+ "require('expo/bin/autolinking')",
82
+ 'expo-modules-autolinking',
83
+ 'react-native-config',
84
+ '--json',
85
+ '--platform',
86
+ 'ios'
87
+ ]);
88
+ function getSwiftPMMarkerPath(projectRoot) {
89
+ const iosDir = _path().default.join(projectRoot, 'ios');
90
+ let entries;
91
+ try {
92
+ entries = _fs().default.readdirSync(iosDir);
93
+ } catch {
94
+ return null;
95
+ }
96
+ return entries.filter((entry)=>entry.endsWith('.xcodeproj')).map((entry)=>_path().default.join(iosDir, entry, '.spm-injected.json')).find((marker)=>_fs().default.existsSync(marker)) ?? null;
97
+ }
98
+ function isSwiftPMEnabled(exp) {
99
+ // `experiments.swiftPackageManager` is not in the generated ExpoConfig schema yet.
100
+ const experiments = exp.experiments;
101
+ return experiments?.swiftPackageManager === true;
102
+ }
103
+ function assertNoSwiftPMMarker(projectRoot) {
104
+ const marker = getSwiftPMMarkerPath(projectRoot);
105
+ if (marker) {
106
+ throw new _errors.CommandError('SWIFTPM_NOT_ENABLED', `The iOS project uses Swift Package Manager (${_path().default.relative(projectRoot, marker)} exists), but experiments.swiftPackageManager is not enabled in the app config. To keep Swift Package Manager, add "experiments": { "swiftPackageManager": true } to the app config. To switch back to CocoaPods, run \`npx expo prebuild --clean\` to regenerate the iOS project.`);
107
+ }
108
+ }
109
+ async function setupSwiftPMAsync(projectRoot, { install }) {
110
+ const script = resolveSetupAppleSpmScript(projectRoot);
111
+ const args = [
112
+ ...getSwiftPMMarkerPath(projectRoot) ? [
113
+ 'update'
114
+ ] : [
115
+ 'add',
116
+ '--deintegrate'
117
+ ],
118
+ '--yes',
119
+ '--config-command',
120
+ AUTOLINKING_CONFIG_COMMAND
121
+ ];
122
+ const retryCommand = formatShellCommand([
123
+ 'node',
124
+ script ? _path().default.relative(projectRoot, script).split(_path().default.sep).join('/') : 'node_modules/react-native/scripts/setup-apple-spm.js',
125
+ ...args
126
+ ]);
127
+ if (!install || process.platform !== 'darwin') {
128
+ _log.Log.log(install ? 'Skipped setting up Swift Package Manager for iOS because it requires macOS. On a Mac, run this command in the project directory:' : (0, _chalk().default)`Skipped setting up Swift Package Manager for iOS because of {bold --no-install}. To finish, run this command in the project directory:`);
129
+ _log.Log.log(_chalk().default.bold(` ${retryCommand}`));
130
+ return;
131
+ }
132
+ if (!script) {
133
+ throw new _errors.CommandError('SWIFTPM_UNSUPPORTED', `Could not set up Swift Package Manager for iOS because this project's React Native version does not include react-native/scripts/setup-apple-spm.js. Swift Package Manager requires React Native 0.88 or later. Upgrade react-native, or remove experiments.swiftPackageManager from the app config and run \`npx expo prebuild --clean\` to use CocoaPods.`);
134
+ }
135
+ const step = (0, _ora.logNewSection)('Setting up Swift Package Manager for iOS');
136
+ try {
137
+ await (0, _spawnasync().default)(process.execPath, [
138
+ script,
139
+ ...args
140
+ ], {
141
+ cwd: projectRoot,
142
+ stdio: _env.env.EXPO_DEBUG ? 'inherit' : 'pipe'
143
+ });
144
+ } catch (error) {
145
+ step.fail('Failed to set up Swift Package Manager for iOS');
146
+ const { stderr, stdout } = error;
147
+ const output = (stderr || stdout || error.message).trim();
148
+ throw new _errors.CommandError('SWIFTPM_SETUP_FAILED', [
149
+ `Could not set up Swift Package Manager for iOS because React Native's setup-apple-spm.js failed:`,
150
+ output,
151
+ '',
152
+ `Fix the error above, then run this command in the project directory to finish the setup:`,
153
+ ` ${retryCommand}`
154
+ ].join('\n'));
155
+ }
156
+ step.succeed('Set up Swift Package Manager for iOS');
157
+ }
158
+ function resolveSetupAppleSpmScript(projectRoot) {
159
+ try {
160
+ const reactNativePackageJson = _module().default.createRequire(_path().default.join(projectRoot, 'package.json')).resolve('react-native/package.json');
161
+ const script = _path().default.join(_path().default.dirname(reactNativePackageJson), 'scripts', 'setup-apple-spm.js');
162
+ return _fs().default.existsSync(script) ? script : null;
163
+ } catch {
164
+ return null;
165
+ }
166
+ }
167
+ function formatShellCommand(argv) {
168
+ return argv.map((arg)=>/^[\w@%+=:,./-]+$/.test(arg) ? arg : `'${arg.replace(/'/g, `'\\''`)}'`).join(' ');
169
+ }
170
+
171
+ //# sourceMappingURL=setupSwiftPM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["prebuild/setupSwiftPM.ts"],"sourcesContent":[null],"names":["assertNoSwiftPMMarker","getSwiftPMMarkerPath","isSwiftPMEnabled","setupSwiftPMAsync","AUTOLINKING_CONFIG_COMMAND","JSON","stringify","projectRoot","iosDir","path","join","entries","fs","readdirSync","filter","entry","endsWith","map","find","marker","existsSync","exp","experiments","swiftPackageManager","CommandError","relative","install","script","resolveSetupAppleSpmScript","args","retryCommand","formatShellCommand","split","sep","process","platform","Log","log","chalk","bold","step","logNewSection","spawnAsync","execPath","cwd","stdio","env","EXPO_DEBUG","error","fail","stderr","stdout","output","message","trim","succeed","reactNativePackageJson","Module","createRequire","resolve","dirname","argv","arg","test","replace"],"mappings":"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"}
@@ -76,7 +76,7 @@ const expoRun = async (argv)=>{
76
76
  throw new _errors.CommandError('UNSUPPORTED_PLATFORM', `Unsupported platform: ${platform}`);
77
77
  }
78
78
  } catch (error) {
79
- (0, _errors.logCmdError)(error);
79
+ return (0, _errors.logCmdError)(error);
80
80
  }
81
81
  };
82
82
 
@@ -1 +1 @@
1
- {"version":3,"sources":["run/index.ts"],"sourcesContent":[null],"names":["expoRun","argv","args","assertWithOptionsArgs","Boolean","permissive","platform","_","startsWith","argsWithoutPlatform","splice","printHelp","chalk","selectAsync","title","value","logPlatformRunCommand","expoRunAndroid","expoRunIos","CommandError","error","logCmdError"],"mappings":";;;;;+BAQaA;;;eAAAA;;;;gEAPK;;;;;;sBAG+B;wBACP;uBACJ;;;;;;AAE/B,MAAMA,UAAmB,OAAOC;IACrC,MAAMC,OAAOC,IAAAA,2BAAqB,EAChC;QACE,QAAQ;QACR,UAAUC;QACV,UAAU;QACV,MAAM;IACR,GACA;QACEH;QACA,2DAA2D;QAC3DI,YAAY;IACd;IAGF,IAAI;QACF,IAAI,CAACC,SAAS,GAAGJ,KAAKK,CAAC,IAAI,EAAE;QAE7B,0CAA0C;QAC1C,IAAID,UAAUE,WAAW,MAAM;YAC7BF,WAAW;QACb;QAEA,wDAAwD;QACxD,MAAMG,sBAAsB,CAACH,WAAWL,OAAOA,MAAMS,OAAO;QAE5D,oDAAoD;QACpD,IAAI,CAACJ,YAAYJ,IAAI,CAAC,SAAS,EAAE;YAC/BS,IAAAA,eAAS,EACP,8BACA,CAAC,0BAA0B,CAAC,EAC5BC,IAAAA,gBAAK,CAAA,CAAC,mEAAmE,CAAC;QAE9E;QAEA,IAAI,CAACN,UAAU;YACb,MAAM,EAAEO,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC;YACrCP,WAAW,MAAMO,YAAY,8BAA8B;gBACzD;oBAAEC,OAAO;oBAAWC,OAAO;gBAAU;gBACrC;oBAAED,OAAO;oBAAOC,OAAO;gBAAM;aAC9B;QACH;QAEAC,IAAAA,4BAAqB,EAACV,UAAUG;QAEhC,OAAQH;YACN,KAAK;gBAAW;oBACd,MAAM,EAAEW,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC;oBACxC,OAAOA,eAAeR;gBACxB;YAEA,KAAK;gBAAO;oBACV,MAAM,EAAES,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC;oBACpC,OAAOA,WAAWT;gBACpB;YAEA;gBACE,MAAM,IAAIU,oBAAY,CAAC,wBAAwB,CAAC,sBAAsB,EAAEb,UAAU;QACtF;IACF,EAAE,OAAOc,OAAY;QACnBC,IAAAA,mBAAW,EAACD;IACd;AACF"}
1
+ {"version":3,"sources":["run/index.ts"],"sourcesContent":[null],"names":["expoRun","argv","args","assertWithOptionsArgs","Boolean","permissive","platform","_","startsWith","argsWithoutPlatform","splice","printHelp","chalk","selectAsync","title","value","logPlatformRunCommand","expoRunAndroid","expoRunIos","CommandError","error","logCmdError"],"mappings":";;;;;+BAQaA;;;eAAAA;;;;gEAPK;;;;;;sBAG+B;wBACP;uBACJ;;;;;;AAE/B,MAAMA,UAAmB,OAAOC;IACrC,MAAMC,OAAOC,IAAAA,2BAAqB,EAChC;QACE,QAAQ;QACR,UAAUC;QACV,UAAU;QACV,MAAM;IACR,GACA;QACEH;QACA,2DAA2D;QAC3DI,YAAY;IACd;IAGF,IAAI;QACF,IAAI,CAACC,SAAS,GAAGJ,KAAKK,CAAC,IAAI,EAAE;QAE7B,0CAA0C;QAC1C,IAAID,UAAUE,WAAW,MAAM;YAC7BF,WAAW;QACb;QAEA,wDAAwD;QACxD,MAAMG,sBAAsB,CAACH,WAAWL,OAAOA,MAAMS,OAAO;QAE5D,oDAAoD;QACpD,IAAI,CAACJ,YAAYJ,IAAI,CAAC,SAAS,EAAE;YAC/BS,IAAAA,eAAS,EACP,8BACA,CAAC,0BAA0B,CAAC,EAC5BC,IAAAA,gBAAK,CAAA,CAAC,mEAAmE,CAAC;QAE9E;QAEA,IAAI,CAACN,UAAU;YACb,MAAM,EAAEO,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC;YACrCP,WAAW,MAAMO,YAAY,8BAA8B;gBACzD;oBAAEC,OAAO;oBAAWC,OAAO;gBAAU;gBACrC;oBAAED,OAAO;oBAAOC,OAAO;gBAAM;aAC9B;QACH;QAEAC,IAAAA,4BAAqB,EAACV,UAAUG;QAEhC,OAAQH;YACN,KAAK;gBAAW;oBACd,MAAM,EAAEW,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC;oBACxC,OAAOA,eAAeR;gBACxB;YAEA,KAAK;gBAAO;oBACV,MAAM,EAAES,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC;oBACpC,OAAOA,WAAWT;gBACpB;YAEA;gBACE,MAAM,IAAIU,oBAAY,CAAC,wBAAwB,CAAC,sBAAsB,EAAEb,UAAU;QACtF;IACF,EAAE,OAAOc,OAAY;QACnB,OAAOC,IAAAA,mBAAW,EAACD;IACrB;AACF"}
@@ -95,8 +95,11 @@ const expoStart = async (argv)=>{
95
95
  (0, _chalk().default)` Setting {bold CI=1} turns off file watching and Fast Refresh, so code changes won't reach`,
96
96
  (0, _chalk().default)` the app until the dev server restarts. Don't set it for local development.`,
97
97
  '',
98
- (0, _chalk().default)` Run without the interactive UI and keep Fast Refresh by redirecting output:`,
99
- (0, _chalk().default)` {dim $} npx expo start > expo.log 2>&1`,
98
+ (0, _chalk().default)` Inspect structured events from running or stopped {bold expo start} processes:`,
99
+ (0, _chalk().default)` {dim $} npx expo command:ps "start" --json`,
100
+ (0, _chalk().default)` {dim $} npx expo command:events <session-id>`,
101
+ (0, _chalk().default)` Add {bold --tail} to follow live events. See the command overview for usage and examples:`,
102
+ (0, _chalk().default)` {dim $} npx expo command --help`,
100
103
  ''
101
104
  ].join('\n'));
102
105
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["start/index.ts"],"sourcesContent":[null],"names":["expoStart","argv","args","assertArgs","Boolean","Number","String","normalizeTunnelArgs","printHelp","chalk","join","projectRoot","getProjectRoot","loadEnvFiles","mode","resolveOptionsAsync","options","catch","logCmdError","offline","disableNetwork","startAsync","webOnly","process","slice","normalized","i","length","push","provider"],"mappings":"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"}
1
+ {"version":3,"sources":["start/index.ts"],"sourcesContent":[null],"names":["expoStart","argv","args","assertArgs","Boolean","Number","String","normalizeTunnelArgs","printHelp","chalk","join","projectRoot","getProjectRoot","loadEnvFiles","mode","resolveOptionsAsync","options","catch","logCmdError","offline","disableNetwork","startAsync","webOnly","process","slice","normalized","i","length","push","provider"],"mappings":"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"}
@@ -96,6 +96,7 @@ export declare abstract class BundlerDevServer {
96
96
  protected bonjour: Bonjour | null;
97
97
  /** Http server and related info. */
98
98
  protected instance: DevServerInstance | null;
99
+ private isHeadless;
99
100
  /** Native platform interfaces for opening projects. */
100
101
  private platformManagers;
101
102
  /** Manages the creation of dev server URLs. */
@@ -101,6 +101,7 @@ class BundlerDevServer {
101
101
  /** Interfaces with the Expo 'Development Session' API. */ devSession = null;
102
102
  /** Announces dev server via Bonjour */ bonjour = null;
103
103
  /** Http server and related info. */ instance = null;
104
+ isHeadless = false;
104
105
  /** Native platform interfaces for opening projects. */ platformManagers = {};
105
106
  /** Manages the creation of dev server URLs. */ urlCreator = null;
106
107
  /** The resolved port every URL and `instance.location` is built from. */ resolvedPort = null;
@@ -136,6 +137,7 @@ class BundlerDevServer {
136
137
  } else {
137
138
  instance = await this.startImplementationAsync(options);
138
139
  }
140
+ this.isHeadless = !!options.headless;
139
141
  this.setInstance(instance);
140
142
  await this.postStartAsync(options);
141
143
  const url = this.getTunnelUrl() ?? this.getUrlCreator().constructUrl({
@@ -273,6 +275,7 @@ class BundlerDevServer {
273
275
  }
274
276
  /** Stop the running dev server instance. */ async stopAsync() {
275
277
  const stoppedAt = Date.now();
278
+ const hadOwnedInstance = this.instance != null && !this.isHeadless;
276
279
  // Reset url creator
277
280
  this.urlCreator = undefined;
278
281
  // Keep `resolvedPort`: the manifest middleware still builds URLs until the server closes below.
@@ -313,10 +316,12 @@ class BundlerDevServer {
313
316
  timeout: 1000,
314
317
  errorMessage: `Timeout waiting for '${this.name}' dev server to close`
315
318
  });
316
- event('stop', {
317
- bundler: this.name,
318
- ms: Date.now() - stoppedAt
319
- });
319
+ if (hadOwnedInstance) {
320
+ event('stop', {
321
+ bundler: this.name,
322
+ ms: Date.now() - stoppedAt
323
+ });
324
+ }
320
325
  }
321
326
  // TODO(@kitten): This should be created top-down rather than bottom up from implementors
322
327
  async initUrlCreator(options = {}) {