@expo/cli 58.1.7 → 58.1.8
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/build/src/api/rest/wrapFetchWithUserAgent.js +1 -1
- package/build/src/command/events/eventsAsync.d.ts +2 -0
- package/build/src/command/events/eventsAsync.js +31 -0
- package/build/src/command/events/eventsAsync.js.map +1 -0
- package/build/src/command/events/help.d.ts +2 -0
- package/build/src/command/events/help.js +69 -0
- package/build/src/command/events/help.js.map +1 -0
- package/build/src/command/events/index.d.ts +2 -0
- package/build/src/command/events/index.js +59 -0
- package/build/src/command/events/index.js.map +1 -0
- package/build/src/command/events/resolveOptions.d.ts +10 -0
- package/build/src/command/events/resolveOptions.js +23 -0
- package/build/src/command/events/resolveOptions.js.map +1 -0
- package/build/src/command/index.d.ts +2 -0
- package/build/src/command/index.js +65 -0
- package/build/src/command/index.js.map +1 -0
- package/build/src/command/ps/help.d.ts +2 -0
- package/build/src/command/ps/help.js +52 -0
- package/build/src/command/ps/help.js.map +1 -0
- package/build/src/command/ps/index.d.ts +2 -0
- package/build/src/command/ps/index.js +53 -0
- package/build/src/command/ps/index.js.map +1 -0
- package/build/src/command/ps/psAsync.d.ts +2 -0
- package/build/src/command/ps/psAsync.js +49 -0
- package/build/src/command/ps/psAsync.js.map +1 -0
- package/build/src/command/ps/resolveOptions.d.ts +9 -0
- package/build/src/command/ps/resolveOptions.js +20 -0
- package/build/src/command/ps/resolveOptions.js.map +1 -0
- package/build/src/command/sessions.d.ts +4 -0
- package/build/src/command/sessions.js +80 -0
- package/build/src/command/sessions.js.map +1 -0
- package/build/src/command/utils.d.ts +5 -0
- package/build/src/command/utils.js +62 -0
- package/build/src/command/utils.js.map +1 -0
- package/build/src/index.js +28 -7
- package/build/src/index.js.map +1 -1
- package/build/src/prebuild/prebuildAsync.d.ts +1 -1
- package/build/src/prebuild/prebuildAsync.js +17 -3
- package/build/src/prebuild/prebuildAsync.js.map +1 -1
- package/build/src/prebuild/setupSwiftPM.d.ts +20 -0
- package/build/src/prebuild/setupSwiftPM.js +171 -0
- package/build/src/prebuild/setupSwiftPM.js.map +1 -0
- package/build/src/run/index.js +1 -1
- package/build/src/run/index.js.map +1 -1
- package/build/src/start/index.js +5 -2
- package/build/src/start/index.js.map +1 -1
- package/build/src/start/server/BundlerDevServer.d.ts +1 -0
- package/build/src/start/server/BundlerDevServer.js +9 -4
- package/build/src/start/server/BundlerDevServer.js.map +1 -1
- package/build/src/start/server/DevServerManager.d.ts +1 -0
- package/build/src/start/server/DevServerManager.js +21 -0
- package/build/src/start/server/DevServerManager.js.map +1 -1
- package/build/src/start/server/metro/MetroBundlerDevServer.js +39 -15
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
- package/build/src/start/server/metro/MetroTerminalReporter.d.ts +16 -5
- package/build/src/start/server/metro/MetroTerminalReporter.js +61 -28
- package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/TerminalReporter.types.d.ts +2 -0
- package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +7 -3
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/start/server/metro/metroErrorInterface.d.ts +19 -3
- package/build/src/start/server/metro/metroErrorInterface.js +18 -2
- package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
- package/build/src/utils/cocoapods.js +10 -0
- package/build/src/utils/cocoapods.js.map +1 -1
- package/build/src/utils/errors.d.ts +9 -1
- package/build/src/utils/errors.js +16 -2
- package/build/src/utils/errors.js.map +1 -1
- package/build/src/utils/metadata.d.ts +15 -0
- package/build/src/utils/metadata.js +39 -0
- package/build/src/utils/metadata.js.map +1 -0
- package/build/src/utils/nodeEnv.js +2 -0
- package/build/src/utils/nodeEnv.js.map +1 -1
- package/build/src/utils/telemetry/clients/FetchClient.js +1 -1
- package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -1
- package/build/src/utils/telemetry/utils/context.js +1 -1
- package/build/src/utils/telemetry/utils/context.js.map +1 -1
- package/package.json +16 -16
|
@@ -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"}
|
package/build/src/index.js
CHANGED
|
@@ -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
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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.8"
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
94
104
|
if (args['--version']) {
|
|
95
105
|
// Version is added in the build script.
|
|
96
|
-
console.log("58.1.
|
|
106
|
+
console.log("58.1.8");
|
|
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
|
}
|
package/build/src/index.js.map
CHANGED
|
@@ -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","_","
|
|
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":";;;;;;yBACmC;;;;;;;gEACnB;;;;;;;gEACE;;;;;;;yBACM;;;;;;;;;;;AAExB,6FAA6F;AAC7F,iGAAiG;AACjG,oDAAoD;AACpD,IAAIA,IAAAA,iBAAO,EAAC,cAAc,UAAU,wBAAwBC,IAAI,CAACC,QAAQC,GAAG,CAACC,KAAK,IAAI,KAAK;IACzFF,QAAQC,GAAG,CAACE,UAAU,GAAG;IACzBH,QAAQC,GAAG,CAACG,SAAS,KAAK;AAC5B;AAEA,MAAMC,aAAa;AAInB,MAAMC,WAA0D;IAC9D,yBAAyB;IACzB,8EAA8E;IAC9EC,KAAK,IAAM,MAAM,CAAC,uBAAuBC,IAAI,CAAC,CAACC,IAAMA,EAAEC,OAAO;IAC9D,WAAW,IAAM,MAAM,CAAC,2BAA2BF,IAAI,CAAC,CAACC,IAAMA,EAAEE,UAAU;IAC3E,eAAe,IAAM,MAAM,CAAC,+BAA+BH,IAAI,CAAC,CAACC,IAAMA,EAAEG,cAAc;IACvFC,OAAO,IAAM,MAAM,CAAC,yBAAyBL,IAAI,CAAC,CAACC,IAAMA,EAAEK,SAAS;IACpEC,UAAU,IAAM,MAAM,CAAC,4BAA4BP,IAAI,CAAC,CAACC,IAAMA,EAAEO,YAAY;IAC7EC,QAAQ,IAAM,MAAM,CAAC,0BAA0BT,IAAI,CAAC,CAACC,IAAMA,EAAES,UAAU;IACvEC,QAAQ,IAAM,MAAM,CAAC,0BAA0BX,IAAI,CAAC,CAACC,IAAMA,EAAEW,UAAU;IACvE,cAAc,IAAM,MAAM,CAAC,8BAA8BZ,IAAI,CAAC,CAACC,IAAMA,EAAEY,aAAa;IACpF,gBAAgB,IAAM,MAAM,CAAC,gCAAgCb,IAAI,CAAC,CAACC,IAAMA,EAAEa,eAAe;IAE1FC,OAAO,IAAM,MAAM,CAAC,yBAAyBf,IAAI,CAAC,CAACC,IAAMA,EAAEe,SAAS;IAEpE,oDAAoD;IACpDC,SAAS,IAAM,MAAM,CAAC,2BAA2BjB,IAAI,CAAC,CAACC,IAAMA,EAAEiB,WAAW;IAC1E,cAAc,IAAM,MAAM,CAAC,8BAA8BlB,IAAI,CAAC,CAACC,IAAMA,EAAEkB,aAAa;IACpF,kBAAkB,IAAM,MAAM,CAAC,kCAAkCnB,IAAI,CAAC,CAACC,IAAMA,EAAEmB,iBAAiB;IAEhG,qBAAqB;IACrBC,SAAS,IAAM,MAAM,CAAC,2BAA2BrB,IAAI,CAAC,CAACC,IAAMA,EAAEqB,WAAW;IAC1EC,KAAK,IAAM,MAAM,CAAC,2BAA2BvB,IAAI,CAAC,CAACC,IAAMA,EAAEqB,WAAW;IACtEE,WAAW,IAAM,MAAM,CAAC,6BAA6BxB,IAAI,CAAC,CAACC,IAAMA,EAAEwB,aAAa;IAChFC,MAAM,IAAM,MAAM,CAAC,wBAAwB1B,IAAI,CAAC,CAACC,IAAMA,EAAE0B,QAAQ;IAEjE,OAAO;IACPC,OAAO,IAAM,MAAM,CAAC,yBAAyB5B,IAAI,CAAC,CAACC,IAAMA,EAAE4B,SAAS;IACpEC,QAAQ,IAAM,MAAM,CAAC,0BAA0B9B,IAAI,CAAC,CAACC,IAAMA,EAAE8B,UAAU;IACvEC,UAAU,IAAM,MAAM,CAAC,4BAA4BhC,IAAI,CAAC,CAACC,IAAMA,EAAEgC,YAAY;IAC7EC,QAAQ,IAAM,MAAM,CAAC,0BAA0BlC,IAAI,CAAC,CAACC,IAAMA,EAAEkC,UAAU;AACzE;AAEA,MAAMC,OAAOC,IAAAA,cAAG,EACd;IACE,QAAQ;IACR,aAAaC;IACb,UAAUA;IACV,wEAAwE;IACxE,8BAA8B;IAC9B,qBAAqBA;IAErB,UAAU;IACV,MAAM;IACN,MAAM;AACR,GACA;IACEC,YAAY;AACd;AAGF,gEAAgE;AAChE,MAAMC,eAAe,CAAC,CAAEJ,CAAAA,KAAKK,CAAC,CAAC,EAAE,IAAI3C,QAAQ,CAACsC,KAAKK,CAAC,CAAC,EAAE,CAAC,AAAD;AACvD,MAAMxB,UAAUuB,eAAeJ,KAAKK,CAAC,CAAC,EAAE,GAAI5C;AAC5C,MAAM6C,cAAcF,eAAeJ,KAAKK,CAAC,CAACE,KAAK,CAAC,KAAKP,KAAKK,CAAC;AAC3D,MAAMG,sBACJ3B,YAAY,aAAaA,YAAY,gBAAgBA,YAAY;AAEnE,4FAA4F;AAC5F,yFAAyF;AACzF,sFAAsF;AACtF,IAAI,CAAC2B,qBAAqB;IACxBC,IAAAA,wBAAkB,EAAC;QACjB5B,SAASmB,IAAI,CAAC,YAAY,GACtB,mBACAA,IAAI,CAAC,SAAS,IAAI,CAACI,eACjB,gBACA,CAAC,KAAK,EAAEvB,SAAS;QACvB6B,UAAU;YACRC,SA1EN;QA2EI;IACF;AACF;AAEA,IAAIX,IAAI,CAAC,YAAY,EAAE;IACrB,wCAAwC;IACxCY,QAAQC,GAAG,CAjFb;IAkFEzD,QAAQ0D,IAAI,CAAC;AACf;AAEA,IAAId,IAAI,CAAC,oBAAoB,EAAE;IAC7BY,QAAQG,IAAI,CAACC,gBAAK,CAACC,MAAM,CAAC,qEAAqE,CAAC;AAClG;AAEA,sEAAsE;AACtE,4FAA4F;AAC5F,MAAMC,WAAW;IAAC;IAAI;IAAI;CAAE;AAC5B,MAAMC,cAAc/D,QAAQuD,OAAO,EAAEJ,MAAM,GAAGa,MAAM,KAAK,GAAGC,IAAIC;AAChE,IACEH,WAAW,CAAC,EAAE,GAAID,QAAQ,CAAC,EAAE,IAC5BC,WAAW,CAAC,EAAE,KAAKD,QAAQ,CAAC,EAAE,IAAIC,WAAW,CAAC,EAAE,GAAID,QAAQ,CAAC,EAAE,EAChE;IACAN,QAAQW,KAAK,CACXP,gBAAK,CAACQ,GAAG,CAAC,eAAe,EAAEpE,QAAQuD,OAAO,CAAC,+BAA+B,CAAC,GACzEK,gBAAK,CAACQ,GAAG,CAAC,2DAA2D,EAAEN,SAASO,IAAI,CAAC,KAAK,GAAG,CAAC,GAC9FT,gBAAK,CAACQ,GAAG,CAAC,uCAAuC,CAAC;AAExD;AAEA,uBAAuB;AACvB,IAAI,CAACpB,gBAAgBJ,IAAI,CAAC,SAAS,EAAE;IACnC,MAAM,EACJR,KAAK,EACLE,MAAM,EACNI,MAAM,EACNF,QAAQ,EACR3B,KAAK,EACLgB,OAAO,EACPE,GAAG,EACHZ,QAAQmD,OAAO,EACfrD,MAAM,EACNe,SAAS,EACTjB,QAAQ,EACR,WAAWwD,MAAM,EACjB,eAAeC,UAAU,EACzB/C,SAASgD,cAAc,EACvB,cAAcC,SAAS,EACvB,kBAAkBC,aAAa,EAC/B,mEAAmE;IACnE,yEAAyE;IACzE,4DAA4D;IAC5D,gBAAgBC,kBAAkB,EAClC,sEAAsE;IACtE,cAAcC,gBAAgB,EAC9B,kFAAkF;IAClFtE,KAAKuE,IAAI,EACT,oEAAoE;IACpE5C,MAAM6C,KAAK,EACXxD,KAAK,EACL,qBAAqB;IACrB,GAAGyD,QACJ,GAAG1E;IAEJkD,QAAQC,GAAG,CAACG,IAAAA,gBAAK,CAAA,CAAC;;;;;IAKhB,EAAEqB,OAAOC,IAAI,CAAC;QAAErE;QAAOM,QAAQmD;QAAS,GAAGU,MAAM;IAAC,GAAGX,IAAI,CAAC,MAAM;IAChE,EAAEY,OAAOC,IAAI,CAAC;QAAE,WAAWX;QAAQ,eAAeC;QAAYzD;IAAS,GAAGsD,IAAI,CAAC,MAAM;IACrF,EAAEY,OAAOC,IAAI,CAAC;QAAErD;QAASG;QAAWf;QAAQM;IAAM,GAAG8C,IAAI,CAAC,MAAM;SAC3D,EAAEY,OAAOC,IAAI,CAAC;QAAE9C;QAAOE;QAAQI;QAAQF;IAAS,GAAG6B,IAAI,CAAC,MAAM;;;IAGnE,EAAEY,OAAOC,IAAI,CAAC;QAAEzD,SAASgD;QAAgB,cAAcC;QAAW,kBAAkBC;IAAc,GAAGN,IAAI,CAAC,MAAM;;;;;;;;;;;;AAYpH,CAAC;IAECrE,QAAQ0D,IAAI,CAAC;AACf;AAEA,sEAAsE;AACtE,4GAA4G;AAC5G,IAAI,CAACV,cAAc;IACjB,MAAMmC,eAAuC;QAC3CC,MAAM;QACNC,OAAO;QACPC,KAAK;QACL,aAAa;QACb,aAAa;QACb,iBAAiB;QACjB,sBAAsB;QACtB,0BAA0B;QAC1BC,QAAQ;QACRC,SAAS;QACT,iBAAiB;QAEjBC,SAAS;QACT,eAAe;QACf,oBAAoB;QACpB,mBAAmB;QACnB,mBAAmB;QAEnB,aAAa;QAEb,uBAAuB,CAAC,eAAe,CAAC;QACxC,mBAAmB,CAAC,eAAe,CAAC;QACpC,0BAA0B,CAAC,eAAe,CAAC;QAC3C,wBAAwB,CAAC,eAAe,CAAC;QACzC,6BAA6B,CAAC,eAAe,CAAC;QAC9C,uBAAuB,CAAC,eAAe,CAAC;QACxC,qBAAqB,CAAC,eAAe,CAAC;QACtC,sBAAsB,CAAC,eAAe,CAAC;QACvCC,KAAK,CAAC,cAAc,CAAC;QACrB,WAAW,CAAC,cAAc,CAAC;QAC3B,WAAW,CAAC,cAAc,CAAC;QAC3BC,UAAU,CAAC,WAAW,CAAC;QACvB,gBAAgB,CAAC,kBAAkB,CAAC;QACpC,mBAAmB,CAAC,kBAAkB,CAAC;QACvC,mBAAmB,CAAC,kBAAkB,CAAC;QAEvC,gBAAgB,CAAC,cAAc,CAAC;QAChC,kBAAkB,CAAC,qBAAqB,CAAC;QACzC,cAAc,CAAC,iBAAiB,CAAC;IACnC;IAEA,kDAAkD;IAClD,MAAMC,aAAahD,KAAKK,CAAC,CAAC,EAAE;IAC5B,IAAI2C,cAAcA,cAAcT,cAAc;QAC5C,MAAMU,cAAcV,YAAY,CAACS,WAAW;QAC5CpC,QAAQC,GAAG;QACX,MAAMqC,cAAcF,eAAe,YAAY,sBAAsB;QACrEpC,QAAQC,GAAG,CACTG,gBAAK,CAACC,MAAM,CAAC,sBAAsB,EAAE+B,WAAW,4CAA4C,EAAEE,YAAY,OAAO,EAAED,YAAY,SAAS,CAAC;QAE3IrC,QAAQC,GAAG;QACXzD,QAAQ0D,IAAI,CAAC;IACf;IACA,MAAMqC,aAAa;QAAC;QAAQ;KAAa;IACzC,IAAIH,cAAcG,WAAWC,QAAQ,CAACJ,aAAa;QACjDpC,QAAQC,GAAG;QACXD,QAAQC,GAAG,CAACG,gBAAK,CAACC,MAAM,CAAC,sBAAsB,EAAE+B,WAAW,eAAe,CAAC;QAC5EpC,QAAQC,GAAG;QACXzD,QAAQ0D,IAAI,CAAC;IACf;AACF;AAEA,6CAA6C;AAC7C,IAAId,IAAI,CAAC,SAAS,EAAE;IAClBM,YAAY+C,IAAI,CAAC;AACnB;AAEA,qBAAqB;AACrBjG,QAAQkG,EAAE,CAAC,UAAU,IAAMlG,QAAQ0D,IAAI,CAAC;AACxC1D,QAAQkG,EAAE,CAAC,WAAW,IAAMlG,QAAQ0D,IAAI,CAAC;AAEzCpD,QAAQ,CAACmB,QAAQ,GAAIjB,IAAI,CAAC,CAAC2F;IACzBA,KAAKjD;IAEL,4EAA4E;IAC5E,uFAAuF;IACvF,qFAAqF;IACrF,IAAI,CAACE,uBAAuB,CAACtD,IAAAA,iBAAO,EAAC,qBAAqB,QAAQ;QAChE,MAAM,EAAEsG,aAAa,EAAE,GACrBC,QAAQ;QACVD,cAAc3E;IAChB;AACF"}
|
|
@@ -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
|
|
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 (
|
|
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","
|
|
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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"}
|
package/build/src/run/index.js
CHANGED
|
@@ -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;
|
|
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"}
|
package/build/src/start/index.js
CHANGED
|
@@ -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)`
|
|
99
|
-
(0, _chalk().default)` {dim $} npx expo start
|
|
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":";;;;;+BAOaA;;;eAAAA;;;;gEANK;;;;;;sBAGoC;wBAC1B;;;;;;AAErB,MAAMA,YAAqB,OAAOC;IACvC,MAAMC,OAAOC,IAAAA,gBAAU,EACrB;QACE,QAAQ;QACR,UAAUC;QACV,WAAWA;QACX,iBAAiBC;QACjB,YAAYD;QACZ,YAAYA;QACZ,WAAWA;QACX,sBAAsBE;QACtB,UAAUD;QACV,gBAAgBD;QAChB,YAAYE;QACZ,aAAaF;QACb,SAASA;QACT,SAASA;QACT,UAAUE;QACV,YAAYA;QACZ,SAASF;QACT,eAAeA;QACf,aAAaA;QACb,QAAQA;QACR,UAAU;QACV,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,kEAAkE;QAClE,iBAAiB;IACnB,GACAG,oBAAoBN;IAGtB,IAAIC,IAAI,CAAC,SAAS,EAAE;QAClBM,IAAAA,eAAS,EACP,CAAC,oCAAoC,CAAC,EACtCC,IAAAA,gBAAK,CAAA,CAAC,0BAA0B,CAAC,EACjC;YACEA,IAAAA,gBAAK,CAAA,CAAC,uGAAuG,CAAC;YAC9G,CAAC,kEAAkE,CAAC;YACpE,CAAC,wDAAwD,CAAC;YAC1D,CAAC,qDAAqD,CAAC;YACvD,EAAE;YACFA,IAAAA,gBAAK,CAAA,CAAC,6DAA6D,CAAC;YACpEA,IAAAA,gBAAK,CAAA,CAAC,iDAAiD,CAAC;YACxD,EAAE;YACF,CAAC,uDAAuD,CAAC;YACzD,CAAC,+EAA+E,CAAC;YACjF,CAAC,yDAAyD,CAAC;YAC3D,CAAC,iDAAiD,CAAC;YACnD,EAAE;YACFA,IAAAA,gBAAK,CAAA,CAAC,2EAA2E,CAAC;YAClFA,IAAAA,gBAAK,CAAA,CAAC,iEAAiE,CAAC;YACxEA,IAAAA,gBAAK,CAAA,CAAC,qFAAqF,CAAC;YAC5FA,IAAAA,gBAAK,CAAA,CAAC,0FAA0F,CAAC;YACjG,CAAC,kFAAkF,CAAC;YACpF,CAAC,kDAAkD,CAAC;YACpD,CAAC,wDAAwD,CAAC;YAC1D,EAAE;YACF,CAAC,2FAA2F,CAAC;YAC7FA,IAAAA,gBAAK,CAAA,CAAC,gHAAgH,CAAC;YACvH,CAAC,gFAAgF,CAAC;YAClFA,IAAAA,gBAAK,CAAA,CAAC,4GAA4G,CAAC;YACnH,EAAE;YACFA,IAAAA,gBAAK,CAAA,CAAC,gMAAgM,CAAC;YACvM,CAAC,0CAA0C,CAAC;SAC7C,CAACC,IAAI,CAAC,OACP;YACE;YACAD,IAAAA,gBAAK,CAAA,CAAC,gBAAgB,CAAC;YACvB;YACAA,IAAAA,gBAAK,CAAA,CAAC,2FAA2F,CAAC;YAClGA,IAAAA,gBAAK,CAAA,CAAC,4EAA4E,CAAC;YACnF;YACAA,IAAAA,gBAAK,CAAA,CAAC,
|
|
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
|
-
|
|
317
|
-
|
|
318
|
-
|
|
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 = {}) {
|