@expo/cli 1.0.0-canary-20250403-13261ac → 1.0.0-canary-20250404-87e2506

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.
@@ -1,104 +0,0 @@
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
- addReactDevToolsReloadListener: function() {
13
- return addReactDevToolsReloadListener;
14
- },
15
- closeReactDevToolsProxy: function() {
16
- return closeReactDevToolsProxy;
17
- },
18
- startReactDevToolsProxyAsync: function() {
19
- return startReactDevToolsProxyAsync;
20
- }
21
- });
22
- function _assert() {
23
- const data = /*#__PURE__*/ _interop_require_default(require("assert"));
24
- _assert = function() {
25
- return data;
26
- };
27
- return data;
28
- }
29
- function _events() {
30
- const data = require("events");
31
- _events = function() {
32
- return data;
33
- };
34
- return data;
35
- }
36
- function _ws() {
37
- const data = /*#__PURE__*/ _interop_require_default(require("ws"));
38
- _ws = function() {
39
- return data;
40
- };
41
- return data;
42
- }
43
- function _interop_require_default(obj) {
44
- return obj && obj.__esModule ? obj : {
45
- default: obj
46
- };
47
- }
48
- let serverInstance = null;
49
- const eventEmitter = new (_events()).EventEmitter();
50
- /**
51
- * Private command to support DevTools frontend reload.
52
- *
53
- * The react-devtools maintains state between frontend(webpage) and backend(app).
54
- * If we reload the frontend without reloading the app, the react-devtools will stuck on incorrect state.
55
- * We introduce this special reload command.
56
- * As long as the frontend reload, we will close app's WebSocket connection and tell app to reconnect again.
57
- */ const RELOAD_COMMAND = 'Expo::RELOAD';
58
- async function startReactDevToolsProxyAsync(options) {
59
- if (serverInstance != null) {
60
- return;
61
- }
62
- serverInstance = new (_ws()).default.WebSocketServer({
63
- port: (options == null ? void 0 : options.port) ?? 8097
64
- });
65
- serverInstance.on('connection', function connection(ws) {
66
- ws.on('message', function message(rawData, isBinary) {
67
- (0, _assert().default)(!isBinary);
68
- const data = rawData.toString();
69
- if (data === RELOAD_COMMAND) {
70
- closeAllOtherClients(ws);
71
- eventEmitter.emit(RELOAD_COMMAND);
72
- return;
73
- }
74
- serverInstance == null ? void 0 : serverInstance.clients.forEach(function each(client) {
75
- if (client !== ws && client.readyState === _ws().default.OPEN) {
76
- client.send(data, {
77
- binary: isBinary
78
- });
79
- }
80
- });
81
- });
82
- });
83
- serverInstance.on('close', function() {
84
- serverInstance = null;
85
- });
86
- }
87
- function closeReactDevToolsProxy() {
88
- serverInstance == null ? void 0 : serverInstance.close();
89
- serverInstance = null;
90
- }
91
- function addReactDevToolsReloadListener(listener) {
92
- eventEmitter.addListener(RELOAD_COMMAND, listener);
93
- }
94
- /**
95
- * Close all other WebSocket clients other than the current `self` client
96
- */ function closeAllOtherClients(self) {
97
- serverInstance == null ? void 0 : serverInstance.clients.forEach(function each(client) {
98
- if (client !== self && client.readyState === _ws().default.OPEN) {
99
- client.close();
100
- }
101
- });
102
- }
103
-
104
- //# sourceMappingURL=ReactDevToolsProxy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/start/server/ReactDevToolsProxy.ts"],"sourcesContent":["import assert from 'assert';\nimport { EventEmitter } from 'events';\nimport WebSocket from 'ws';\n\nlet serverInstance: WebSocket.WebSocketServer | null = null;\n\nconst eventEmitter = new EventEmitter();\n\n/**\n * Private command to support DevTools frontend reload.\n *\n * The react-devtools maintains state between frontend(webpage) and backend(app).\n * If we reload the frontend without reloading the app, the react-devtools will stuck on incorrect state.\n * We introduce this special reload command.\n * As long as the frontend reload, we will close app's WebSocket connection and tell app to reconnect again.\n */\nconst RELOAD_COMMAND = 'Expo::RELOAD';\n\n/**\n * Start the react-devtools WebSocket proxy server\n */\nexport async function startReactDevToolsProxyAsync(options?: { port: number }) {\n if (serverInstance != null) {\n return;\n }\n\n serverInstance = new WebSocket.WebSocketServer({ port: options?.port ?? 8097 });\n\n serverInstance.on('connection', function connection(ws) {\n ws.on('message', function message(rawData, isBinary) {\n assert(!isBinary);\n const data = rawData.toString();\n\n if (data === RELOAD_COMMAND) {\n closeAllOtherClients(ws);\n eventEmitter.emit(RELOAD_COMMAND);\n return;\n }\n\n serverInstance?.clients.forEach(function each(client) {\n if (client !== ws && client.readyState === WebSocket.OPEN) {\n client.send(data, { binary: isBinary });\n }\n });\n });\n });\n\n serverInstance.on('close', function () {\n serverInstance = null;\n });\n}\n\n/**\n * Close the WebSocket server\n */\nexport function closeReactDevToolsProxy() {\n serverInstance?.close();\n serverInstance = null;\n}\n\n/**\n * add event listener from react-devtools frontend reload\n */\nexport function addReactDevToolsReloadListener(listener: (...args: any[]) => void) {\n eventEmitter.addListener(RELOAD_COMMAND, listener);\n}\n\n/**\n * Close all other WebSocket clients other than the current `self` client\n */\nfunction closeAllOtherClients(self: WebSocket.WebSocket) {\n serverInstance?.clients.forEach(function each(client) {\n if (client !== self && client.readyState === WebSocket.OPEN) {\n client.close();\n }\n });\n}\n"],"names":["addReactDevToolsReloadListener","closeReactDevToolsProxy","startReactDevToolsProxyAsync","serverInstance","eventEmitter","EventEmitter","RELOAD_COMMAND","options","WebSocket","WebSocketServer","port","on","connection","ws","message","rawData","isBinary","assert","data","toString","closeAllOtherClients","emit","clients","forEach","each","client","readyState","OPEN","send","binary","close","listener","addListener","self"],"mappings":";;;;;;;;;;;IA+DgBA,8BAA8B;eAA9BA;;IARAC,uBAAuB;eAAvBA;;IAlCMC,4BAA4B;eAA5BA;;;;gEArBH;;;;;;;yBACU;;;;;;;gEACP;;;;;;;;;;;AAEtB,IAAIC,iBAAmD;AAEvD,MAAMC,eAAe,IAAIC,CAAAA,SAAW,cAAC;AAErC;;;;;;;CAOC,GACD,MAAMC,iBAAiB;AAKhB,eAAeJ,6BAA6BK,OAA0B;IAC3E,IAAIJ,kBAAkB,MAAM;QAC1B;IACF;IAEAA,iBAAiB,IAAIK,CAAAA,KAAQ,SAAC,CAACC,eAAe,CAAC;QAAEC,MAAMH,CAAAA,2BAAAA,QAASG,IAAI,KAAI;IAAK;IAE7EP,eAAeQ,EAAE,CAAC,cAAc,SAASC,WAAWC,EAAE;QACpDA,GAAGF,EAAE,CAAC,WAAW,SAASG,QAAQC,OAAO,EAAEC,QAAQ;YACjDC,IAAAA,iBAAM,EAAC,CAACD;YACR,MAAME,OAAOH,QAAQI,QAAQ;YAE7B,IAAID,SAASZ,gBAAgB;gBAC3Bc,qBAAqBP;gBACrBT,aAAaiB,IAAI,CAACf;gBAClB;YACF;YAEAH,kCAAAA,eAAgBmB,OAAO,CAACC,OAAO,CAAC,SAASC,KAAKC,MAAM;gBAClD,IAAIA,WAAWZ,MAAMY,OAAOC,UAAU,KAAKlB,aAAS,CAACmB,IAAI,EAAE;oBACzDF,OAAOG,IAAI,CAACV,MAAM;wBAAEW,QAAQb;oBAAS;gBACvC;YACF;QACF;IACF;IAEAb,eAAeQ,EAAE,CAAC,SAAS;QACzBR,iBAAiB;IACnB;AACF;AAKO,SAASF;IACdE,kCAAAA,eAAgB2B,KAAK;IACrB3B,iBAAiB;AACnB;AAKO,SAASH,+BAA+B+B,QAAkC;IAC/E3B,aAAa4B,WAAW,CAAC1B,gBAAgByB;AAC3C;AAEA;;CAEC,GACD,SAASX,qBAAqBa,IAAyB;IACrD9B,kCAAAA,eAAgBmB,OAAO,CAACC,OAAO,CAAC,SAASC,KAAKC,MAAM;QAClD,IAAIA,WAAWQ,QAAQR,OAAOC,UAAU,KAAKlB,aAAS,CAACmB,IAAI,EAAE;YAC3DF,OAAOK,KAAK;QACd;IACF;AACF"}
@@ -1,81 +0,0 @@
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
- ReactDevToolsEndpoint: function() {
13
- return ReactDevToolsEndpoint;
14
- },
15
- ReactDevToolsPageMiddleware: function() {
16
- return ReactDevToolsPageMiddleware;
17
- }
18
- });
19
- function _assert() {
20
- const data = /*#__PURE__*/ _interop_require_default(require("assert"));
21
- _assert = function() {
22
- return data;
23
- };
24
- return data;
25
- }
26
- function _path() {
27
- const data = /*#__PURE__*/ _interop_require_default(require("path"));
28
- _path = function() {
29
- return data;
30
- };
31
- return data;
32
- }
33
- function _resolvefrom() {
34
- const data = /*#__PURE__*/ _interop_require_default(require("resolve-from"));
35
- _resolvefrom = function() {
36
- return data;
37
- };
38
- return data;
39
- }
40
- function _send() {
41
- const data = /*#__PURE__*/ _interop_require_default(require("send"));
42
- _send = function() {
43
- return data;
44
- };
45
- return data;
46
- }
47
- const _ExpoMiddleware = require("./ExpoMiddleware");
48
- function _interop_require_default(obj) {
49
- return obj && obj.__esModule ? obj : {
50
- default: obj
51
- };
52
- }
53
- const ReactDevToolsEndpoint = '/_expo/react-devtools';
54
- class ReactDevToolsPageMiddleware extends _ExpoMiddleware.ExpoMiddleware {
55
- constructor(projectRoot){
56
- super(projectRoot, [
57
- ReactDevToolsEndpoint
58
- ]);
59
- }
60
- shouldHandleRequest(req) {
61
- var _req_url;
62
- if (!((_req_url = req.url) == null ? void 0 : _req_url.startsWith(ReactDevToolsEndpoint))) {
63
- return false;
64
- }
65
- return true;
66
- }
67
- async handleRequestAsync(req, res) {
68
- (0, _assert().default)(req.headers.host, 'Request headers must include host');
69
- const { pathname } = new URL(req.url ?? '/', `http://${req.headers.host}`);
70
- const requestPath = pathname.substring(ReactDevToolsEndpoint.length) || '/';
71
- const entryPath = // Production: This will resolve when installed in the project.
72
- _resolvefrom().default.silent(this.projectRoot, 'expo/static/react-devtools-page/index.html') ?? // Development: This will resolve when testing locally.
73
- _path().default.resolve(__dirname, '../../../../../static/react-devtools-page/index.html');
74
- const staticRoot = _path().default.dirname(entryPath);
75
- (0, _send().default)(req, requestPath, {
76
- root: staticRoot
77
- }).pipe(res);
78
- }
79
- }
80
-
81
- //# sourceMappingURL=ReactDevToolsPageMiddleware.js.map
@@ -1 +0,0 @@
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","entryPath","resolveFrom","silent","path","resolve","__dirname","staticRoot","dirname","send","root","pipe"],"mappings":";;;;;;;;;;;IAQaA,qBAAqB;eAArBA;;IAEAC,2BAA2B;eAA3BA;;;;gEAVM;;;;;;;gEACF;;;;;;;gEACO;;;;;;;gEACP;;;;;;gCAEc;;;;;;AAGxB,MAAMD,wBAAwB;AAE9B,MAAMC,oCAAoCC,8BAAc;IAC7DC,YAAYC,WAAmB,CAAE;QAC/B,KAAK,CAACA,aAAa;YAACJ;SAAsB;IAC5C;IAESK,oBAAoBC,GAAkB,EAAW;YACnDA;QAAL,IAAI,GAACA,WAAAA,IAAIC,GAAG,qBAAPD,SAASE,UAAU,CAACR,yBAAwB;YAC/C,OAAO;QACT;QACA,OAAO;IACT;IAEA,MAAMS,mBAAmBH,GAAkB,EAAEI,GAAmB,EAAiB;QAC/EC,IAAAA,iBAAM,EAACL,IAAIM,OAAO,CAACC,IAAI,EAAE;QACzB,MAAM,EAAEC,QAAQ,EAAE,GAAG,IAAIC,IAAIT,IAAIC,GAAG,IAAI,KAAK,CAAC,OAAO,EAAED,IAAIM,OAAO,CAACC,IAAI,EAAE;QACzE,MAAMG,cAAcF,SAASG,SAAS,CAACjB,sBAAsBkB,MAAM,KAAK;QAExE,MAAMC,YACJ,+DAA+D;QAC/DC,sBAAW,CAACC,MAAM,CAAC,IAAI,CAACjB,WAAW,EAAE,iDACrC,uDAAuD;QACvDkB,eAAI,CAACC,OAAO,CAACC,WAAW;QAE1B,MAAMC,aAAaH,eAAI,CAACI,OAAO,CAACP;QAChCQ,IAAAA,eAAI,EAACrB,KAAKU,aAAa;YAAEY,MAAMH;QAAW,GAAGI,IAAI,CAACnB;IACpD;AACF"}
@@ -1,113 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
-
4
- <head>
5
- <meta charset="UTF-8" />
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
- <meta http-equiv="X-UA-Compatible" content="IE=edge" />
8
- <title>React DevTools</title>
9
- <style>
10
- html,
11
- body {
12
- width: 100vw;
13
- height: 100vh;
14
- padding: 0;
15
- margin: 0;
16
- font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
17
- Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
18
- }
19
-
20
- a {
21
- color: inherit;
22
- text-decoration: none;
23
- }
24
-
25
- * {
26
- box-sizing: border-box;
27
- }
28
-
29
- #hint {
30
- margin: 1em;
31
- font-size: 16px;
32
- }
33
-
34
- #root {
35
- width: 100%;
36
- height: 100%;
37
- }
38
- </style>
39
- </head>
40
-
41
- <body>
42
- <noscript>
43
- You need to enable JavaScript to run this app.
44
- </noscript>
45
- <div id="hint">Connecting to ReactDevToolsProxy...</div>
46
- <div id="root"></div>
47
- <script type="importmap">
48
- {
49
- "imports": {
50
- "react-devtools-core/standalone": "./react-devtools/standalone.js"
51
- }
52
- }
53
- </script>
54
- <script type="module">
55
- import DevTools from "react-devtools-core/standalone";
56
-
57
- /**
58
- * Private command to support DevTools frontend reload
59
- */
60
- const RELOAD_COMMAND = 'Expo::RELOAD';
61
-
62
- function connectAsync(url) {
63
- return new Promise((resolve, reject) => {
64
- const ws = new WebSocket(url);
65
-
66
- ws.addEventListener("open", () => {
67
- resolve(ws);
68
- });
69
-
70
- ws.addEventListener("close", (e) => {
71
- reject(e);
72
- });
73
-
74
- ws.addEventListener("error", (e) => {
75
- reject(e);
76
- });
77
- });
78
- }
79
-
80
- async function delayAsync(timeMs) {
81
- return new Promise((resolve) => setTimeout(resolve, timeMs));
82
- }
83
-
84
- async function connectAsyncWithRetries(url) {
85
- while (true) {
86
- try {
87
- const ws = await connectAsync(url);
88
- document.getElementById("hint").style.display = "none";
89
- return ws;
90
- } catch {
91
- document.getElementById("hint").style.display = "block";
92
- await delayAsync(5000);
93
- }
94
- }
95
- }
96
-
97
- async function main() {
98
- const ws = await connectAsyncWithRetries("ws://localhost:8097");
99
-
100
- ws.addEventListener("close", () => {
101
- document.getElementById("hint").style.display = "block";
102
- main();
103
- });
104
- DevTools.setContentDOMNode(document.getElementById("root"));
105
- ws.send(RELOAD_COMMAND);
106
- DevTools.connectToSocket(ws);
107
- }
108
-
109
- main();
110
- </script>
111
- </body>
112
-
113
- </html>