@expo/cli 0.18.28 → 0.18.29
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 +1 -1
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +35 -0
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -0
- package/build/src/start/server/metro/instantiateMetro.js +3 -1
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/utils/telemetry/getContext.js +1 -1
- package/package.json +2 -2
package/build/bin/cli
CHANGED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "createDevToolsPluginWebsocketEndpoint", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: ()=>createDevToolsPluginWebsocketEndpoint
|
|
8
|
+
});
|
|
9
|
+
function _ws() {
|
|
10
|
+
const data = require("ws");
|
|
11
|
+
_ws = function() {
|
|
12
|
+
return data;
|
|
13
|
+
};
|
|
14
|
+
return data;
|
|
15
|
+
}
|
|
16
|
+
function createDevToolsPluginWebsocketEndpoint() {
|
|
17
|
+
const wss = new (_ws()).WebSocketServer({
|
|
18
|
+
noServer: true
|
|
19
|
+
});
|
|
20
|
+
wss.on("connection", (ws)=>{
|
|
21
|
+
ws.on("message", (message)=>{
|
|
22
|
+
// Broadcast the received message to all other connected clients
|
|
23
|
+
wss.clients.forEach((client)=>{
|
|
24
|
+
if (client !== ws && client.readyState === _ws().WebSocket.OPEN) {
|
|
25
|
+
client.send(message);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
return {
|
|
31
|
+
"/expo-dev-plugins/broadcast": wss
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=DevToolsPluginWebsocketEndpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/start/server/metro/DevToolsPluginWebsocketEndpoint.ts"],"sourcesContent":["import { WebSocket, WebSocketServer } from 'ws';\n\nexport function createDevToolsPluginWebsocketEndpoint(): Record<string, WebSocketServer> {\n const wss = new WebSocketServer({ noServer: true });\n\n wss.on('connection', (ws: WebSocket) => {\n ws.on('message', (message: string) => {\n // Broadcast the received message to all other connected clients\n wss.clients.forEach((client) => {\n if (client !== ws && client.readyState === WebSocket.OPEN) {\n client.send(message);\n }\n });\n });\n });\n\n return { '/expo-dev-plugins/broadcast': wss };\n}\n"],"names":["createDevToolsPluginWebsocketEndpoint","wss","WebSocketServer","noServer","on","ws","message","clients","forEach","client","readyState","WebSocket","OPEN","send"],"mappings":"AAAA;;;;+BAEgBA,uCAAqC;;aAArCA,qCAAqC;;;yBAFV,IAAI;;;;;;AAExC,SAASA,qCAAqC,GAAoC;IACvF,MAAMC,GAAG,GAAG,IAAIC,CAAAA,GAAe,EAAA,CAAA,gBAAA,CAAC;QAAEC,QAAQ,EAAE,IAAI;KAAE,CAAC,AAAC;IAEpDF,GAAG,CAACG,EAAE,CAAC,YAAY,EAAE,CAACC,EAAa,GAAK;QACtCA,EAAE,CAACD,EAAE,CAAC,SAAS,EAAE,CAACE,OAAe,GAAK;YACpC,gEAAgE;YAChEL,GAAG,CAACM,OAAO,CAACC,OAAO,CAAC,CAACC,MAAM,GAAK;gBAC9B,IAAIA,MAAM,KAAKJ,EAAE,IAAII,MAAM,CAACC,UAAU,KAAKC,GAAS,EAAA,UAAA,CAACC,IAAI,EAAE;oBACzDH,MAAM,CAACI,IAAI,CAACP,OAAO,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;QAAE,6BAA6B,EAAEL,GAAG;KAAE,CAAC;AAChD,CAAC"}
|
|
@@ -69,6 +69,7 @@ function _url() {
|
|
|
69
69
|
};
|
|
70
70
|
return data;
|
|
71
71
|
}
|
|
72
|
+
const _devToolsPluginWebsocketEndpoint = require("./DevToolsPluginWebsocketEndpoint");
|
|
72
73
|
const _metroTerminalReporter = require("./MetroTerminalReporter");
|
|
73
74
|
const _attachAtlas = require("./debugging/attachAtlas");
|
|
74
75
|
const _createDebugMiddleware = require("./debugging/createDebugMiddleware");
|
|
@@ -241,7 +242,8 @@ async function instantiateMetroAsync(metroBundler, options, { isExporting , exp
|
|
|
241
242
|
// @ts-expect-error: Inconsistent `websocketEndpoints` type between metro and @react-native-community/cli-server-api
|
|
242
243
|
websocketEndpoints: {
|
|
243
244
|
...websocketEndpoints,
|
|
244
|
-
...debugWebsocketEndpoints
|
|
245
|
+
...debugWebsocketEndpoints,
|
|
246
|
+
...(0, _devToolsPluginWebsocketEndpoint.createDevToolsPluginWebsocketEndpoint)()
|
|
245
247
|
},
|
|
246
248
|
watch: !isExporting && isWatchEnabled()
|
|
247
249
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/start/server/metro/instantiateMetro.ts"],"sourcesContent":["import { ExpoConfig, getConfig } from '@expo/config';\nimport { getDefaultConfig, LoadOptions } from '@expo/metro-config';\nimport chalk from 'chalk';\nimport { Server as ConnectServer } from 'connect';\nimport http from 'http';\nimport type Metro from 'metro';\nimport Bundler from 'metro/src/Bundler';\nimport { loadConfig, resolveConfig, ConfigT } from 'metro-config';\nimport { Terminal } from 'metro-core';\nimport util from 'node:util';\nimport semver from 'semver';\nimport { URL } from 'url';\n\nimport { MetroBundlerDevServer } from './MetroBundlerDevServer';\nimport { MetroTerminalReporter } from './MetroTerminalReporter';\nimport { attachAtlasAsync } from './debugging/attachAtlas';\nimport { createDebugMiddleware } from './debugging/createDebugMiddleware';\nimport { runServer } from './runServer-fork';\nimport { withMetroMultiPlatformAsync } from './withMetroMultiPlatform';\nimport { Log } from '../../../log';\nimport { getMetroProperties } from '../../../utils/analytics/getMetroProperties';\nimport { createDebuggerTelemetryMiddleware } from '../../../utils/analytics/metroDebuggerMiddleware';\nimport { env } from '../../../utils/env';\nimport { logEventAsync } from '../../../utils/telemetry';\nimport { createCorsMiddleware } from '../middleware/CorsMiddleware';\nimport { getMetroServerRoot } from '../middleware/ManifestMiddleware';\nimport { createJsInspectorMiddleware } from '../middleware/inspector/createJsInspectorMiddleware';\nimport { prependMiddleware, replaceMiddlewareWith } from '../middleware/mutations';\nimport { ServerNext, ServerRequest, ServerResponse } from '../middleware/server.types';\nimport { suppressRemoteDebuggingErrorMiddleware } from '../middleware/suppressErrorMiddleware';\nimport { getPlatformBundlers } from '../platformBundlers';\n\n// From expo/dev-server but with ability to use custom logger.\ntype MessageSocket = {\n broadcast: (method: string, params?: Record<string, any> | undefined) => void;\n};\n\nfunction gteSdkVersion(exp: Pick<ExpoConfig, 'sdkVersion'>, sdkVersion: string): boolean {\n if (!exp.sdkVersion) {\n return false;\n }\n\n if (exp.sdkVersion === 'UNVERSIONED') {\n return true;\n }\n\n try {\n return semver.gte(exp.sdkVersion, sdkVersion);\n } catch {\n throw new Error(`${exp.sdkVersion} is not a valid version. Must be in the form of x.y.z`);\n }\n}\n\n// Wrap terminal and polyfill console.log so we can log during bundling without breaking the indicator.\nclass LogRespectingTerminal extends Terminal {\n constructor(stream: import('node:net').Socket | import('node:stream').Writable) {\n super(stream);\n\n const sendLog = (...args: any[]) => {\n // @ts-expect-error\n this._logLines.push(\n // format args like console.log\n util.format(...args)\n );\n // @ts-expect-error\n this._scheduleUpdate();\n\n // Flush the logs to the terminal immediately so logs at the end of the process are not lost.\n this.flush();\n };\n\n console.log = sendLog;\n console.info = sendLog;\n }\n}\n\n// Share one instance of Terminal for all instances of Metro.\nconst terminal = new LogRespectingTerminal(process.stdout);\n\nexport async function loadMetroConfigAsync(\n projectRoot: string,\n options: LoadOptions,\n {\n exp,\n isExporting,\n getMetroBundler,\n }: { exp: ExpoConfig; isExporting: boolean; getMetroBundler: () => Bundler }\n) {\n let reportEvent: ((event: any) => void) | undefined;\n const serverRoot = getMetroServerRoot(projectRoot);\n const terminalReporter = new MetroTerminalReporter(serverRoot, terminal);\n\n const hasConfig = await resolveConfig(options.config, projectRoot);\n let config: ConfigT = {\n ...(await loadConfig(\n { cwd: projectRoot, projectRoot, ...options },\n // If the project does not have a metro.config.js, then we use the default config.\n hasConfig.isEmpty ? getDefaultConfig(projectRoot) : undefined\n )),\n reporter: {\n update(event: any) {\n terminalReporter.update(event);\n if (reportEvent) {\n reportEvent(event);\n }\n },\n },\n };\n\n if (\n // Requires SDK 50 for expo-assets hashAssetPlugin change.\n !exp.sdkVersion ||\n gteSdkVersion(exp, '50.0.0')\n ) {\n if (isExporting) {\n // This token will be used in the asset plugin to ensure the path is correct for writing locally.\n // @ts-expect-error: typed as readonly.\n config.transformer.publicPath = `/assets?export_path=${\n (exp.experiments?.baseUrl ?? '') + '/assets'\n }`;\n } else {\n // @ts-expect-error: typed as readonly\n config.transformer.publicPath = '/assets/?unstable_path=.';\n }\n } else {\n if (isExporting && exp.experiments?.baseUrl) {\n // This token will be used in the asset plugin to ensure the path is correct for writing locally.\n // @ts-expect-error: typed as readonly.\n config.transformer.publicPath = exp.experiments?.baseUrl;\n }\n }\n\n const platformBundlers = getPlatformBundlers(projectRoot, exp);\n\n if (exp.experiments?.reactCompiler) {\n Log.warn(`Experimental React Compiler is enabled.`);\n }\n\n config = await withMetroMultiPlatformAsync(projectRoot, {\n config,\n exp,\n platformBundlers,\n isTsconfigPathsEnabled: exp.experiments?.tsconfigPaths ?? true,\n webOutput: exp.web?.output ?? 'single',\n isFastResolverEnabled: env.EXPO_USE_FAST_RESOLVER,\n isExporting,\n isReactCanaryEnabled: exp.experiments?.reactCanary ?? false,\n getMetroBundler,\n });\n\n if (process.env.NODE_ENV !== 'test') {\n logEventAsync('metro config', getMetroProperties(projectRoot, exp, config));\n }\n\n return {\n config,\n setEventReporter: (logger: (event: any) => void) => (reportEvent = logger),\n reporter: terminalReporter,\n };\n}\n\n/** The most generic possible setup for Metro bundler. */\nexport async function instantiateMetroAsync(\n metroBundler: MetroBundlerDevServer,\n options: Omit<LoadOptions, 'logger'>,\n {\n isExporting,\n exp = getConfig(metroBundler.projectRoot, {\n skipSDKVersionRequirement: true,\n }).exp,\n }: { isExporting: boolean; exp?: ExpoConfig }\n): Promise<{\n metro: Metro.Server;\n server: http.Server;\n middleware: any;\n messageSocket: MessageSocket;\n}> {\n const projectRoot = metroBundler.projectRoot;\n\n const { config: metroConfig, setEventReporter } = await loadMetroConfigAsync(\n projectRoot,\n options,\n {\n exp,\n isExporting,\n getMetroBundler() {\n return metro.getBundler().getBundler();\n },\n }\n );\n\n const { createDevServerMiddleware, securityHeadersMiddleware } =\n require('@react-native-community/cli-server-api') as typeof import('@react-native-community/cli-server-api');\n\n const { middleware, messageSocketEndpoint, eventsSocketEndpoint, websocketEndpoints } =\n createDevServerMiddleware({\n port: metroConfig.server.port,\n watchFolders: metroConfig.watchFolders,\n });\n\n let debugWebsocketEndpoints: {\n [path: string]: import('ws').WebSocketServer;\n } = {};\n\n if (!isExporting) {\n // The `securityHeadersMiddleware` does not support cross-origin requests, we replace with the enhanced version.\n replaceMiddlewareWith(\n middleware as ConnectServer,\n securityHeadersMiddleware,\n createCorsMiddleware(exp)\n );\n\n prependMiddleware(middleware, suppressRemoteDebuggingErrorMiddleware);\n\n // TODO: We can probably drop this now.\n const customEnhanceMiddleware = metroConfig.server.enhanceMiddleware;\n // @ts-expect-error: can't mutate readonly config\n metroConfig.server.enhanceMiddleware = (metroMiddleware: any, server: Metro.Server) => {\n if (customEnhanceMiddleware) {\n metroMiddleware = customEnhanceMiddleware(metroMiddleware, server);\n }\n return middleware.use(metroMiddleware);\n };\n\n middleware.use(createDebuggerTelemetryMiddleware(projectRoot, exp));\n\n // Initialize all React Native debug features\n const { debugMiddleware, ...options } = createDebugMiddleware(metroBundler);\n debugWebsocketEndpoints = options.debugWebsocketEndpoints;\n prependMiddleware(middleware, debugMiddleware);\n middleware.use('/_expo/debugger', createJsInspectorMiddleware());\n }\n\n // Attach Expo Atlas if enabled\n const atlas = await attachAtlasAsync({\n isExporting,\n exp,\n projectRoot,\n middleware,\n metroConfig,\n // NOTE(cedric): reset the Atlas file once, and reuse it for static exports\n resetAtlasFile: isExporting,\n });\n\n const { server, metro } = await runServer(\n metroBundler,\n metroConfig,\n {\n // @ts-expect-error: Inconsistent `websocketEndpoints` type between metro and @react-native-community/cli-server-api\n websocketEndpoints: {\n ...websocketEndpoints,\n ...debugWebsocketEndpoints,\n },\n watch: !isExporting && isWatchEnabled(),\n },\n {\n mockServer: isExporting,\n }\n );\n\n // If Atlas is enabled, and can register to Metro, attach it to listen for changes\n atlas?.registerMetro(metro);\n\n prependMiddleware(middleware, (req: ServerRequest, res: ServerResponse, next: ServerNext) => {\n // If the URL is a Metro asset request, then we need to skip all other middleware to prevent\n // the community CLI's serve-static from hosting `/assets/index.html` in place of all assets if it exists.\n // /assets/?unstable_path=.\n if (req.url) {\n const url = new URL(req.url!, 'http://localhost:8000');\n if (url.pathname.match(/^\\/assets\\/?/) && url.searchParams.get('unstable_path') != null) {\n return metro.processRequest(req, res, next);\n }\n }\n return next();\n });\n\n setEventReporter(eventsSocketEndpoint.reportEvent);\n\n return {\n metro,\n server,\n middleware,\n messageSocket: messageSocketEndpoint,\n };\n}\n\n/**\n * Simplify and communicate if Metro is running without watching file updates,.\n * Exposed for testing.\n */\nexport function isWatchEnabled() {\n if (env.CI) {\n Log.log(\n chalk`Metro is running in CI mode, reloads are disabled. Remove {bold CI=true} to enable watch mode.`\n );\n }\n\n return !env.CI;\n}\n"],"names":["loadMetroConfigAsync","instantiateMetroAsync","isWatchEnabled","gteSdkVersion","exp","sdkVersion","semver","gte","Error","LogRespectingTerminal","Terminal","constructor","stream","sendLog","args","_logLines","push","util","format","_scheduleUpdate","flush","console","log","info","terminal","process","stdout","projectRoot","options","isExporting","getMetroBundler","reportEvent","serverRoot","getMetroServerRoot","terminalReporter","MetroTerminalReporter","hasConfig","resolveConfig","config","loadConfig","cwd","isEmpty","getDefaultConfig","undefined","reporter","update","event","transformer","publicPath","experiments","baseUrl","platformBundlers","getPlatformBundlers","reactCompiler","Log","warn","withMetroMultiPlatformAsync","isTsconfigPathsEnabled","tsconfigPaths","webOutput","web","output","isFastResolverEnabled","env","EXPO_USE_FAST_RESOLVER","isReactCanaryEnabled","reactCanary","NODE_ENV","logEventAsync","getMetroProperties","setEventReporter","logger","metroBundler","getConfig","skipSDKVersionRequirement","metroConfig","metro","getBundler","createDevServerMiddleware","securityHeadersMiddleware","require","middleware","messageSocketEndpoint","eventsSocketEndpoint","websocketEndpoints","port","server","watchFolders","debugWebsocketEndpoints","replaceMiddlewareWith","createCorsMiddleware","prependMiddleware","suppressRemoteDebuggingErrorMiddleware","customEnhanceMiddleware","enhanceMiddleware","metroMiddleware","use","createDebuggerTelemetryMiddleware","debugMiddleware","createDebugMiddleware","createJsInspectorMiddleware","atlas","attachAtlasAsync","resetAtlasFile","runServer","watch","mockServer","registerMetro","req","res","next","url","URL","pathname","match","searchParams","get","processRequest","messageSocket","CI","chalk"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/start/server/metro/instantiateMetro.ts"],"sourcesContent":["import { ExpoConfig, getConfig } from '@expo/config';\nimport { getDefaultConfig, LoadOptions } from '@expo/metro-config';\nimport chalk from 'chalk';\nimport { Server as ConnectServer } from 'connect';\nimport http from 'http';\nimport type Metro from 'metro';\nimport Bundler from 'metro/src/Bundler';\nimport { loadConfig, resolveConfig, ConfigT } from 'metro-config';\nimport { Terminal } from 'metro-core';\nimport util from 'node:util';\nimport semver from 'semver';\nimport { URL } from 'url';\n\nimport { createDevToolsPluginWebsocketEndpoint } from './DevToolsPluginWebsocketEndpoint';\nimport { MetroBundlerDevServer } from './MetroBundlerDevServer';\nimport { MetroTerminalReporter } from './MetroTerminalReporter';\nimport { attachAtlasAsync } from './debugging/attachAtlas';\nimport { createDebugMiddleware } from './debugging/createDebugMiddleware';\nimport { runServer } from './runServer-fork';\nimport { withMetroMultiPlatformAsync } from './withMetroMultiPlatform';\nimport { Log } from '../../../log';\nimport { getMetroProperties } from '../../../utils/analytics/getMetroProperties';\nimport { createDebuggerTelemetryMiddleware } from '../../../utils/analytics/metroDebuggerMiddleware';\nimport { env } from '../../../utils/env';\nimport { logEventAsync } from '../../../utils/telemetry';\nimport { createCorsMiddleware } from '../middleware/CorsMiddleware';\nimport { getMetroServerRoot } from '../middleware/ManifestMiddleware';\nimport { createJsInspectorMiddleware } from '../middleware/inspector/createJsInspectorMiddleware';\nimport { prependMiddleware, replaceMiddlewareWith } from '../middleware/mutations';\nimport { ServerNext, ServerRequest, ServerResponse } from '../middleware/server.types';\nimport { suppressRemoteDebuggingErrorMiddleware } from '../middleware/suppressErrorMiddleware';\nimport { getPlatformBundlers } from '../platformBundlers';\n\n// From expo/dev-server but with ability to use custom logger.\ntype MessageSocket = {\n broadcast: (method: string, params?: Record<string, any> | undefined) => void;\n};\n\nfunction gteSdkVersion(exp: Pick<ExpoConfig, 'sdkVersion'>, sdkVersion: string): boolean {\n if (!exp.sdkVersion) {\n return false;\n }\n\n if (exp.sdkVersion === 'UNVERSIONED') {\n return true;\n }\n\n try {\n return semver.gte(exp.sdkVersion, sdkVersion);\n } catch {\n throw new Error(`${exp.sdkVersion} is not a valid version. Must be in the form of x.y.z`);\n }\n}\n\n// Wrap terminal and polyfill console.log so we can log during bundling without breaking the indicator.\nclass LogRespectingTerminal extends Terminal {\n constructor(stream: import('node:net').Socket | import('node:stream').Writable) {\n super(stream);\n\n const sendLog = (...args: any[]) => {\n // @ts-expect-error\n this._logLines.push(\n // format args like console.log\n util.format(...args)\n );\n // @ts-expect-error\n this._scheduleUpdate();\n\n // Flush the logs to the terminal immediately so logs at the end of the process are not lost.\n this.flush();\n };\n\n console.log = sendLog;\n console.info = sendLog;\n }\n}\n\n// Share one instance of Terminal for all instances of Metro.\nconst terminal = new LogRespectingTerminal(process.stdout);\n\nexport async function loadMetroConfigAsync(\n projectRoot: string,\n options: LoadOptions,\n {\n exp,\n isExporting,\n getMetroBundler,\n }: { exp: ExpoConfig; isExporting: boolean; getMetroBundler: () => Bundler }\n) {\n let reportEvent: ((event: any) => void) | undefined;\n const serverRoot = getMetroServerRoot(projectRoot);\n const terminalReporter = new MetroTerminalReporter(serverRoot, terminal);\n\n const hasConfig = await resolveConfig(options.config, projectRoot);\n let config: ConfigT = {\n ...(await loadConfig(\n { cwd: projectRoot, projectRoot, ...options },\n // If the project does not have a metro.config.js, then we use the default config.\n hasConfig.isEmpty ? getDefaultConfig(projectRoot) : undefined\n )),\n reporter: {\n update(event: any) {\n terminalReporter.update(event);\n if (reportEvent) {\n reportEvent(event);\n }\n },\n },\n };\n\n if (\n // Requires SDK 50 for expo-assets hashAssetPlugin change.\n !exp.sdkVersion ||\n gteSdkVersion(exp, '50.0.0')\n ) {\n if (isExporting) {\n // This token will be used in the asset plugin to ensure the path is correct for writing locally.\n // @ts-expect-error: typed as readonly.\n config.transformer.publicPath = `/assets?export_path=${\n (exp.experiments?.baseUrl ?? '') + '/assets'\n }`;\n } else {\n // @ts-expect-error: typed as readonly\n config.transformer.publicPath = '/assets/?unstable_path=.';\n }\n } else {\n if (isExporting && exp.experiments?.baseUrl) {\n // This token will be used in the asset plugin to ensure the path is correct for writing locally.\n // @ts-expect-error: typed as readonly.\n config.transformer.publicPath = exp.experiments?.baseUrl;\n }\n }\n\n const platformBundlers = getPlatformBundlers(projectRoot, exp);\n\n if (exp.experiments?.reactCompiler) {\n Log.warn(`Experimental React Compiler is enabled.`);\n }\n\n config = await withMetroMultiPlatformAsync(projectRoot, {\n config,\n exp,\n platformBundlers,\n isTsconfigPathsEnabled: exp.experiments?.tsconfigPaths ?? true,\n webOutput: exp.web?.output ?? 'single',\n isFastResolverEnabled: env.EXPO_USE_FAST_RESOLVER,\n isExporting,\n isReactCanaryEnabled: exp.experiments?.reactCanary ?? false,\n getMetroBundler,\n });\n\n if (process.env.NODE_ENV !== 'test') {\n logEventAsync('metro config', getMetroProperties(projectRoot, exp, config));\n }\n\n return {\n config,\n setEventReporter: (logger: (event: any) => void) => (reportEvent = logger),\n reporter: terminalReporter,\n };\n}\n\n/** The most generic possible setup for Metro bundler. */\nexport async function instantiateMetroAsync(\n metroBundler: MetroBundlerDevServer,\n options: Omit<LoadOptions, 'logger'>,\n {\n isExporting,\n exp = getConfig(metroBundler.projectRoot, {\n skipSDKVersionRequirement: true,\n }).exp,\n }: { isExporting: boolean; exp?: ExpoConfig }\n): Promise<{\n metro: Metro.Server;\n server: http.Server;\n middleware: any;\n messageSocket: MessageSocket;\n}> {\n const projectRoot = metroBundler.projectRoot;\n\n const { config: metroConfig, setEventReporter } = await loadMetroConfigAsync(\n projectRoot,\n options,\n {\n exp,\n isExporting,\n getMetroBundler() {\n return metro.getBundler().getBundler();\n },\n }\n );\n\n const { createDevServerMiddleware, securityHeadersMiddleware } =\n require('@react-native-community/cli-server-api') as typeof import('@react-native-community/cli-server-api');\n\n const { middleware, messageSocketEndpoint, eventsSocketEndpoint, websocketEndpoints } =\n createDevServerMiddleware({\n port: metroConfig.server.port,\n watchFolders: metroConfig.watchFolders,\n });\n\n let debugWebsocketEndpoints: {\n [path: string]: import('ws').WebSocketServer;\n } = {};\n\n if (!isExporting) {\n // The `securityHeadersMiddleware` does not support cross-origin requests, we replace with the enhanced version.\n replaceMiddlewareWith(\n middleware as ConnectServer,\n securityHeadersMiddleware,\n createCorsMiddleware(exp)\n );\n\n prependMiddleware(middleware, suppressRemoteDebuggingErrorMiddleware);\n\n // TODO: We can probably drop this now.\n const customEnhanceMiddleware = metroConfig.server.enhanceMiddleware;\n // @ts-expect-error: can't mutate readonly config\n metroConfig.server.enhanceMiddleware = (metroMiddleware: any, server: Metro.Server) => {\n if (customEnhanceMiddleware) {\n metroMiddleware = customEnhanceMiddleware(metroMiddleware, server);\n }\n return middleware.use(metroMiddleware);\n };\n\n middleware.use(createDebuggerTelemetryMiddleware(projectRoot, exp));\n\n // Initialize all React Native debug features\n const { debugMiddleware, ...options } = createDebugMiddleware(metroBundler);\n debugWebsocketEndpoints = options.debugWebsocketEndpoints;\n prependMiddleware(middleware, debugMiddleware);\n middleware.use('/_expo/debugger', createJsInspectorMiddleware());\n }\n\n // Attach Expo Atlas if enabled\n const atlas = await attachAtlasAsync({\n isExporting,\n exp,\n projectRoot,\n middleware,\n metroConfig,\n // NOTE(cedric): reset the Atlas file once, and reuse it for static exports\n resetAtlasFile: isExporting,\n });\n\n const { server, metro } = await runServer(\n metroBundler,\n metroConfig,\n {\n // @ts-expect-error: Inconsistent `websocketEndpoints` type between metro and @react-native-community/cli-server-api\n websocketEndpoints: {\n ...websocketEndpoints,\n ...debugWebsocketEndpoints,\n ...createDevToolsPluginWebsocketEndpoint(),\n },\n watch: !isExporting && isWatchEnabled(),\n },\n {\n mockServer: isExporting,\n }\n );\n\n // If Atlas is enabled, and can register to Metro, attach it to listen for changes\n atlas?.registerMetro(metro);\n\n prependMiddleware(middleware, (req: ServerRequest, res: ServerResponse, next: ServerNext) => {\n // If the URL is a Metro asset request, then we need to skip all other middleware to prevent\n // the community CLI's serve-static from hosting `/assets/index.html` in place of all assets if it exists.\n // /assets/?unstable_path=.\n if (req.url) {\n const url = new URL(req.url!, 'http://localhost:8000');\n if (url.pathname.match(/^\\/assets\\/?/) && url.searchParams.get('unstable_path') != null) {\n return metro.processRequest(req, res, next);\n }\n }\n return next();\n });\n\n setEventReporter(eventsSocketEndpoint.reportEvent);\n\n return {\n metro,\n server,\n middleware,\n messageSocket: messageSocketEndpoint,\n };\n}\n\n/**\n * Simplify and communicate if Metro is running without watching file updates,.\n * Exposed for testing.\n */\nexport function isWatchEnabled() {\n if (env.CI) {\n Log.log(\n chalk`Metro is running in CI mode, reloads are disabled. Remove {bold CI=true} to enable watch mode.`\n );\n }\n\n return !env.CI;\n}\n"],"names":["loadMetroConfigAsync","instantiateMetroAsync","isWatchEnabled","gteSdkVersion","exp","sdkVersion","semver","gte","Error","LogRespectingTerminal","Terminal","constructor","stream","sendLog","args","_logLines","push","util","format","_scheduleUpdate","flush","console","log","info","terminal","process","stdout","projectRoot","options","isExporting","getMetroBundler","reportEvent","serverRoot","getMetroServerRoot","terminalReporter","MetroTerminalReporter","hasConfig","resolveConfig","config","loadConfig","cwd","isEmpty","getDefaultConfig","undefined","reporter","update","event","transformer","publicPath","experiments","baseUrl","platformBundlers","getPlatformBundlers","reactCompiler","Log","warn","withMetroMultiPlatformAsync","isTsconfigPathsEnabled","tsconfigPaths","webOutput","web","output","isFastResolverEnabled","env","EXPO_USE_FAST_RESOLVER","isReactCanaryEnabled","reactCanary","NODE_ENV","logEventAsync","getMetroProperties","setEventReporter","logger","metroBundler","getConfig","skipSDKVersionRequirement","metroConfig","metro","getBundler","createDevServerMiddleware","securityHeadersMiddleware","require","middleware","messageSocketEndpoint","eventsSocketEndpoint","websocketEndpoints","port","server","watchFolders","debugWebsocketEndpoints","replaceMiddlewareWith","createCorsMiddleware","prependMiddleware","suppressRemoteDebuggingErrorMiddleware","customEnhanceMiddleware","enhanceMiddleware","metroMiddleware","use","createDebuggerTelemetryMiddleware","debugMiddleware","createDebugMiddleware","createJsInspectorMiddleware","atlas","attachAtlasAsync","resetAtlasFile","runServer","createDevToolsPluginWebsocketEndpoint","watch","mockServer","registerMetro","req","res","next","url","URL","pathname","match","searchParams","get","processRequest","messageSocket","CI","chalk"],"mappings":"AAAA;;;;;;;;;;;IAgFsBA,oBAAoB,MAApBA,oBAAoB;IAmFpBC,qBAAqB,MAArBA,qBAAqB;IAiI3BC,cAAc,MAAdA,cAAc;;;yBApSQ,cAAc;;;;;;;yBACN,oBAAoB;;;;;;;8DAChD,OAAO;;;;;;;yBAK0B,cAAc;;;;;;;yBACxC,YAAY;;;;;;;8DACpB,WAAW;;;;;;;8DACT,QAAQ;;;;;;;yBACP,KAAK;;;;;;iDAE6B,mCAAmC;uCAEnD,yBAAyB;6BAC9B,yBAAyB;uCACpB,mCAAmC;+BAC/C,kBAAkB;wCACA,0BAA0B;qBAClD,cAAc;oCACC,6CAA6C;yCAC9B,kDAAkD;qBAChF,oBAAoB;2BACV,0BAA0B;gCACnB,8BAA8B;oCAChC,kCAAkC;6CACzB,qDAAqD;2BACxC,yBAAyB;yCAE3B,uCAAuC;kCAC1D,qBAAqB;;;;;;AAOzD,SAASC,aAAa,CAACC,GAAmC,EAAEC,UAAkB,EAAW;IACvF,IAAI,CAACD,GAAG,CAACC,UAAU,EAAE;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAID,GAAG,CAACC,UAAU,KAAK,aAAa,EAAE;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI;QACF,OAAOC,OAAM,EAAA,QAAA,CAACC,GAAG,CAACH,GAAG,CAACC,UAAU,EAAEA,UAAU,CAAC,CAAC;IAChD,EAAE,OAAM;QACN,MAAM,IAAIG,KAAK,CAAC,CAAC,EAAEJ,GAAG,CAACC,UAAU,CAAC,qDAAqD,CAAC,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC;AAED,uGAAuG;AACvG,MAAMI,qBAAqB,SAASC,UAAQ,EAAA,SAAA;IAC1CC,YAAYC,MAAkE,CAAE;QAC9E,KAAK,CAACA,MAAM,CAAC,CAAC;QAEd,MAAMC,OAAO,GAAG,CAAC,GAAGC,IAAI,AAAO,GAAK;YAClC,mBAAmB;YACnB,IAAI,CAACC,SAAS,CAACC,IAAI,CACjB,+BAA+B;YAC/BC,SAAI,EAAA,QAAA,CAACC,MAAM,IAAIJ,IAAI,CAAC,CACrB,CAAC;YACF,mBAAmB;YACnB,IAAI,CAACK,eAAe,EAAE,CAAC;YAEvB,6FAA6F;YAC7F,IAAI,CAACC,KAAK,EAAE,CAAC;QACf,CAAC,AAAC;QAEFC,OAAO,CAACC,GAAG,GAAGT,OAAO,CAAC;QACtBQ,OAAO,CAACE,IAAI,GAAGV,OAAO,CAAC;IACzB;CACD;AAED,6DAA6D;AAC7D,MAAMW,QAAQ,GAAG,IAAIf,qBAAqB,CAACgB,OAAO,CAACC,MAAM,CAAC,AAAC;AAEpD,eAAe1B,oBAAoB,CACxC2B,WAAmB,EACnBC,OAAoB,EACpB,EACExB,GAAG,CAAA,EACHyB,WAAW,CAAA,EACXC,eAAe,CAAA,EAC2D,EAC5E;QA+CI1B,GAAe,EAQOA,IAAe,EAC5BA,IAAO,EAGIA,IAAe;IA1DvC,IAAI2B,WAAW,AAAoC,AAAC;IACpD,MAAMC,UAAU,GAAGC,IAAAA,mBAAkB,mBAAA,EAACN,WAAW,CAAC,AAAC;IACnD,MAAMO,gBAAgB,GAAG,IAAIC,sBAAqB,sBAAA,CAACH,UAAU,EAAER,QAAQ,CAAC,AAAC;IAEzE,MAAMY,SAAS,GAAG,MAAMC,IAAAA,aAAa,EAAA,cAAA,EAACT,OAAO,CAACU,MAAM,EAAEX,WAAW,CAAC,AAAC;IACnE,IAAIW,MAAM,GAAY;QACpB,GAAI,MAAMC,IAAAA,aAAU,EAAA,WAAA,EAClB;YAAEC,GAAG,EAAEb,WAAW;YAAEA,WAAW;YAAE,GAAGC,OAAO;SAAE,EAC7C,kFAAkF;QAClFQ,SAAS,CAACK,OAAO,GAAGC,IAAAA,YAAgB,EAAA,iBAAA,EAACf,WAAW,CAAC,GAAGgB,SAAS,CAC9D;QACDC,QAAQ,EAAE;YACRC,MAAM,EAACC,KAAU,EAAE;gBACjBZ,gBAAgB,CAACW,MAAM,CAACC,KAAK,CAAC,CAAC;gBAC/B,IAAIf,WAAW,EAAE;oBACfA,WAAW,CAACe,KAAK,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;SACF;KACF,AAAC;IAEF,IACE,0DAA0D;IAC1D,CAAC1C,GAAG,CAACC,UAAU,IACfF,aAAa,CAACC,GAAG,EAAE,QAAQ,CAAC,EAC5B;QACA,IAAIyB,WAAW,EAAE;gBAIZzB,IAAe;gBAAfA,IAAwB;YAH3B,iGAAiG;YACjG,uCAAuC;YACvCkC,MAAM,CAACS,WAAW,CAACC,UAAU,GAAG,CAAC,oBAAoB,EACnD,CAAC5C,CAAAA,IAAwB,GAAxBA,CAAAA,IAAe,GAAfA,GAAG,CAAC6C,WAAW,SAAS,GAAxB7C,KAAAA,CAAwB,GAAxBA,IAAe,CAAE8C,OAAO,YAAxB9C,IAAwB,GAAI,EAAE,CAAC,GAAG,SAAS,CAC7C,CAAC,CAAC;QACL,OAAO;YACL,sCAAsC;YACtCkC,MAAM,CAACS,WAAW,CAACC,UAAU,GAAG,0BAA0B,CAAC;QAC7D,CAAC;IACH,OAAO;YACc5C,IAAe;QAAlC,IAAIyB,WAAW,IAAIzB,CAAAA,CAAAA,IAAe,GAAfA,GAAG,CAAC6C,WAAW,SAAS,GAAxB7C,KAAAA,CAAwB,GAAxBA,IAAe,CAAE8C,OAAO,CAAA,EAAE;gBAGX9C,IAAe;YAF/C,iGAAiG;YACjG,uCAAuC;YACvCkC,MAAM,CAACS,WAAW,CAACC,UAAU,GAAG5C,CAAAA,IAAe,GAAfA,GAAG,CAAC6C,WAAW,SAAS,GAAxB7C,KAAAA,CAAwB,GAAxBA,IAAe,CAAE8C,OAAO,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,MAAMC,gBAAgB,GAAGC,IAAAA,iBAAmB,oBAAA,EAACzB,WAAW,EAAEvB,GAAG,CAAC,AAAC;IAE/D,IAAIA,CAAAA,GAAe,GAAfA,GAAG,CAAC6C,WAAW,SAAe,GAA9B7C,KAAAA,CAA8B,GAA9BA,GAAe,CAAEiD,aAAa,EAAE;QAClCC,IAAG,IAAA,CAACC,IAAI,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC;IACtD,CAAC;QAMyBnD,IAA8B,EAC3CA,IAAe,EAGJA,KAA4B;IARpDkC,MAAM,GAAG,MAAMkB,IAAAA,uBAA2B,4BAAA,EAAC7B,WAAW,EAAE;QACtDW,MAAM;QACNlC,GAAG;QACH+C,gBAAgB;QAChBM,sBAAsB,EAAErD,CAAAA,IAA8B,GAA9BA,CAAAA,IAAe,GAAfA,GAAG,CAAC6C,WAAW,SAAe,GAA9B7C,KAAAA,CAA8B,GAA9BA,IAAe,CAAEsD,aAAa,YAA9BtD,IAA8B,GAAI,IAAI;QAC9DuD,SAAS,EAAEvD,CAAAA,IAAe,GAAfA,CAAAA,IAAO,GAAPA,GAAG,CAACwD,GAAG,SAAQ,GAAfxD,KAAAA,CAAe,GAAfA,IAAO,CAAEyD,MAAM,YAAfzD,IAAe,GAAI,QAAQ;QACtC0D,qBAAqB,EAAEC,IAAG,IAAA,CAACC,sBAAsB;QACjDnC,WAAW;QACXoC,oBAAoB,EAAE7D,CAAAA,KAA4B,GAA5BA,CAAAA,IAAe,GAAfA,GAAG,CAAC6C,WAAW,SAAa,GAA5B7C,KAAAA,CAA4B,GAA5BA,IAAe,CAAE8D,WAAW,YAA5B9D,KAA4B,GAAI,KAAK;QAC3D0B,eAAe;KAChB,CAAC,CAAC;IAEH,IAAIL,OAAO,CAACsC,GAAG,CAACI,QAAQ,KAAK,MAAM,EAAE;QACnCC,IAAAA,UAAa,cAAA,EAAC,cAAc,EAAEC,IAAAA,mBAAkB,mBAAA,EAAC1C,WAAW,EAAEvB,GAAG,EAAEkC,MAAM,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO;QACLA,MAAM;QACNgC,gBAAgB,EAAE,CAACC,MAA4B,GAAMxC,WAAW,GAAGwC,MAAM,AAAC;QAC1E3B,QAAQ,EAAEV,gBAAgB;KAC3B,CAAC;AACJ,CAAC;AAGM,eAAejC,qBAAqB,CACzCuE,YAAmC,EACnC5C,OAAoC,EACpC,EACEC,WAAW,CAAA,EACXzB,GAAG,EAAGqE,IAAAA,OAAS,EAAA,UAAA,EAACD,YAAY,CAAC7C,WAAW,EAAE;IACxC+C,yBAAyB,EAAE,IAAI;CAChC,CAAC,CAACtE,GAAG,CAAA,EACqC,EAM5C;IACD,MAAMuB,WAAW,GAAG6C,YAAY,CAAC7C,WAAW,AAAC;IAE7C,MAAM,EAAEW,MAAM,EAAEqC,WAAW,CAAA,EAAEL,gBAAgB,CAAA,EAAE,GAAG,MAAMtE,oBAAoB,CAC1E2B,WAAW,EACXC,OAAO,EACP;QACExB,GAAG;QACHyB,WAAW;QACXC,eAAe,IAAG;YAChB,OAAO8C,KAAK,CAACC,UAAU,EAAE,CAACA,UAAU,EAAE,CAAC;QACzC,CAAC;KACF,CACF,AAAC;IAEF,MAAM,EAAEC,yBAAyB,CAAA,EAAEC,yBAAyB,CAAA,EAAE,GAC5DC,OAAO,CAAC,wCAAwC,CAAC,AAA2D,AAAC;IAE/G,MAAM,EAAEC,UAAU,CAAA,EAAEC,qBAAqB,CAAA,EAAEC,oBAAoB,CAAA,EAAEC,kBAAkB,CAAA,EAAE,GACnFN,yBAAyB,CAAC;QACxBO,IAAI,EAAEV,WAAW,CAACW,MAAM,CAACD,IAAI;QAC7BE,YAAY,EAAEZ,WAAW,CAACY,YAAY;KACvC,CAAC,AAAC;IAEL,IAAIC,uBAAuB,GAEvB,EAAE,AAAC;IAEP,IAAI,CAAC3D,WAAW,EAAE;QAChB,gHAAgH;QAChH4D,IAAAA,UAAqB,sBAAA,EACnBR,UAAU,EACVF,yBAAyB,EACzBW,IAAAA,eAAoB,qBAAA,EAACtF,GAAG,CAAC,CAC1B,CAAC;QAEFuF,IAAAA,UAAiB,kBAAA,EAACV,UAAU,EAAEW,wBAAsC,uCAAA,CAAC,CAAC;QAEtE,uCAAuC;QACvC,MAAMC,uBAAuB,GAAGlB,WAAW,CAACW,MAAM,CAACQ,iBAAiB,AAAC;QACrE,iDAAiD;QACjDnB,WAAW,CAACW,MAAM,CAACQ,iBAAiB,GAAG,CAACC,eAAoB,EAAET,MAAoB,GAAK;YACrF,IAAIO,uBAAuB,EAAE;gBAC3BE,eAAe,GAAGF,uBAAuB,CAACE,eAAe,EAAET,MAAM,CAAC,CAAC;YACrE,CAAC;YACD,OAAOL,UAAU,CAACe,GAAG,CAACD,eAAe,CAAC,CAAC;QACzC,CAAC,CAAC;QAEFd,UAAU,CAACe,GAAG,CAACC,IAAAA,wBAAiC,kCAAA,EAACtE,WAAW,EAAEvB,GAAG,CAAC,CAAC,CAAC;QAEpE,6CAA6C;QAC7C,MAAM,EAAE8F,eAAe,CAAA,EAAE,GAAGtE,QAAO,EAAE,GAAGuE,IAAAA,sBAAqB,sBAAA,EAAC3B,YAAY,CAAC,AAAC;QAC5EgB,uBAAuB,GAAG5D,QAAO,CAAC4D,uBAAuB,CAAC;QAC1DG,IAAAA,UAAiB,kBAAA,EAACV,UAAU,EAAEiB,eAAe,CAAC,CAAC;QAC/CjB,UAAU,CAACe,GAAG,CAAC,iBAAiB,EAAEI,IAAAA,4BAA2B,4BAAA,GAAE,CAAC,CAAC;IACnE,CAAC;IAED,+BAA+B;IAC/B,MAAMC,KAAK,GAAG,MAAMC,IAAAA,YAAgB,iBAAA,EAAC;QACnCzE,WAAW;QACXzB,GAAG;QACHuB,WAAW;QACXsD,UAAU;QACVN,WAAW;QACX,2EAA2E;QAC3E4B,cAAc,EAAE1E,WAAW;KAC5B,CAAC,AAAC;IAEH,MAAM,EAAEyD,MAAM,CAAA,EAAEV,KAAK,CAAA,EAAE,GAAG,MAAM4B,IAAAA,cAAS,UAAA,EACvChC,YAAY,EACZG,WAAW,EACX;QACE,oHAAoH;QACpHS,kBAAkB,EAAE;YAClB,GAAGA,kBAAkB;YACrB,GAAGI,uBAAuB;YAC1B,GAAGiB,IAAAA,gCAAqC,sCAAA,GAAE;SAC3C;QACDC,KAAK,EAAE,CAAC7E,WAAW,IAAI3B,cAAc,EAAE;KACxC,EACD;QACEyG,UAAU,EAAE9E,WAAW;KACxB,CACF,AAAC;IAEF,kFAAkF;IAClFwE,KAAK,QAAe,GAApBA,KAAAA,CAAoB,GAApBA,KAAK,CAAEO,aAAa,CAAChC,KAAK,CAAC,CAAC;IAE5Be,IAAAA,UAAiB,kBAAA,EAACV,UAAU,EAAE,CAAC4B,GAAkB,EAAEC,GAAmB,EAAEC,IAAgB,GAAK;QAC3F,4FAA4F;QAC5F,0GAA0G;QAC1G,2BAA2B;QAC3B,IAAIF,GAAG,CAACG,GAAG,EAAE;YACX,MAAMA,GAAG,GAAG,IAAIC,CAAAA,IAAG,EAAA,CAAA,IAAA,CAACJ,GAAG,CAACG,GAAG,EAAG,uBAAuB,CAAC,AAAC;YACvD,IAAIA,GAAG,CAACE,QAAQ,CAACC,KAAK,gBAAgB,IAAIH,GAAG,CAACI,YAAY,CAACC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE;gBACvF,OAAOzC,KAAK,CAAC0C,cAAc,CAACT,GAAG,EAAEC,GAAG,EAAEC,IAAI,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QACD,OAAOA,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEHzC,gBAAgB,CAACa,oBAAoB,CAACpD,WAAW,CAAC,CAAC;IAEnD,OAAO;QACL6C,KAAK;QACLU,MAAM;QACNL,UAAU;QACVsC,aAAa,EAAErC,qBAAqB;KACrC,CAAC;AACJ,CAAC;AAMM,SAAShF,cAAc,GAAG;IAC/B,IAAI6D,IAAG,IAAA,CAACyD,EAAE,EAAE;QACVlE,IAAG,IAAA,CAAChC,GAAG,CACLmG,IAAAA,MAAK,EAAA,QAAA,CAAA,CAAC,8FAA8F,CAAC,CACtG,CAAC;IACJ,CAAC;IAED,OAAO,CAAC1D,IAAG,IAAA,CAACyD,EAAE,CAAC;AACjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/cli",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.29",
|
|
4
4
|
"description": "The Expo CLI",
|
|
5
5
|
"main": "build/bin/cli",
|
|
6
6
|
"bin": {
|
|
@@ -173,5 +173,5 @@
|
|
|
173
173
|
"tree-kill": "^1.2.2",
|
|
174
174
|
"tsd": "^0.28.1"
|
|
175
175
|
},
|
|
176
|
-
"gitHead": "
|
|
176
|
+
"gitHead": "332ba65c4e421bdb8973cc749e3e34b5fa5ce903"
|
|
177
177
|
}
|