@expo/cli 0.18.13 → 0.18.15

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 CHANGED
@@ -120,7 +120,7 @@ const args = (0, _arg().default)({
120
120
  });
121
121
  if (args["--version"]) {
122
122
  // Version is added in the build script.
123
- console.log("0.18.13");
123
+ console.log("0.18.15");
124
124
  process.exit(0);
125
125
  }
126
126
  if (args["--non-interactive"]) {
@@ -25,8 +25,9 @@ function createCorsMiddleware(exp) {
25
25
  }
26
26
  return (req, res, next)=>{
27
27
  if (typeof req.headers.origin === "string") {
28
- const { hostname } = new URL(req.headers.origin);
29
- if (!allowedHostnames.includes(hostname)) {
28
+ const { host , hostname } = new URL(req.headers.origin);
29
+ const isSameOrigin = host === req.headers.host;
30
+ if (!isSameOrigin && !allowedHostnames.includes(hostname)) {
30
31
  next(new Error(`Unauthorized request from ${req.headers.origin}. ` + "This may happen because of a conflicting browser extension to intercept HTTP requests. " + "Please try again without browser extensions or using incognito mode."));
31
32
  return;
32
33
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/server/middleware/CorsMiddleware.ts"],"sourcesContent":["import type { ExpoConfig } from '@expo/config';\n\nimport type { ServerRequest, ServerResponse } from './server.types';\n\nconst DEFAULT_ALLOWED_CORS_HOSTNAMES = [\n 'localhost',\n 'chrome-devtools-frontend.appspot.com', // Support remote Chrome DevTools frontend\n 'devtools', // Support local Chrome DevTools `devtools://devtools`\n];\n\nexport function createCorsMiddleware(exp: ExpoConfig) {\n const allowedHostnames = [...DEFAULT_ALLOWED_CORS_HOSTNAMES];\n // Support for expo-router API routes\n if (exp.extra?.router?.headOrigin) {\n allowedHostnames.push(new URL(exp.extra.router.headOrigin).hostname);\n }\n if (exp.extra?.router?.origin) {\n allowedHostnames.push(new URL(exp.extra.router.origin).hostname);\n }\n\n return (req: ServerRequest, res: ServerResponse, next: (err?: Error) => void) => {\n if (typeof req.headers.origin === 'string') {\n const { hostname } = new URL(req.headers.origin);\n if (!allowedHostnames.includes(hostname)) {\n next(\n new Error(\n `Unauthorized request from ${req.headers.origin}. ` +\n 'This may happen because of a conflicting browser extension to intercept HTTP requests. ' +\n 'Please try again without browser extensions or using incognito mode.'\n )\n );\n return;\n }\n\n res.setHeader('Access-Control-Allow-Origin', req.headers.origin);\n maybePreventMetroResetCorsHeader(req, res);\n }\n\n // Block MIME-type sniffing.\n res.setHeader('X-Content-Type-Options', 'nosniff');\n\n next();\n };\n}\n\n// When accessing source maps,\n// metro will overwrite the `Access-Control-Allow-Origin` header with hardcoded `devtools://devtools` value.\n// https://github.com/facebook/metro/blob/a7f8955e6d2424b0d5f73d4bcdaf22560e1d5f27/packages/metro/src/Server.js#L540\n// This is a workaround to prevent this behavior.\nfunction maybePreventMetroResetCorsHeader(req: ServerRequest, res: ServerResponse) {\n const pathname = req.url ? new URL(req.url, `http://${req.headers.host}`).pathname : '';\n if (pathname.endsWith('.map')) {\n const setHeader = res.setHeader.bind(res);\n res.setHeader = (key, ...args) => {\n if (key !== 'Access-Control-Allow-Origin') {\n setHeader(key, ...args);\n }\n return res;\n };\n }\n}\n"],"names":["createCorsMiddleware","DEFAULT_ALLOWED_CORS_HOSTNAMES","exp","allowedHostnames","extra","router","headOrigin","push","URL","hostname","origin","req","res","next","headers","includes","Error","setHeader","maybePreventMetroResetCorsHeader","pathname","url","host","endsWith","bind","key","args"],"mappings":"AAAA;;;;+BAUgBA,sBAAoB;;aAApBA,oBAAoB;;AANpC,MAAMC,8BAA8B,GAAG;IACrC,WAAW;IACX,sCAAsC;IACtC,UAAU;CACX,AAAC;AAEK,SAASD,oBAAoB,CAACE,GAAe,EAAE;QAGhDA,GAAS,QAGTA,IAAS;IALb,MAAMC,gBAAgB,GAAG;WAAIF,8BAA8B;KAAC,AAAC;IAC7D,qCAAqC;IACrC,IAAIC,CAAAA,GAAS,GAATA,GAAG,CAACE,KAAK,SAAQ,GAAjBF,KAAAA,CAAiB,GAAjBA,QAAAA,GAAS,CAAEG,MAAM,SAAA,GAAjBH,KAAAA,CAAiB,QAAEI,UAAU,AAAZ,EAAc;QACjCH,gBAAgB,CAACI,IAAI,CAAC,IAAIC,GAAG,CAACN,GAAG,CAACE,KAAK,CAACC,MAAM,CAACC,UAAU,CAAC,CAACG,QAAQ,CAAC,CAAC;IACvE,CAAC;IACD,IAAIP,CAAAA,IAAS,GAATA,GAAG,CAACE,KAAK,SAAQ,GAAjBF,KAAAA,CAAiB,GAAjBA,QAAAA,IAAS,CAAEG,MAAM,SAAA,GAAjBH,KAAAA,CAAiB,QAAEQ,MAAM,AAAR,EAAU;QAC7BP,gBAAgB,CAACI,IAAI,CAAC,IAAIC,GAAG,CAACN,GAAG,CAACE,KAAK,CAACC,MAAM,CAACK,MAAM,CAAC,CAACD,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,CAACE,GAAkB,EAAEC,GAAmB,EAAEC,IAA2B,GAAK;QAC/E,IAAI,OAAOF,GAAG,CAACG,OAAO,CAACJ,MAAM,KAAK,QAAQ,EAAE;YAC1C,MAAM,EAAED,QAAQ,CAAA,EAAE,GAAG,IAAID,GAAG,CAACG,GAAG,CAACG,OAAO,CAACJ,MAAM,CAAC,AAAC;YACjD,IAAI,CAACP,gBAAgB,CAACY,QAAQ,CAACN,QAAQ,CAAC,EAAE;gBACxCI,IAAI,CACF,IAAIG,KAAK,CACP,CAAC,0BAA0B,EAAEL,GAAG,CAACG,OAAO,CAACJ,MAAM,CAAC,EAAE,CAAC,GACjD,yFAAyF,GACzF,sEAAsE,CACzE,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YAEDE,GAAG,CAACK,SAAS,CAAC,6BAA6B,EAAEN,GAAG,CAACG,OAAO,CAACJ,MAAM,CAAC,CAAC;YACjEQ,gCAAgC,CAACP,GAAG,EAAEC,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,4BAA4B;QAC5BA,GAAG,CAACK,SAAS,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;QAEnDJ,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAED,8BAA8B;AAC9B,4GAA4G;AAC5G,oHAAoH;AACpH,iDAAiD;AACjD,SAASK,gCAAgC,CAACP,GAAkB,EAAEC,GAAmB,EAAE;IACjF,MAAMO,QAAQ,GAAGR,GAAG,CAACS,GAAG,GAAG,IAAIZ,GAAG,CAACG,GAAG,CAACS,GAAG,EAAE,CAAC,OAAO,EAAET,GAAG,CAACG,OAAO,CAACO,IAAI,CAAC,CAAC,CAAC,CAACF,QAAQ,GAAG,EAAE,AAAC;IACxF,IAAIA,QAAQ,CAACG,QAAQ,CAAC,MAAM,CAAC,EAAE;QAC7B,MAAML,SAAS,GAAGL,GAAG,CAACK,SAAS,CAACM,IAAI,CAACX,GAAG,CAAC,AAAC;QAC1CA,GAAG,CAACK,SAAS,GAAG,CAACO,GAAG,EAAKC,GAAAA,IAAI,GAAK;YAChC,IAAID,GAAG,KAAK,6BAA6B,EAAE;gBACzCP,SAAS,CAACO,GAAG,KAAKC,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,OAAOb,GAAG,CAAC;QACb,CAAC,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"sources":["../../../../../src/start/server/middleware/CorsMiddleware.ts"],"sourcesContent":["import type { ExpoConfig } from '@expo/config';\n\nimport type { ServerRequest, ServerResponse } from './server.types';\n\nconst DEFAULT_ALLOWED_CORS_HOSTNAMES = [\n 'localhost',\n 'chrome-devtools-frontend.appspot.com', // Support remote Chrome DevTools frontend\n 'devtools', // Support local Chrome DevTools `devtools://devtools`\n];\n\nexport function createCorsMiddleware(exp: ExpoConfig) {\n const allowedHostnames = [...DEFAULT_ALLOWED_CORS_HOSTNAMES];\n // Support for expo-router API routes\n if (exp.extra?.router?.headOrigin) {\n allowedHostnames.push(new URL(exp.extra.router.headOrigin).hostname);\n }\n if (exp.extra?.router?.origin) {\n allowedHostnames.push(new URL(exp.extra.router.origin).hostname);\n }\n\n return (req: ServerRequest, res: ServerResponse, next: (err?: Error) => void) => {\n if (typeof req.headers.origin === 'string') {\n const { host, hostname } = new URL(req.headers.origin);\n const isSameOrigin = host === req.headers.host;\n if (!isSameOrigin && !allowedHostnames.includes(hostname)) {\n next(\n new Error(\n `Unauthorized request from ${req.headers.origin}. ` +\n 'This may happen because of a conflicting browser extension to intercept HTTP requests. ' +\n 'Please try again without browser extensions or using incognito mode.'\n )\n );\n return;\n }\n\n res.setHeader('Access-Control-Allow-Origin', req.headers.origin);\n maybePreventMetroResetCorsHeader(req, res);\n }\n\n // Block MIME-type sniffing.\n res.setHeader('X-Content-Type-Options', 'nosniff');\n\n next();\n };\n}\n\n// When accessing source maps,\n// metro will overwrite the `Access-Control-Allow-Origin` header with hardcoded `devtools://devtools` value.\n// https://github.com/facebook/metro/blob/a7f8955e6d2424b0d5f73d4bcdaf22560e1d5f27/packages/metro/src/Server.js#L540\n// This is a workaround to prevent this behavior.\nfunction maybePreventMetroResetCorsHeader(req: ServerRequest, res: ServerResponse) {\n const pathname = req.url ? new URL(req.url, `http://${req.headers.host}`).pathname : '';\n if (pathname.endsWith('.map')) {\n const setHeader = res.setHeader.bind(res);\n res.setHeader = (key, ...args) => {\n if (key !== 'Access-Control-Allow-Origin') {\n setHeader(key, ...args);\n }\n return res;\n };\n }\n}\n"],"names":["createCorsMiddleware","DEFAULT_ALLOWED_CORS_HOSTNAMES","exp","allowedHostnames","extra","router","headOrigin","push","URL","hostname","origin","req","res","next","headers","host","isSameOrigin","includes","Error","setHeader","maybePreventMetroResetCorsHeader","pathname","url","endsWith","bind","key","args"],"mappings":"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"}
@@ -12,9 +12,9 @@ _export(exports, {
12
12
  ReactDevToolsEndpoint: ()=>ReactDevToolsEndpoint,
13
13
  ReactDevToolsPageMiddleware: ()=>ReactDevToolsPageMiddleware
14
14
  });
15
- function _promises() {
16
- const data = require("fs/promises");
17
- _promises = function() {
15
+ function _assert() {
16
+ const data = /*#__PURE__*/ _interopRequireDefault(require("assert"));
17
+ _assert = function() {
18
18
  return data;
19
19
  };
20
20
  return data;
@@ -33,6 +33,13 @@ function _resolveFrom() {
33
33
  };
34
34
  return data;
35
35
  }
36
+ function _send() {
37
+ const data = /*#__PURE__*/ _interopRequireDefault(require("send"));
38
+ _send = function() {
39
+ return data;
40
+ };
41
+ return data;
42
+ }
36
43
  const _expoMiddleware = require("./ExpoMiddleware");
37
44
  function _interopRequireDefault(obj) {
38
45
  return obj && obj.__esModule ? obj : {
@@ -46,14 +53,26 @@ class ReactDevToolsPageMiddleware extends _expoMiddleware.ExpoMiddleware {
46
53
  ReactDevToolsEndpoint
47
54
  ]);
48
55
  }
56
+ shouldHandleRequest(req) {
57
+ var ref;
58
+ if (!((ref = req.url) == null ? void 0 : ref.startsWith(ReactDevToolsEndpoint))) {
59
+ return false;
60
+ }
61
+ return true;
62
+ }
49
63
  async handleRequestAsync(req, res) {
64
+ (0, _assert().default)(req.headers.host, "Request headers must include host");
65
+ var _url;
66
+ const { pathname } = new URL((_url = req.url) != null ? _url : "/", `http://${req.headers.host}`);
67
+ const requestPath = pathname.substring(ReactDevToolsEndpoint.length) || "/";
50
68
  var // Production: This will resolve when installed in the project.
51
69
  ref;
52
- const templatePath = (ref = _resolveFrom().default.silent(this.projectRoot, "expo/static/react-devtools-page/index.html")) != null ? ref : // Development: This will resolve when testing locally.
70
+ const entryPath = (ref = _resolveFrom().default.silent(this.projectRoot, "expo/static/react-devtools-page/index.html")) != null ? ref : // Development: This will resolve when testing locally.
53
71
  _path().default.resolve(__dirname, "../../../../../static/react-devtools-page/index.html");
54
- const content = (await (0, _promises().readFile)(templatePath)).toString("utf-8");
55
- res.setHeader("Content-Type", "text/html");
56
- res.end(content);
72
+ const staticRoot = _path().default.dirname(entryPath);
73
+ (0, _send().default)(req, requestPath, {
74
+ root: staticRoot
75
+ }).pipe(res);
57
76
  }
58
77
  }
59
78
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/server/middleware/ReactDevToolsPageMiddleware.ts"],"sourcesContent":["import { readFile } from 'fs/promises';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { ExpoMiddleware } from './ExpoMiddleware';\nimport { ServerRequest, ServerResponse } from './server.types';\n\nexport const ReactDevToolsEndpoint = '/_expo/react-devtools';\n\nexport class ReactDevToolsPageMiddleware extends ExpoMiddleware {\n constructor(projectRoot: string) {\n super(projectRoot, [ReactDevToolsEndpoint]);\n }\n\n async handleRequestAsync(req: ServerRequest, res: ServerResponse): Promise<void> {\n const templatePath =\n // Production: This will resolve when installed in the project.\n resolveFrom.silent(this.projectRoot, 'expo/static/react-devtools-page/index.html') ??\n // Development: This will resolve when testing locally.\n path.resolve(__dirname, '../../../../../static/react-devtools-page/index.html');\n const content = (await readFile(templatePath)).toString('utf-8');\n\n res.setHeader('Content-Type', 'text/html');\n res.end(content);\n }\n}\n"],"names":["ReactDevToolsEndpoint","ReactDevToolsPageMiddleware","ExpoMiddleware","constructor","projectRoot","handleRequestAsync","req","res","resolveFrom","templatePath","silent","path","resolve","__dirname","content","readFile","toString","setHeader","end"],"mappings":"AAAA;;;;;;;;;;;IAOaA,qBAAqB,MAArBA,qBAAqB;IAErBC,2BAA2B,MAA3BA,2BAA2B;;;yBATf,aAAa;;;;;;;8DACrB,MAAM;;;;;;;8DACC,cAAc;;;;;;gCAEP,kBAAkB;;;;;;AAG1C,MAAMD,qBAAqB,GAAG,uBAAuB,AAAC;AAEtD,MAAMC,2BAA2B,SAASC,eAAc,eAAA;IAC7DC,YAAYC,WAAmB,CAAE;QAC/B,KAAK,CAACA,WAAW,EAAE;YAACJ,qBAAqB;SAAC,CAAC,CAAC;IAC9C;UAEMK,kBAAkB,CAACC,GAAkB,EAAEC,GAAmB,EAAiB;YAE7E,+DAA+D;QAC/DC,GAAkF;QAFpF,MAAMC,YAAY,GAEhBD,CAAAA,GAAkF,GAAlFA,YAAW,EAAA,QAAA,CAACE,MAAM,CAAC,IAAI,CAACN,WAAW,EAAE,4CAA4C,CAAC,YAAlFI,GAAkF,GAClF,uDAAuD;QACvDG,KAAI,EAAA,QAAA,CAACC,OAAO,CAACC,SAAS,EAAE,sDAAsD,CAAC,AAAC;QAClF,MAAMC,OAAO,GAAG,CAAC,MAAMC,IAAAA,SAAQ,EAAA,SAAA,EAACN,YAAY,CAAC,CAAC,CAACO,QAAQ,CAAC,OAAO,CAAC,AAAC;QAEjET,GAAG,CAACU,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAC3CV,GAAG,CAACW,GAAG,CAACJ,OAAO,CAAC,CAAC;IACnB;CACD"}
1
+ {"version":3,"sources":["../../../../../src/start/server/middleware/ReactDevToolsPageMiddleware.ts"],"sourcesContent":["import assert from 'assert';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\nimport send from 'send';\n\nimport { ExpoMiddleware } from './ExpoMiddleware';\nimport { ServerRequest, ServerResponse } from './server.types';\n\nexport const ReactDevToolsEndpoint = '/_expo/react-devtools';\n\nexport class ReactDevToolsPageMiddleware extends ExpoMiddleware {\n constructor(projectRoot: string) {\n super(projectRoot, [ReactDevToolsEndpoint]);\n }\n\n override shouldHandleRequest(req: ServerRequest): boolean {\n if (!req.url?.startsWith(ReactDevToolsEndpoint)) {\n return false;\n }\n return true;\n }\n\n async handleRequestAsync(req: ServerRequest, res: ServerResponse): Promise<void> {\n assert(req.headers.host, 'Request headers must include host');\n const { pathname } = new URL(req.url ?? '/', `http://${req.headers.host}`);\n const requestPath = pathname.substring(ReactDevToolsEndpoint.length) || '/';\n\n const entryPath =\n // Production: This will resolve when installed in the project.\n resolveFrom.silent(this.projectRoot, 'expo/static/react-devtools-page/index.html') ??\n // Development: This will resolve when testing locally.\n path.resolve(__dirname, '../../../../../static/react-devtools-page/index.html');\n\n const staticRoot = path.dirname(entryPath);\n send(req, requestPath, { root: staticRoot }).pipe(res);\n }\n}\n"],"names":["ReactDevToolsEndpoint","ReactDevToolsPageMiddleware","ExpoMiddleware","constructor","projectRoot","shouldHandleRequest","req","url","startsWith","handleRequestAsync","res","assert","headers","host","pathname","URL","requestPath","substring","length","resolveFrom","entryPath","silent","path","resolve","__dirname","staticRoot","dirname","send","root","pipe"],"mappings":"AAAA;;;;;;;;;;;IAQaA,qBAAqB,MAArBA,qBAAqB;IAErBC,2BAA2B,MAA3BA,2BAA2B;;;8DAVrB,QAAQ;;;;;;;8DACV,MAAM;;;;;;;8DACC,cAAc;;;;;;;8DACrB,MAAM;;;;;;gCAEQ,kBAAkB;;;;;;AAG1C,MAAMD,qBAAqB,GAAG,uBAAuB,AAAC;AAEtD,MAAMC,2BAA2B,SAASC,eAAc,eAAA;IAC7DC,YAAYC,WAAmB,CAAE;QAC/B,KAAK,CAACA,WAAW,EAAE;YAACJ,qBAAqB;SAAC,CAAC,CAAC;IAC9C;IAESK,mBAAmB,CAACC,GAAkB,EAAW;YACnDA,GAAO;QAAZ,IAAI,EAACA,CAAAA,GAAO,GAAPA,GAAG,CAACC,GAAG,SAAY,GAAnBD,KAAAA,CAAmB,GAAnBA,GAAO,CAAEE,UAAU,CAACR,qBAAqB,CAAC,CAAA,EAAE;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd;UAEMS,kBAAkB,CAACH,GAAkB,EAAEI,GAAmB,EAAiB;QAC/EC,IAAAA,OAAM,EAAA,QAAA,EAACL,GAAG,CAACM,OAAO,CAACC,IAAI,EAAE,mCAAmC,CAAC,CAAC;YACjCP,IAAO;QAApC,MAAM,EAAEQ,QAAQ,CAAA,EAAE,GAAG,IAAIC,GAAG,CAACT,CAAAA,IAAO,GAAPA,GAAG,CAACC,GAAG,YAAPD,IAAO,GAAI,GAAG,EAAE,CAAC,OAAO,EAAEA,GAAG,CAACM,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC,AAAC;QAC3E,MAAMG,WAAW,GAAGF,QAAQ,CAACG,SAAS,CAACjB,qBAAqB,CAACkB,MAAM,CAAC,IAAI,GAAG,AAAC;YAG1E,+DAA+D;QAC/DC,GAAkF;QAFpF,MAAMC,SAAS,GAEbD,CAAAA,GAAkF,GAAlFA,YAAW,EAAA,QAAA,CAACE,MAAM,CAAC,IAAI,CAACjB,WAAW,EAAE,4CAA4C,CAAC,YAAlFe,GAAkF,GAClF,uDAAuD;QACvDG,KAAI,EAAA,QAAA,CAACC,OAAO,CAACC,SAAS,EAAE,sDAAsD,CAAC,AAAC;QAElF,MAAMC,UAAU,GAAGH,KAAI,EAAA,QAAA,CAACI,OAAO,CAACN,SAAS,CAAC,AAAC;QAC3CO,IAAAA,KAAI,EAAA,QAAA,EAACrB,GAAG,EAAEU,WAAW,EAAE;YAAEY,IAAI,EAAEH,UAAU;SAAE,CAAC,CAACI,IAAI,CAACnB,GAAG,CAAC,CAAC;IACzD;CACD"}
@@ -79,7 +79,7 @@ function getContext() {
79
79
  cpu: summarizeCpuInfo(),
80
80
  app: {
81
81
  name: "expo/cli",
82
- version: "0.18.13"
82
+ version: "0.18.15"
83
83
  },
84
84
  ci: _ciInfo().isCI ? {
85
85
  name: _ciInfo().name,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/cli",
3
- "version": "0.18.13",
3
+ "version": "0.18.15",
4
4
  "description": "The Expo CLI",
5
5
  "main": "build/bin/cli",
6
6
  "bin": {
@@ -40,9 +40,9 @@
40
40
  "dependencies": {
41
41
  "@babel/runtime": "^7.20.0",
42
42
  "@expo/code-signing-certificates": "0.0.5",
43
- "@expo/config": "~9.0.0",
44
- "@expo/config-plugins": "~8.0.0",
45
- "@expo/devcert": "^1.1.2",
43
+ "@expo/config": "~9.0.0-beta.0",
44
+ "@expo/config-plugins": "~8.0.0-beta.0",
45
+ "@expo/devcert": "^1.0.0",
46
46
  "@expo/env": "~0.3.0",
47
47
  "@expo/image-utils": "^0.5.0",
48
48
  "@expo/json-file": "^8.3.0",
@@ -50,11 +50,11 @@
50
50
  "@expo/osascript": "^2.0.31",
51
51
  "@expo/package-manager": "^1.5.0",
52
52
  "@expo/plist": "^0.1.0",
53
- "@expo/prebuild-config": "7.0.4",
53
+ "@expo/prebuild-config": "7.0.5",
54
54
  "@expo/rudder-sdk-node": "1.1.1",
55
55
  "@expo/spawn-async": "^1.7.2",
56
56
  "@expo/xcpretty": "^4.3.0",
57
- "@react-native/dev-middleware": "~0.74.75",
57
+ "@react-native/dev-middleware": "0.74.83",
58
58
  "@urql/core": "2.3.6",
59
59
  "@urql/exchange-retry": "0.3.0",
60
60
  "accepts": "^1.3.8",
@@ -171,5 +171,5 @@
171
171
  "tree-kill": "^1.2.2",
172
172
  "tsd": "^0.28.1"
173
173
  },
174
- "gitHead": "d6515f12fc9eee6d563cc4de32f9aee5c856158f"
174
+ "gitHead": "01afaad3852d3af00238b2e28ea6e13db6f0a1f8"
175
175
  }
@@ -35,7 +35,6 @@
35
35
  width: 100%;
36
36
  height: 100%;
37
37
  }
38
-
39
38
  </style>
40
39
  </head>
41
40
 
@@ -45,45 +44,15 @@
45
44
  </noscript>
46
45
  <div id="hint">Connecting to ReactDevToolsProxy...</div>
47
46
  <div id="root"></div>
48
- <!--
49
- JSPM Generator Import Map
50
- Edit URL: https://generator.jspm.io/#U2NgYGBkDM0rySzJSU1hKEpNTC7RTUktK8nPzynWTc4vSnUw0TMy1zPSLy5JzEtJzMnPSwUAiUm0+zQA
51
- -->
52
47
  <script type="importmap">
53
- {
54
- "imports": {
55
- "react-devtools-core/standalone": "https://ga.jspm.io/npm:react-devtools-core@4.27.2/standalone.js"
56
- },
57
- "scopes": {
58
- "https://ga.jspm.io/": {
59
- "buffer": "https://ga.jspm.io/npm:@jspm/core@2.0.1/nodelibs/browser/buffer.js",
60
- "child_process": "https://ga.jspm.io/npm:@jspm/core@2.0.1/nodelibs/browser/child_process.js",
61
- "crypto": "https://ga.jspm.io/npm:@jspm/core@2.0.1/nodelibs/browser/crypto.js",
62
- "events": "https://ga.jspm.io/npm:@jspm/core@2.0.1/nodelibs/browser/events.js",
63
- "fs": "https://ga.jspm.io/npm:@jspm/core@2.0.1/nodelibs/browser/fs.js",
64
- "http": "https://ga.jspm.io/npm:@jspm/core@2.0.1/nodelibs/browser/http.js",
65
- "https": "https://ga.jspm.io/npm:@jspm/core@2.0.1/nodelibs/browser/https.js",
66
- "net": "https://ga.jspm.io/npm:@jspm/core@2.0.1/nodelibs/browser/net.js",
67
- "path": "https://ga.jspm.io/npm:@jspm/core@2.0.1/nodelibs/browser/path.js",
68
- "process": "https://ga.jspm.io/npm:@jspm/core@2.0.1/nodelibs/browser/process-production.js",
69
- "stream": "https://ga.jspm.io/npm:@jspm/core@2.0.1/nodelibs/browser/stream.js",
70
- "tls": "https://ga.jspm.io/npm:@jspm/core@2.0.1/nodelibs/browser/tls.js",
71
- "url": "https://ga.jspm.io/npm:@jspm/core@2.0.1/nodelibs/browser/url.js",
72
- "util": "https://ga.jspm.io/npm:@jspm/core@2.0.1/nodelibs/browser/util.js",
73
- "vm": "https://ga.jspm.io/npm:@jspm/core@2.0.1/nodelibs/browser/vm.js",
74
- "zlib": "https://ga.jspm.io/npm:@jspm/core@2.0.1/nodelibs/browser/zlib.js"
75
- }
76
- }
48
+ {
49
+ "imports": {
50
+ "react-devtools-core/standalone": "./react-devtools/standalone.js"
77
51
  }
78
- </script>
79
-
80
- <!-- ES Module Shims: Import maps polyfill for modules browsers without import maps support (all except Chrome 89+) -->
81
- <script async src="https://ga.jspm.io/npm:es-module-shims@1.5.1/dist/es-module-shims.js"
82
- crossorigin="anonymous"></script>
83
-
52
+ }
53
+ </script>
84
54
  <script type="module">
85
- import { default as DevToolsUIWrapper } from "react-devtools-core/standalone";
86
- const DevTools = DevToolsUIWrapper.default;
55
+ import DevTools from "react-devtools-core/standalone";
87
56
 
88
57
  /**
89
58
  * Private command to support DevTools frontend reload