@expo/cli 55.0.4 → 56.0.0-canary-20260128-67ce8d5
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/bin/cli +3 -1
- package/build/bin/cli.map +1 -1
- package/build/src/start/interface/interactiveActions.js +2 -1
- package/build/src/start/interface/interactiveActions.js.map +1 -1
- package/build/src/start/server/UrlCreator.js +1 -1
- package/build/src/start/server/UrlCreator.js.map +1 -1
- package/build/src/start/server/metro/MetroTerminalReporter.js +144 -33
- package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +53 -0
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +3 -1
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ManifestMiddleware.js +14 -9
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
- package/build/src/start/server/type-generation/routes.js +2 -59
- package/build/src/start/server/type-generation/routes.js.map +1 -1
- package/build/src/utils/env.js +28 -0
- package/build/src/utils/env.js.map +1 -1
- package/build/src/utils/interactive.js +1 -1
- package/build/src/utils/interactive.js.map +1 -1
- package/build/src/utils/jsonl.js +243 -0
- package/build/src/utils/jsonl.js.map +1 -0
- package/build/src/utils/progress.js +5 -0
- package/build/src/utils/progress.js.map +1 -1
- package/build/src/utils/telemetry/clients/FetchClient.js +1 -1
- package/build/src/utils/telemetry/utils/context.js +1 -1
- package/build/src/utils/url.js +4 -8
- package/build/src/utils/url.js.map +1 -1
- package/package.json +19 -20
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
JsonlReporter: function() {
|
|
13
|
+
return JsonlReporter;
|
|
14
|
+
},
|
|
15
|
+
getJsonlReporter: function() {
|
|
16
|
+
return getJsonlReporter;
|
|
17
|
+
},
|
|
18
|
+
installJsonlInterceptor: function() {
|
|
19
|
+
return installJsonlInterceptor;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
function _nodefs() {
|
|
23
|
+
const data = /*#__PURE__*/ _interop_require_wildcard(require("node:fs"));
|
|
24
|
+
_nodefs = function() {
|
|
25
|
+
return data;
|
|
26
|
+
};
|
|
27
|
+
return data;
|
|
28
|
+
}
|
|
29
|
+
function _nodepath() {
|
|
30
|
+
const data = /*#__PURE__*/ _interop_require_wildcard(require("node:path"));
|
|
31
|
+
_nodepath = function() {
|
|
32
|
+
return data;
|
|
33
|
+
};
|
|
34
|
+
return data;
|
|
35
|
+
}
|
|
36
|
+
const _ansi = require("./ansi");
|
|
37
|
+
const _env = require("./env");
|
|
38
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
39
|
+
if (typeof WeakMap !== "function") return null;
|
|
40
|
+
var cacheBabelInterop = new WeakMap();
|
|
41
|
+
var cacheNodeInterop = new WeakMap();
|
|
42
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
43
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
44
|
+
})(nodeInterop);
|
|
45
|
+
}
|
|
46
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
47
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
48
|
+
return obj;
|
|
49
|
+
}
|
|
50
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
51
|
+
return {
|
|
52
|
+
default: obj
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
56
|
+
if (cache && cache.has(obj)) {
|
|
57
|
+
return cache.get(obj);
|
|
58
|
+
}
|
|
59
|
+
var newObj = {
|
|
60
|
+
__proto__: null
|
|
61
|
+
};
|
|
62
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
63
|
+
for(var key in obj){
|
|
64
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
65
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
66
|
+
if (desc && (desc.get || desc.set)) {
|
|
67
|
+
Object.defineProperty(newObj, key, desc);
|
|
68
|
+
} else {
|
|
69
|
+
newObj[key] = obj[key];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
newObj.default = obj;
|
|
74
|
+
if (cache) {
|
|
75
|
+
cache.set(obj, newObj);
|
|
76
|
+
}
|
|
77
|
+
return newObj;
|
|
78
|
+
}
|
|
79
|
+
// Save original write functions BEFORE any patching
|
|
80
|
+
const originalStdoutWrite = process.stdout.write.bind(process.stdout);
|
|
81
|
+
/** Get the output file path if EXPO_UNSTABLE_JSONL_OUTPUT is a path string */ function getOutputFilePath() {
|
|
82
|
+
const value = _env.env.EXPO_UNSTABLE_JSONL_OUTPUT;
|
|
83
|
+
if (typeof value === 'string') {
|
|
84
|
+
try {
|
|
85
|
+
_nodefs().mkdirSync(_nodepath().dirname(value), {
|
|
86
|
+
recursive: true
|
|
87
|
+
});
|
|
88
|
+
_nodefs().writeFileSync(value, '');
|
|
89
|
+
} catch (error) {
|
|
90
|
+
// Silently ignore, the process will error on write if the directory does not exist
|
|
91
|
+
}
|
|
92
|
+
return _nodepath().resolve(value);
|
|
93
|
+
}
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
class JsonlReporter {
|
|
97
|
+
constructor(){
|
|
98
|
+
this.outputFilePath = getOutputFilePath();
|
|
99
|
+
}
|
|
100
|
+
get isEnabled() {
|
|
101
|
+
return !!_env.env.EXPO_UNSTABLE_JSONL_OUTPUT;
|
|
102
|
+
}
|
|
103
|
+
/** Get the output file path (null if writing to stdout) */ getOutputFilePath() {
|
|
104
|
+
return this.outputFilePath;
|
|
105
|
+
}
|
|
106
|
+
/** Emit a JSONL event to stdout or file */ emit(event) {
|
|
107
|
+
const eventWithTimestamp = {
|
|
108
|
+
...event,
|
|
109
|
+
timestamp: Date.now()
|
|
110
|
+
};
|
|
111
|
+
const line = JSON.stringify(eventWithTimestamp) + '\n';
|
|
112
|
+
if (this.outputFilePath) {
|
|
113
|
+
// Append to file
|
|
114
|
+
// TODO: Consider using async queue to write to file
|
|
115
|
+
_nodefs().appendFileSync(this.outputFilePath, line);
|
|
116
|
+
} else {
|
|
117
|
+
// Write to stdout using the original (unpatched) write function
|
|
118
|
+
originalStdoutWrite(line);
|
|
119
|
+
}
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
/** Emit stdout output */ emitStdout(value) {
|
|
123
|
+
return this.emit({
|
|
124
|
+
type: 'stdout',
|
|
125
|
+
value: (0, _ansi.stripAnsi)(value) ?? ''
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/** Emit stderr output */ emitStderr(value) {
|
|
129
|
+
return this.emit({
|
|
130
|
+
type: 'stderr',
|
|
131
|
+
value: (0, _ansi.stripAnsi)(value) ?? ''
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
/** Emit console log from client or server */ emitConsole(options) {
|
|
135
|
+
return this.emit({
|
|
136
|
+
type: `console.${options.level}`,
|
|
137
|
+
source: options.source,
|
|
138
|
+
platform: options.platform,
|
|
139
|
+
value: Array.isArray(options.value) ? // but to be safe, we stringify the array. Eventually we would like to send the as-is.
|
|
140
|
+
// To get more detailed logs.
|
|
141
|
+
options.value.map((item)=>String(item)).join(' ') : String(options.value)
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
/** Emit console log from server */ emitServerLog(options) {
|
|
145
|
+
return this.emitConsole({
|
|
146
|
+
level: options.level ?? 'log',
|
|
147
|
+
source: 'server',
|
|
148
|
+
value: options.value
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
/** Emit bundling started event */ emitBundlingStarted(options) {
|
|
152
|
+
return this.emit({
|
|
153
|
+
type: 'bundling.started',
|
|
154
|
+
id: options.id,
|
|
155
|
+
platform: options.platform,
|
|
156
|
+
path: options.path,
|
|
157
|
+
environment: options.environment
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
/** Emit bundling progress event */ emitBundlingProgress(options) {
|
|
161
|
+
return this.emit({
|
|
162
|
+
type: 'bundling.progress',
|
|
163
|
+
id: options.id,
|
|
164
|
+
progress: options.progress,
|
|
165
|
+
files: {
|
|
166
|
+
total: options.total,
|
|
167
|
+
current: options.current
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
/** Emit bundling done event */ emitBundlingDone(options) {
|
|
172
|
+
return this.emit({
|
|
173
|
+
type: 'bundling.done',
|
|
174
|
+
id: options.id,
|
|
175
|
+
duration: options.duration,
|
|
176
|
+
modules: {
|
|
177
|
+
total: options.totalModules
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
/** Emit bundling error event */ emitBundlingError(options) {
|
|
182
|
+
return this.emit({
|
|
183
|
+
type: 'bundling.error',
|
|
184
|
+
id: options.id,
|
|
185
|
+
value: (0, _ansi.stripAnsi)(options.value) ?? '',
|
|
186
|
+
duration: options.duration
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
let reporterInstance = null;
|
|
191
|
+
function getJsonlReporter() {
|
|
192
|
+
if (!reporterInstance) {
|
|
193
|
+
if (_env.env.EXPO_UNSTABLE_JSONL_OUTPUT) {
|
|
194
|
+
reporterInstance = new JsonlReporter();
|
|
195
|
+
} else {
|
|
196
|
+
// Use noop reporter
|
|
197
|
+
reporterInstance = {
|
|
198
|
+
get isEnabled () {
|
|
199
|
+
return false;
|
|
200
|
+
},
|
|
201
|
+
getOutputFilePath: ()=>null,
|
|
202
|
+
emit: ()=>false,
|
|
203
|
+
emitStdout: ()=>false,
|
|
204
|
+
emitStderr: ()=>false,
|
|
205
|
+
emitConsole: ()=>false,
|
|
206
|
+
emitServerLog: ()=>false,
|
|
207
|
+
emitBundlingStarted: ()=>false,
|
|
208
|
+
emitBundlingProgress: ()=>false,
|
|
209
|
+
emitBundlingDone: ()=>false,
|
|
210
|
+
emitBundlingError: ()=>false
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return reporterInstance;
|
|
215
|
+
}
|
|
216
|
+
function installJsonlInterceptor() {
|
|
217
|
+
if (!_env.env.EXPO_UNSTABLE_JSONL_OUTPUT) return;
|
|
218
|
+
const reporter = getJsonlReporter();
|
|
219
|
+
const outputFilePath = reporter.getOutputFilePath();
|
|
220
|
+
// If writing to a file, print a message to stdout to inform users
|
|
221
|
+
if (outputFilePath) {
|
|
222
|
+
originalStdoutWrite(`JSONL output is being written to: ${outputFilePath}\n`);
|
|
223
|
+
}
|
|
224
|
+
// Patch stdout
|
|
225
|
+
process.stdout.write = (chunk, encoding, callback)=>{
|
|
226
|
+
const str = typeof chunk === 'string' ? chunk : chunk.toString();
|
|
227
|
+
reporter.emitStdout(str);
|
|
228
|
+
// Call callback if provided (for stream compatibility)
|
|
229
|
+
if (typeof encoding === 'function') encoding();
|
|
230
|
+
else if (typeof callback === 'function') callback();
|
|
231
|
+
return true;
|
|
232
|
+
};
|
|
233
|
+
// Patch stderr
|
|
234
|
+
process.stderr.write = (chunk, encoding, callback)=>{
|
|
235
|
+
const str = typeof chunk === 'string' ? chunk : chunk.toString();
|
|
236
|
+
reporter.emitStderr(str);
|
|
237
|
+
if (typeof encoding === 'function') encoding();
|
|
238
|
+
else if (typeof callback === 'function') callback();
|
|
239
|
+
return true;
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
//# sourceMappingURL=jsonl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/jsonl.ts"],"sourcesContent":["import * as fs from 'node:fs';\nimport * as path from 'node:path';\n\nimport { stripAnsi } from './ansi';\nimport { env } from './env';\n\n// Save original write functions BEFORE any patching\nconst originalStdoutWrite = process.stdout.write.bind(process.stdout);\n\n/** Get the output file path if EXPO_UNSTABLE_JSONL_OUTPUT is a path string */\nfunction getOutputFilePath(): string | null {\n const value = env.EXPO_UNSTABLE_JSONL_OUTPUT;\n if (typeof value === 'string') {\n try {\n fs.mkdirSync(path.dirname(value), { recursive: true });\n fs.writeFileSync(value, '');\n } catch (error) {\n // Silently ignore, the process will error on write if the directory does not exist\n }\n return path.resolve(value);\n }\n return null;\n}\n\n/** Base event */\nexport interface JsonlEvent {\n type: string;\n timestamp: number; // Unix timestamp in milliseconds\n}\n\n/** Console output from JS runtime */\nexport interface JsonlConsoleEvent extends JsonlEvent {\n type:\n | 'console.log'\n | 'console.error'\n | 'console.warn'\n | 'console.debug'\n | 'console.info'\n | 'console.trace'\n | 'console.group'\n | 'console.groupCollapsed'\n | 'console.groupEnd';\n source: 'server' | 'client';\n platform?: 'ios' | 'android' | 'web'; // Extracted from bundle URL in stack traces\n value: string;\n}\n\n/** Generic stdout/stderr output from CLI */\nexport interface JsonlStdEvent extends JsonlEvent {\n type: 'stdout' | 'stderr';\n value: string;\n}\n\n/** Bundling started */\nexport interface JsonlBundlingStartedEvent extends JsonlEvent {\n type: 'bundling.started';\n id: string;\n platform: 'ios' | 'android' | 'web' | string;\n path: string;\n environment?: 'client' | 'node' | 'react-server'; // For SSR, API routes, RSC\n}\n\n/** Bundling progress */\nexport interface JsonlBundlingProgressEvent extends JsonlEvent {\n type: 'bundling.progress';\n id: string;\n progress: number; // 0-1\n files: {\n total: number;\n current: number;\n };\n}\n\n/** Bundling completed successfully */\nexport interface JsonlBundlingDoneEvent extends JsonlEvent {\n type: 'bundling.done';\n id: string;\n duration: number | undefined; // milliseconds\n modules: {\n total: number;\n };\n}\n\n/** Bundling error (combined failure + error details) */\nexport interface JsonlBundlingErrorEvent extends JsonlEvent {\n type: 'bundling.error';\n id?: string;\n value: string; // Error message\n duration?: number; // milliseconds (if available)\n}\n\nexport type JsonlEventType =\n | JsonlConsoleEvent\n | JsonlStdEvent\n | JsonlBundlingStartedEvent\n | JsonlBundlingProgressEvent\n | JsonlBundlingDoneEvent\n | JsonlBundlingErrorEvent;\n\n/** Payload type for emit method (without timestamp) */\ntype JsonlEventPayload =\n | Omit<JsonlConsoleEvent, 'timestamp'>\n | Omit<JsonlStdEvent, 'timestamp'>\n | Omit<JsonlBundlingStartedEvent, 'timestamp'>\n | Omit<JsonlBundlingProgressEvent, 'timestamp'>\n | Omit<JsonlBundlingDoneEvent, 'timestamp'>\n | Omit<JsonlBundlingErrorEvent, 'timestamp'>;\n\nexport class JsonlReporter {\n private outputFilePath: string | null;\n\n constructor() {\n this.outputFilePath = getOutputFilePath();\n }\n\n get isEnabled(): boolean {\n return !!env.EXPO_UNSTABLE_JSONL_OUTPUT;\n }\n\n /** Get the output file path (null if writing to stdout) */\n getOutputFilePath(): string | null {\n return this.outputFilePath;\n }\n\n /** Emit a JSONL event to stdout or file */\n public emit(event: JsonlEventPayload): boolean {\n const eventWithTimestamp = { ...event, timestamp: Date.now() };\n const line = JSON.stringify(eventWithTimestamp) + '\\n';\n\n if (this.outputFilePath) {\n // Append to file\n // TODO: Consider using async queue to write to file\n fs.appendFileSync(this.outputFilePath, line);\n } else {\n // Write to stdout using the original (unpatched) write function\n originalStdoutWrite(line);\n }\n return true;\n }\n\n /** Emit stdout output */\n public emitStdout(value: string): boolean {\n return this.emit({ type: 'stdout', value: stripAnsi(value) ?? '' });\n }\n\n /** Emit stderr output */\n public emitStderr(value: string): boolean {\n return this.emit({ type: 'stderr', value: stripAnsi(value) ?? '' });\n }\n\n /** Emit console log from client or server */\n public emitConsole(options: {\n level:\n | 'log'\n | 'error'\n | 'warn'\n | 'debug'\n | 'info'\n | 'trace'\n | 'group'\n | 'groupCollapsed'\n | 'groupEnd';\n source: 'server' | 'client';\n platform?: 'ios' | 'android' | 'web';\n value: string | any[];\n }): boolean {\n return this.emit({\n type: `console.${options.level}`,\n source: options.source,\n platform: options.platform,\n value: Array.isArray(options.value)\n ? // Due to serialization on the client side, these will mostly be arrays of strings\n // but to be safe, we stringify the array. Eventually we would like to send the as-is.\n // To get more detailed logs.\n options.value.map((item: unknown) => String(item)).join(' ')\n : String(options.value),\n });\n }\n\n /** Emit console log from server */\n public emitServerLog(options: {\n level: 'info' | 'warn' | 'error' | undefined;\n value: string | any[];\n }): boolean {\n return this.emitConsole({\n level: options.level ?? 'log',\n source: 'server',\n value: options.value,\n });\n }\n\n /** Emit bundling started event */\n public emitBundlingStarted(options: {\n id: string;\n platform: string;\n path: string;\n environment?: 'client' | 'node' | 'react-server';\n }): boolean {\n return this.emit({\n type: 'bundling.started',\n id: options.id,\n platform: options.platform,\n path: options.path,\n environment: options.environment,\n });\n }\n\n /** Emit bundling progress event */\n public emitBundlingProgress(options: {\n id: string;\n progress: number;\n total: number;\n current: number;\n }): boolean {\n return this.emit({\n type: 'bundling.progress',\n id: options.id,\n progress: options.progress,\n files: {\n total: options.total,\n current: options.current,\n },\n });\n }\n\n /** Emit bundling done event */\n public emitBundlingDone(options: {\n id: string;\n duration: number | undefined;\n totalModules: number;\n }): boolean {\n return this.emit({\n type: 'bundling.done',\n id: options.id,\n duration: options.duration,\n modules: {\n total: options.totalModules,\n },\n });\n }\n\n /** Emit bundling error event */\n public emitBundlingError(options: {\n id: string | undefined;\n value: string;\n duration?: number;\n filename?: string;\n lineNumber?: number;\n column?: number;\n }): boolean {\n return this.emit({\n type: 'bundling.error',\n id: options.id,\n value: stripAnsi(options.value) ?? '',\n duration: options.duration,\n });\n }\n}\n\nlet reporterInstance: JsonlReporter | null = null;\n\n/** Get the singleton JSONL reporter instance */\nexport function getJsonlReporter(): JsonlReporter {\n if (!reporterInstance) {\n if (env.EXPO_UNSTABLE_JSONL_OUTPUT) {\n reporterInstance = new JsonlReporter();\n } else {\n // Use noop reporter\n reporterInstance = {\n get isEnabled(): boolean {\n return false;\n },\n getOutputFilePath: () => null,\n emit: () => false,\n emitStdout: () => false,\n emitStderr: () => false,\n emitConsole: () => false,\n emitServerLog: () => false,\n emitBundlingStarted: () => false,\n emitBundlingProgress: () => false,\n emitBundlingDone: () => false,\n emitBundlingError: () => false,\n } as unknown as JsonlReporter;\n }\n }\n return reporterInstance;\n}\n\n/** Install JSONL interceptor to patch process.stdout.write and process.stderr.write */\nexport function installJsonlInterceptor(): void {\n if (!env.EXPO_UNSTABLE_JSONL_OUTPUT) return;\n\n const reporter = getJsonlReporter();\n const outputFilePath = reporter.getOutputFilePath();\n\n // If writing to a file, print a message to stdout to inform users\n if (outputFilePath) {\n originalStdoutWrite(`JSONL output is being written to: ${outputFilePath}\\n`);\n }\n\n // Patch stdout\n process.stdout.write = (chunk: any, encoding?: any, callback?: any) => {\n const str = typeof chunk === 'string' ? chunk : chunk.toString();\n reporter.emitStdout(str);\n\n // Call callback if provided (for stream compatibility)\n if (typeof encoding === 'function') encoding();\n else if (typeof callback === 'function') callback();\n return true;\n };\n\n // Patch stderr\n process.stderr.write = (chunk: any, encoding?: any, callback?: any) => {\n const str = typeof chunk === 'string' ? chunk : chunk.toString();\n reporter.emitStderr(str);\n\n if (typeof encoding === 'function') encoding();\n else if (typeof callback === 'function') callback();\n return true;\n };\n}\n"],"names":["JsonlReporter","getJsonlReporter","installJsonlInterceptor","originalStdoutWrite","process","stdout","write","bind","getOutputFilePath","value","env","EXPO_UNSTABLE_JSONL_OUTPUT","fs","mkdirSync","path","dirname","recursive","writeFileSync","error","resolve","constructor","outputFilePath","isEnabled","emit","event","eventWithTimestamp","timestamp","Date","now","line","JSON","stringify","appendFileSync","emitStdout","type","stripAnsi","emitStderr","emitConsole","options","level","source","platform","Array","isArray","map","item","String","join","emitServerLog","emitBundlingStarted","id","environment","emitBundlingProgress","progress","files","total","current","emitBundlingDone","duration","modules","totalModules","emitBundlingError","reporterInstance","reporter","chunk","encoding","callback","str","toString","stderr"],"mappings":"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"}
|
|
@@ -26,6 +26,7 @@ function _progress() {
|
|
|
26
26
|
};
|
|
27
27
|
return data;
|
|
28
28
|
}
|
|
29
|
+
const _env = require("./env");
|
|
29
30
|
function _interop_require_default(obj) {
|
|
30
31
|
return obj && obj.__esModule ? obj : {
|
|
31
32
|
default: obj
|
|
@@ -39,6 +40,10 @@ function getProgressBar() {
|
|
|
39
40
|
return currentProgress;
|
|
40
41
|
}
|
|
41
42
|
function createProgressBar(barFormat, options) {
|
|
43
|
+
// Disable progress bars in JSONL mode
|
|
44
|
+
if (_env.env.EXPO_UNSTABLE_JSONL_OUTPUT) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
42
47
|
if (process.stderr.clearLine == null) {
|
|
43
48
|
return null;
|
|
44
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/progress.ts"],"sourcesContent":["import ProgressBar from 'progress';\n\nlet currentProgress: ProgressBar | null = null;\n\nexport function setProgressBar(bar: ProgressBar | null): void {\n currentProgress = bar;\n}\n\nexport function getProgressBar(): ProgressBar | null {\n return currentProgress;\n}\n\nexport function createProgressBar(barFormat: string, options: ProgressBar.ProgressBarOptions) {\n if (process.stderr.clearLine == null) {\n return null;\n }\n\n const bar = new ProgressBar(barFormat, options);\n\n const logReal = console.log;\n const infoReal = console.info;\n const warnReal = console.warn;\n const errorReal = console.error;\n\n const wrapNativeLogs = (): void => {\n // TODO(@kitten): This was a spread-passthrough since this code was added, but typings indicate\n // this isn't correct and we're discarding output here. If we could have a better stdout redirection\n // in the future here, that'd be preferable\n console.log = (...args: any[]) => bar.interrupt(...(args as [string]));\n console.info = (...args: any[]) => bar.interrupt(...(args as [string]));\n console.warn = (...args: any[]) => bar.interrupt(...(args as [string]));\n console.error = (...args: any[]) => bar.interrupt(...(args as [string]));\n };\n\n const resetNativeLogs = (): void => {\n console.log = logReal;\n console.info = infoReal;\n console.warn = warnReal;\n console.error = errorReal;\n };\n\n const originalTerminate = bar.terminate.bind(bar);\n bar.terminate = () => {\n resetNativeLogs();\n setProgressBar(null);\n originalTerminate();\n };\n\n wrapNativeLogs();\n setProgressBar(bar);\n return bar;\n}\n"],"names":["createProgressBar","getProgressBar","setProgressBar","currentProgress","bar","barFormat","options","process","stderr","clearLine","ProgressBar","logReal","console","log","infoReal","info","warnReal","warn","errorReal","error","wrapNativeLogs","args","interrupt","resetNativeLogs","originalTerminate","terminate","bind"],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/progress.ts"],"sourcesContent":["import ProgressBar from 'progress';\n\nimport { env } from './env';\n\nlet currentProgress: ProgressBar | null = null;\n\nexport function setProgressBar(bar: ProgressBar | null): void {\n currentProgress = bar;\n}\n\nexport function getProgressBar(): ProgressBar | null {\n return currentProgress;\n}\n\nexport function createProgressBar(barFormat: string, options: ProgressBar.ProgressBarOptions) {\n // Disable progress bars in JSONL mode\n if (env.EXPO_UNSTABLE_JSONL_OUTPUT) {\n return null;\n }\n\n if (process.stderr.clearLine == null) {\n return null;\n }\n\n const bar = new ProgressBar(barFormat, options);\n\n const logReal = console.log;\n const infoReal = console.info;\n const warnReal = console.warn;\n const errorReal = console.error;\n\n const wrapNativeLogs = (): void => {\n // TODO(@kitten): This was a spread-passthrough since this code was added, but typings indicate\n // this isn't correct and we're discarding output here. If we could have a better stdout redirection\n // in the future here, that'd be preferable\n console.log = (...args: any[]) => bar.interrupt(...(args as [string]));\n console.info = (...args: any[]) => bar.interrupt(...(args as [string]));\n console.warn = (...args: any[]) => bar.interrupt(...(args as [string]));\n console.error = (...args: any[]) => bar.interrupt(...(args as [string]));\n };\n\n const resetNativeLogs = (): void => {\n console.log = logReal;\n console.info = infoReal;\n console.warn = warnReal;\n console.error = errorReal;\n };\n\n const originalTerminate = bar.terminate.bind(bar);\n bar.terminate = () => {\n resetNativeLogs();\n setProgressBar(null);\n originalTerminate();\n };\n\n wrapNativeLogs();\n setProgressBar(bar);\n return bar;\n}\n"],"names":["createProgressBar","getProgressBar","setProgressBar","currentProgress","bar","barFormat","options","env","EXPO_UNSTABLE_JSONL_OUTPUT","process","stderr","clearLine","ProgressBar","logReal","console","log","infoReal","info","warnReal","warn","errorReal","error","wrapNativeLogs","args","interrupt","resetNativeLogs","originalTerminate","terminate","bind"],"mappings":";;;;;;;;;;;IAcgBA,iBAAiB;eAAjBA;;IAJAC,cAAc;eAAdA;;IAJAC,cAAc;eAAdA;;;;gEANQ;;;;;;qBAEJ;;;;;;AAEpB,IAAIC,kBAAsC;AAEnC,SAASD,eAAeE,GAAuB;IACpDD,kBAAkBC;AACpB;AAEO,SAASH;IACd,OAAOE;AACT;AAEO,SAASH,kBAAkBK,SAAiB,EAAEC,OAAuC;IAC1F,sCAAsC;IACtC,IAAIC,QAAG,CAACC,0BAA0B,EAAE;QAClC,OAAO;IACT;IAEA,IAAIC,QAAQC,MAAM,CAACC,SAAS,IAAI,MAAM;QACpC,OAAO;IACT;IAEA,MAAMP,MAAM,IAAIQ,CAAAA,WAAU,SAAC,CAACP,WAAWC;IAEvC,MAAMO,UAAUC,QAAQC,GAAG;IAC3B,MAAMC,WAAWF,QAAQG,IAAI;IAC7B,MAAMC,WAAWJ,QAAQK,IAAI;IAC7B,MAAMC,YAAYN,QAAQO,KAAK;IAE/B,MAAMC,iBAAiB;QACrB,+FAA+F;QAC/F,oGAAoG;QACpG,2CAA2C;QAC3CR,QAAQC,GAAG,GAAG,CAAC,GAAGQ,OAAgBnB,IAAIoB,SAAS,IAAKD;QACpDT,QAAQG,IAAI,GAAG,CAAC,GAAGM,OAAgBnB,IAAIoB,SAAS,IAAKD;QACrDT,QAAQK,IAAI,GAAG,CAAC,GAAGI,OAAgBnB,IAAIoB,SAAS,IAAKD;QACrDT,QAAQO,KAAK,GAAG,CAAC,GAAGE,OAAgBnB,IAAIoB,SAAS,IAAKD;IACxD;IAEA,MAAME,kBAAkB;QACtBX,QAAQC,GAAG,GAAGF;QACdC,QAAQG,IAAI,GAAGD;QACfF,QAAQK,IAAI,GAAGD;QACfJ,QAAQO,KAAK,GAAGD;IAClB;IAEA,MAAMM,oBAAoBtB,IAAIuB,SAAS,CAACC,IAAI,CAACxB;IAC7CA,IAAIuB,SAAS,GAAG;QACdF;QACAvB,eAAe;QACfwB;IACF;IAEAJ;IACApB,eAAeE;IACf,OAAOA;AACT"}
|
|
@@ -33,7 +33,7 @@ class FetchClient {
|
|
|
33
33
|
this.headers = {
|
|
34
34
|
accept: 'application/json',
|
|
35
35
|
'content-type': 'application/json',
|
|
36
|
-
'user-agent': `expo-cli/${"
|
|
36
|
+
'user-agent': `expo-cli/${"56.0.0-canary-20260128-67ce8d5"}`,
|
|
37
37
|
authorization: 'Basic ' + _nodebuffer().Buffer.from(`${target}:`).toString('base64')
|
|
38
38
|
};
|
|
39
39
|
}
|
package/build/src/utils/url.js
CHANGED
|
@@ -15,12 +15,12 @@ _export(exports, {
|
|
|
15
15
|
isUrlOk: function() {
|
|
16
16
|
return isUrlOk;
|
|
17
17
|
},
|
|
18
|
+
parseUrl: function() {
|
|
19
|
+
return parseUrl;
|
|
20
|
+
},
|
|
18
21
|
stripExtension: function() {
|
|
19
22
|
return stripExtension;
|
|
20
23
|
},
|
|
21
|
-
stripPort: function() {
|
|
22
|
-
return stripPort;
|
|
23
|
-
},
|
|
24
24
|
validateUrl: function() {
|
|
25
25
|
return validateUrl;
|
|
26
26
|
}
|
|
@@ -71,11 +71,7 @@ function validateUrl(urlString, { protocols, requireProtocol } = {}) {
|
|
|
71
71
|
return false;
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
-
function
|
|
75
|
-
var _coerceUrl;
|
|
76
|
-
return ((_coerceUrl = coerceUrl(host)) == null ? void 0 : _coerceUrl.hostname) ?? null;
|
|
77
|
-
}
|
|
78
|
-
function coerceUrl(urlString) {
|
|
74
|
+
function parseUrl(urlString) {
|
|
79
75
|
if (!urlString) {
|
|
80
76
|
return null;
|
|
81
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/url.ts"],"sourcesContent":["import dns from 'dns';\nimport { URL } from 'url';\n\nimport { fetchAsync } from '../api/rest/client';\n\n/** Check if a server is available based on the URL. */\nexport function isUrlAvailableAsync(url: string): Promise<boolean> {\n return new Promise<boolean>((resolve) => {\n dns.lookup(url, (err) => {\n resolve(!err);\n });\n });\n}\n\n/** Check if a request to the given URL is `ok` (status 200). */\nexport async function isUrlOk(url: string): Promise<boolean> {\n try {\n const res = await fetchAsync(url);\n return res.ok;\n } catch {\n return false;\n }\n}\n\n/** Determine if a string is a valid URL, can optionally ensure certain protocols (like `https` or `exp`) are adhered to. */\nexport function validateUrl(\n urlString: string,\n {\n protocols,\n requireProtocol,\n }: {\n /** Set of allowed protocols for the string to adhere to. @example ['exp', 'https'] */\n protocols?: string[];\n /** Ensure the URL has a protocol component (prefix before `://`). */\n requireProtocol?: boolean;\n } = {}\n) {\n try {\n const results = new URL(urlString);\n if (!results.protocol && !requireProtocol) {\n return true;\n }\n return protocols\n ? results.protocol\n ? protocols.map((x) => `${x.toLowerCase()}:`).includes(results.protocol)\n : false\n : true;\n } catch {\n return false;\n }\n}\n\
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/url.ts"],"sourcesContent":["import dns from 'dns';\nimport { URL } from 'url';\n\nimport { fetchAsync } from '../api/rest/client';\n\n/** Check if a server is available based on the URL. */\nexport function isUrlAvailableAsync(url: string): Promise<boolean> {\n return new Promise<boolean>((resolve) => {\n dns.lookup(url, (err) => {\n resolve(!err);\n });\n });\n}\n\n/** Check if a request to the given URL is `ok` (status 200). */\nexport async function isUrlOk(url: string): Promise<boolean> {\n try {\n const res = await fetchAsync(url);\n return res.ok;\n } catch {\n return false;\n }\n}\n\n/** Determine if a string is a valid URL, can optionally ensure certain protocols (like `https` or `exp`) are adhered to. */\nexport function validateUrl(\n urlString: string,\n {\n protocols,\n requireProtocol,\n }: {\n /** Set of allowed protocols for the string to adhere to. @example ['exp', 'https'] */\n protocols?: string[];\n /** Ensure the URL has a protocol component (prefix before `://`). */\n requireProtocol?: boolean;\n } = {}\n) {\n try {\n const results = new URL(urlString);\n if (!results.protocol && !requireProtocol) {\n return true;\n }\n return protocols\n ? results.protocol\n ? protocols.map((x) => `${x.toLowerCase()}:`).includes(results.protocol)\n : false\n : true;\n } catch {\n return false;\n }\n}\n\nexport function parseUrl(urlString?: string): URL | null {\n if (!urlString) {\n return null;\n }\n try {\n return new URL('/', urlString);\n } catch {\n return new URL('/', `http://${urlString}`);\n }\n}\n\n/** Strip a given extension from a URL string. */\nexport function stripExtension(url: string, extension: string): string {\n return url.replace(new RegExp(`.${extension}$`), '');\n}\n"],"names":["isUrlAvailableAsync","isUrlOk","parseUrl","stripExtension","validateUrl","url","Promise","resolve","dns","lookup","err","res","fetchAsync","ok","urlString","protocols","requireProtocol","results","URL","protocol","map","x","toLowerCase","includes","extension","replace","RegExp"],"mappings":";;;;;;;;;;;IAMgBA,mBAAmB;eAAnBA;;IASMC,OAAO;eAAPA;;IAqCNC,QAAQ;eAARA;;IAYAC,cAAc;eAAdA;;IAvCAC,WAAW;eAAXA;;;;gEAzBA;;;;;;;yBACI;;;;;;wBAEO;;;;;;AAGpB,SAASJ,oBAAoBK,GAAW;IAC7C,OAAO,IAAIC,QAAiB,CAACC;QAC3BC,cAAG,CAACC,MAAM,CAACJ,KAAK,CAACK;YACfH,QAAQ,CAACG;QACX;IACF;AACF;AAGO,eAAeT,QAAQI,GAAW;IACvC,IAAI;QACF,MAAMM,MAAM,MAAMC,IAAAA,kBAAU,EAACP;QAC7B,OAAOM,IAAIE,EAAE;IACf,EAAE,OAAM;QACN,OAAO;IACT;AACF;AAGO,SAAST,YACdU,SAAiB,EACjB,EACEC,SAAS,EACTC,eAAe,EAMhB,GAAG,CAAC,CAAC;IAEN,IAAI;QACF,MAAMC,UAAU,IAAIC,CAAAA,MAAE,KAAC,CAACJ;QACxB,IAAI,CAACG,QAAQE,QAAQ,IAAI,CAACH,iBAAiB;YACzC,OAAO;QACT;QACA,OAAOD,YACHE,QAAQE,QAAQ,GACdJ,UAAUK,GAAG,CAAC,CAACC,IAAM,GAAGA,EAAEC,WAAW,GAAG,CAAC,CAAC,EAAEC,QAAQ,CAACN,QAAQE,QAAQ,IACrE,QACF;IACN,EAAE,OAAM;QACN,OAAO;IACT;AACF;AAEO,SAASjB,SAASY,SAAkB;IACzC,IAAI,CAACA,WAAW;QACd,OAAO;IACT;IACA,IAAI;QACF,OAAO,IAAII,CAAAA,MAAE,KAAC,CAAC,KAAKJ;IACtB,EAAE,OAAM;QACN,OAAO,IAAII,CAAAA,MAAE,KAAC,CAAC,KAAK,CAAC,OAAO,EAAEJ,WAAW;IAC3C;AACF;AAGO,SAASX,eAAeE,GAAW,EAAEmB,SAAiB;IAC3D,OAAOnB,IAAIoB,OAAO,CAAC,IAAIC,OAAO,CAAC,CAAC,EAAEF,UAAU,CAAC,CAAC,GAAG;AACnD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "56.0.0-canary-20260128-67ce8d5",
|
|
4
4
|
"description": "The Expo CLI",
|
|
5
5
|
"main": "build/bin/cli",
|
|
6
6
|
"bin": {
|
|
@@ -43,24 +43,24 @@
|
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@0no-co/graphql.web": "^1.0.8",
|
|
45
45
|
"@expo/code-signing-certificates": "^0.0.6",
|
|
46
|
-
"@expo/config": "
|
|
47
|
-
"@expo/config-plugins": "
|
|
46
|
+
"@expo/config": "55.0.4-canary-20260128-67ce8d5",
|
|
47
|
+
"@expo/config-plugins": "55.0.4-canary-20260128-67ce8d5",
|
|
48
48
|
"@expo/devcert": "^1.2.1",
|
|
49
|
-
"@expo/env": "
|
|
50
|
-
"@expo/image-utils": "
|
|
51
|
-
"@expo/json-file": "
|
|
49
|
+
"@expo/env": "2.0.12-canary-20260128-67ce8d5",
|
|
50
|
+
"@expo/image-utils": "0.8.12-canary-20260128-67ce8d5",
|
|
51
|
+
"@expo/json-file": "10.0.12-canary-20260128-67ce8d5",
|
|
52
52
|
"@expo/metro": "~54.2.0",
|
|
53
|
-
"@expo/metro-config": "
|
|
54
|
-
"@expo/osascript": "
|
|
55
|
-
"@expo/package-manager": "
|
|
56
|
-
"@expo/plist": "
|
|
57
|
-
"@expo/prebuild-config": "
|
|
58
|
-
"@expo/router-server": "
|
|
59
|
-
"@expo/log-box": "55.0.
|
|
60
|
-
"@expo/schema-utils": "
|
|
53
|
+
"@expo/metro-config": "55.0.4-canary-20260128-67ce8d5",
|
|
54
|
+
"@expo/osascript": "2.4.3-canary-20260128-67ce8d5",
|
|
55
|
+
"@expo/package-manager": "1.10.3-canary-20260128-67ce8d5",
|
|
56
|
+
"@expo/plist": "0.5.3-canary-20260128-67ce8d5",
|
|
57
|
+
"@expo/prebuild-config": "55.0.4-canary-20260128-67ce8d5",
|
|
58
|
+
"@expo/router-server": "55.0.4-canary-20260128-67ce8d5",
|
|
59
|
+
"@expo/log-box": "55.0.4-canary-20260128-67ce8d5",
|
|
60
|
+
"@expo/schema-utils": "55.0.3-canary-20260128-67ce8d5",
|
|
61
61
|
"@expo/spawn-async": "^1.7.2",
|
|
62
62
|
"@expo/ws-tunnel": "^1.0.1",
|
|
63
|
-
"@expo/xcpretty": "^4.
|
|
63
|
+
"@expo/xcpretty": "^4.4.0",
|
|
64
64
|
"@react-native/dev-middleware": "0.83.1",
|
|
65
65
|
"@urql/core": "^5.0.6",
|
|
66
66
|
"@urql/exchange-retry": "^1.3.0",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"debug": "^4.3.4",
|
|
77
77
|
"dnssd-advertise": "^1.1.1",
|
|
78
78
|
"env-editor": "^0.4.1",
|
|
79
|
-
"expo-server": "
|
|
79
|
+
"expo-server": "55.1.0-canary-20260128-67ce8d5",
|
|
80
80
|
"getenv": "^2.0.0",
|
|
81
81
|
"glob": "^13.0.0",
|
|
82
82
|
"lan-network": "^0.1.6",
|
|
@@ -111,8 +111,8 @@
|
|
|
111
111
|
]
|
|
112
112
|
},
|
|
113
113
|
"peerDependencies": {
|
|
114
|
-
"expo": "
|
|
115
|
-
"expo-router": "
|
|
114
|
+
"expo": "55.0.0-canary-20260128-67ce8d5",
|
|
115
|
+
"expo-router": "55.0.0-canary-20260128-67ce8d5",
|
|
116
116
|
"react-native": "*"
|
|
117
117
|
},
|
|
118
118
|
"peerDependenciesMeta": {
|
|
@@ -169,6 +169,5 @@
|
|
|
169
169
|
"taskr": "^1.1.0",
|
|
170
170
|
"tree-kill": "^1.2.2",
|
|
171
171
|
"tsd": "^0.28.1"
|
|
172
|
-
}
|
|
173
|
-
"gitHead": "220594d473a3100248087151004ae4acb7282d5f"
|
|
172
|
+
}
|
|
174
173
|
}
|