@expo/cli 55.0.0-canary-20260105-6b962e6 → 55.0.0-canary-20260119-70f7c28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/build/bin/cli +1 -1
  2. package/build/src/export/embed/exportEmbedAsync.js +1 -2
  3. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  4. package/build/src/export/exportStaticAsync.js +117 -7
  5. package/build/src/export/exportStaticAsync.js.map +1 -1
  6. package/build/src/export/saveAssets.js +6 -4
  7. package/build/src/export/saveAssets.js.map +1 -1
  8. package/build/src/start/interface/interactiveActions.js +0 -1
  9. package/build/src/start/interface/interactiveActions.js.map +1 -1
  10. package/build/src/start/server/Bonjour.js +100 -0
  11. package/build/src/start/server/Bonjour.js.map +1 -0
  12. package/build/src/start/server/BundlerDevServer.js +22 -4
  13. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  14. package/build/src/start/server/DevToolsPluginCliExtensionExecutor.js +2 -2
  15. package/build/src/start/server/DevToolsPluginCliExtensionExecutor.js.map +1 -1
  16. package/build/src/start/server/MCPDevToolsPluginCLIExtensions.js +86 -0
  17. package/build/src/start/server/MCPDevToolsPluginCLIExtensions.js.map +1 -0
  18. package/build/src/start/server/createMCPDevToolsExtensionSchema.js +67 -0
  19. package/build/src/start/server/createMCPDevToolsExtensionSchema.js.map +1 -0
  20. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +10 -2
  21. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -1
  22. package/build/src/start/server/metro/MetroBundlerDevServer.js +103 -31
  23. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  24. package/build/src/start/server/metro/createServerRouteMiddleware.js +25 -1
  25. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  26. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +22 -8
  27. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  28. package/build/src/start/server/metro/dev-server/compression.js +45 -0
  29. package/build/src/start/server/metro/dev-server/compression.js.map +1 -0
  30. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +2 -2
  31. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -1
  32. package/build/src/start/server/metro/instantiateMetro.js +19 -7
  33. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  34. package/build/src/start/server/metro/resolveLoader.js +2 -1
  35. package/build/src/start/server/metro/resolveLoader.js.map +1 -1
  36. package/build/src/start/server/middleware/metroOptions.js +3 -2
  37. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  38. package/build/src/start/startAsync.js +6 -1
  39. package/build/src/start/startAsync.js.map +1 -1
  40. package/build/src/utils/env.js +15 -1
  41. package/build/src/utils/env.js.map +1 -1
  42. package/build/src/utils/git.js +1 -1
  43. package/build/src/utils/git.js.map +1 -1
  44. package/build/src/utils/net.js +43 -0
  45. package/build/src/utils/net.js.map +1 -0
  46. package/build/src/utils/telemetry/clients/FetchClient.js +1 -1
  47. package/build/src/utils/telemetry/utils/context.js +1 -1
  48. package/package.json +22 -21
  49. package/build/src/start/server/middleware/DataLoaderModuleMiddleware.js +0 -75
  50. package/build/src/start/server/middleware/DataLoaderModuleMiddleware.js.map +0 -1
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "DataLoaderModuleMiddleware", {
6
- enumerable: true,
7
- get: function() {
8
- return DataLoaderModuleMiddleware;
9
- }
10
- });
11
- function _config() {
12
- const data = require("@expo/config");
13
- _config = function() {
14
- return data;
15
- };
16
- return data;
17
- }
18
- const _ExpoMiddleware = require("./ExpoMiddleware");
19
- const _fetchRouterManifest = require("../metro/fetchRouterManifest");
20
- const LOADER_MODULE_ENDPOINT = '/_expo/loaders';
21
- class DataLoaderModuleMiddleware extends _ExpoMiddleware.ExpoMiddleware {
22
- constructor(projectRoot, appDir, executeServerDataLoaderAsync, getDevServerUrl){
23
- super(projectRoot, [
24
- LOADER_MODULE_ENDPOINT
25
- ]), this.projectRoot = projectRoot, this.appDir = appDir, this.executeServerDataLoaderAsync = executeServerDataLoaderAsync, this.getDevServerUrl = getDevServerUrl;
26
- }
27
- /**
28
- * Only handles a request if `req.pathname` begins with `/_expo/loaders/` and if the request
29
- * headers include `Accept: application/json`.
30
- */ shouldHandleRequest(req) {
31
- var _exp_extra_router, _exp_extra;
32
- if (!req.url) return false;
33
- const { pathname } = new URL(req.url, 'http://localhost');
34
- if (!pathname.startsWith(`${LOADER_MODULE_ENDPOINT}/`)) {
35
- return false;
36
- }
37
- if (req.headers.accept !== 'application/json') {
38
- return false;
39
- }
40
- const { exp } = (0, _config().getConfig)(this.projectRoot);
41
- return !!((_exp_extra = exp.extra) == null ? void 0 : (_exp_extra_router = _exp_extra.router) == null ? void 0 : _exp_extra_router.unstable_useServerDataLoaders);
42
- }
43
- async handleRequestAsync(req, res, next) {
44
- if (![
45
- 'GET',
46
- 'HEAD'
47
- ].includes(req.method ?? '')) {
48
- return next();
49
- }
50
- const manifest = await (0, _fetchRouterManifest.fetchManifest)(this.projectRoot, {
51
- appDir: this.appDir
52
- });
53
- const { pathname } = new URL(req.url, 'http://localhost');
54
- try {
55
- const routePath = pathname.replace('/_expo/loaders', '').replace('/index', '/') || '/';
56
- const matchingRoute = manifest == null ? void 0 : manifest.htmlRoutes.find((route)=>{
57
- return route.namedRegex.test(routePath);
58
- });
59
- if (!matchingRoute) {
60
- throw new Error(`No matching route for ${routePath}`);
61
- }
62
- const loaderData = await this.executeServerDataLoaderAsync(new URL(routePath, this.getDevServerUrl()), matchingRoute);
63
- res.setHeader('Content-Type', 'application/javascript; charset=utf-8');
64
- res.setHeader('Cache-Control', 'no-cache');
65
- res.statusCode = 200;
66
- res.end(JSON.stringify(loaderData ?? {}));
67
- } catch (error) {
68
- console.error(`Failed to generate loader module for ${pathname}:`, error);
69
- res.statusCode = 500;
70
- res.end(`{}`);
71
- }
72
- }
73
- }
74
-
75
- //# sourceMappingURL=DataLoaderModuleMiddleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/start/server/middleware/DataLoaderModuleMiddleware.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\nimport { type RouteInfo } from 'expo-server/private';\n\nimport { ExpoMiddleware } from './ExpoMiddleware';\nimport { ServerNext, ServerRequest, ServerResponse } from './server.types';\nimport { fetchManifest } from '../metro/fetchRouterManifest';\n\nconst LOADER_MODULE_ENDPOINT = '/_expo/loaders';\n\n/**\n * Middleware for serving loader data modules dynamically during development. This allows\n * client-side navigation to fetch loader data on-demand.\n *\n * In production, these modules are pre-generated as static files.\n */\nexport class DataLoaderModuleMiddleware extends ExpoMiddleware {\n constructor(\n protected projectRoot: string,\n protected appDir: string,\n private executeServerDataLoaderAsync: (url: URL, route: RouteInfo<RegExp>) => Promise<any>,\n private getDevServerUrl: () => string\n ) {\n super(projectRoot, [LOADER_MODULE_ENDPOINT]);\n }\n\n /**\n * Only handles a request if `req.pathname` begins with `/_expo/loaders/` and if the request\n * headers include `Accept: application/json`.\n */\n override shouldHandleRequest(req: ServerRequest): boolean {\n if (!req.url) return false;\n const { pathname } = new URL(req.url, 'http://localhost');\n\n if (!pathname.startsWith(`${LOADER_MODULE_ENDPOINT}/`)) {\n return false;\n }\n\n if (req.headers.accept !== 'application/json') {\n return false;\n }\n\n const { exp } = getConfig(this.projectRoot);\n return !!exp.extra?.router?.unstable_useServerDataLoaders;\n }\n\n async handleRequestAsync(\n req: ServerRequest,\n res: ServerResponse,\n next: ServerNext\n ): Promise<void> {\n if (!['GET', 'HEAD'].includes(req.method ?? '')) {\n return next();\n }\n\n const manifest = await fetchManifest(this.projectRoot, {\n appDir: this.appDir,\n });\n\n const { pathname } = new URL(req.url!, 'http://localhost');\n\n try {\n const routePath = pathname.replace('/_expo/loaders', '').replace('/index', '/') || '/';\n\n const matchingRoute = manifest?.htmlRoutes.find((route) => {\n return route.namedRegex.test(routePath);\n });\n\n if (!matchingRoute) {\n throw new Error(`No matching route for ${routePath}`);\n }\n\n const loaderData = await this.executeServerDataLoaderAsync(\n new URL(routePath, this.getDevServerUrl()),\n matchingRoute\n );\n\n res.setHeader('Content-Type', 'application/javascript; charset=utf-8');\n res.setHeader('Cache-Control', 'no-cache');\n res.statusCode = 200;\n res.end(JSON.stringify(loaderData ?? {}));\n } catch (error) {\n console.error(`Failed to generate loader module for ${pathname}:`, error);\n res.statusCode = 500;\n res.end(`{}`);\n }\n }\n}\n"],"names":["DataLoaderModuleMiddleware","LOADER_MODULE_ENDPOINT","ExpoMiddleware","constructor","projectRoot","appDir","executeServerDataLoaderAsync","getDevServerUrl","shouldHandleRequest","req","exp","url","pathname","URL","startsWith","headers","accept","getConfig","extra","router","unstable_useServerDataLoaders","handleRequestAsync","res","next","includes","method","manifest","fetchManifest","routePath","replace","matchingRoute","htmlRoutes","find","route","namedRegex","test","Error","loaderData","setHeader","statusCode","end","JSON","stringify","error","console"],"mappings":";;;;+BAeaA;;;eAAAA;;;;yBAfa;;;;;;gCAGK;qCAED;AAE9B,MAAMC,yBAAyB;AAQxB,MAAMD,mCAAmCE,8BAAc;IAC5DC,YACE,AAAUC,WAAmB,EAC7B,AAAUC,MAAc,EACxB,AAAQC,4BAAkF,EAC1F,AAAQC,eAA6B,CACrC;QACA,KAAK,CAACH,aAAa;YAACH;SAAuB,QALjCG,cAAAA,kBACAC,SAAAA,aACFC,+BAAAA,mCACAC,kBAAAA;IAGV;IAEA;;;GAGC,GACD,AAASC,oBAAoBC,GAAkB,EAAW;YAa/CC,mBAAAA;QAZT,IAAI,CAACD,IAAIE,GAAG,EAAE,OAAO;QACrB,MAAM,EAAEC,QAAQ,EAAE,GAAG,IAAIC,IAAIJ,IAAIE,GAAG,EAAE;QAEtC,IAAI,CAACC,SAASE,UAAU,CAAC,GAAGb,uBAAuB,CAAC,CAAC,GAAG;YACtD,OAAO;QACT;QAEA,IAAIQ,IAAIM,OAAO,CAACC,MAAM,KAAK,oBAAoB;YAC7C,OAAO;QACT;QAEA,MAAM,EAAEN,GAAG,EAAE,GAAGO,IAAAA,mBAAS,EAAC,IAAI,CAACb,WAAW;QAC1C,OAAO,CAAC,GAACM,aAAAA,IAAIQ,KAAK,sBAATR,oBAAAA,WAAWS,MAAM,qBAAjBT,kBAAmBU,6BAA6B;IAC3D;IAEA,MAAMC,mBACJZ,GAAkB,EAClBa,GAAmB,EACnBC,IAAgB,EACD;QACf,IAAI,CAAC;YAAC;YAAO;SAAO,CAACC,QAAQ,CAACf,IAAIgB,MAAM,IAAI,KAAK;YAC/C,OAAOF;QACT;QAEA,MAAMG,WAAW,MAAMC,IAAAA,kCAAa,EAAC,IAAI,CAACvB,WAAW,EAAE;YACrDC,QAAQ,IAAI,CAACA,MAAM;QACrB;QAEA,MAAM,EAAEO,QAAQ,EAAE,GAAG,IAAIC,IAAIJ,IAAIE,GAAG,EAAG;QAEvC,IAAI;YACF,MAAMiB,YAAYhB,SAASiB,OAAO,CAAC,kBAAkB,IAAIA,OAAO,CAAC,UAAU,QAAQ;YAEnF,MAAMC,gBAAgBJ,4BAAAA,SAAUK,UAAU,CAACC,IAAI,CAAC,CAACC;gBAC/C,OAAOA,MAAMC,UAAU,CAACC,IAAI,CAACP;YAC/B;YAEA,IAAI,CAACE,eAAe;gBAClB,MAAM,IAAIM,MAAM,CAAC,sBAAsB,EAAER,WAAW;YACtD;YAEA,MAAMS,aAAa,MAAM,IAAI,CAAC/B,4BAA4B,CACxD,IAAIO,IAAIe,WAAW,IAAI,CAACrB,eAAe,KACvCuB;YAGFR,IAAIgB,SAAS,CAAC,gBAAgB;YAC9BhB,IAAIgB,SAAS,CAAC,iBAAiB;YAC/BhB,IAAIiB,UAAU,GAAG;YACjBjB,IAAIkB,GAAG,CAACC,KAAKC,SAAS,CAACL,cAAc,CAAC;QACxC,EAAE,OAAOM,OAAO;YACdC,QAAQD,KAAK,CAAC,CAAC,qCAAqC,EAAE/B,SAAS,CAAC,CAAC,EAAE+B;YACnErB,IAAIiB,UAAU,GAAG;YACjBjB,IAAIkB,GAAG,CAAC,CAAC,EAAE,CAAC;QACd;IACF;AACF"}