@expo/cli 58.1.7 → 58.1.9

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 (91) hide show
  1. package/build/src/api/rest/wrapFetchWithUserAgent.js +1 -1
  2. package/build/src/command/events/eventsAsync.d.ts +2 -0
  3. package/build/src/command/events/eventsAsync.js +31 -0
  4. package/build/src/command/events/eventsAsync.js.map +1 -0
  5. package/build/src/command/events/help.d.ts +2 -0
  6. package/build/src/command/events/help.js +69 -0
  7. package/build/src/command/events/help.js.map +1 -0
  8. package/build/src/command/events/index.d.ts +2 -0
  9. package/build/src/command/events/index.js +59 -0
  10. package/build/src/command/events/index.js.map +1 -0
  11. package/build/src/command/events/resolveOptions.d.ts +10 -0
  12. package/build/src/command/events/resolveOptions.js +23 -0
  13. package/build/src/command/events/resolveOptions.js.map +1 -0
  14. package/build/src/command/index.d.ts +2 -0
  15. package/build/src/command/index.js +65 -0
  16. package/build/src/command/index.js.map +1 -0
  17. package/build/src/command/ps/help.d.ts +2 -0
  18. package/build/src/command/ps/help.js +52 -0
  19. package/build/src/command/ps/help.js.map +1 -0
  20. package/build/src/command/ps/index.d.ts +2 -0
  21. package/build/src/command/ps/index.js +53 -0
  22. package/build/src/command/ps/index.js.map +1 -0
  23. package/build/src/command/ps/psAsync.d.ts +2 -0
  24. package/build/src/command/ps/psAsync.js +49 -0
  25. package/build/src/command/ps/psAsync.js.map +1 -0
  26. package/build/src/command/ps/resolveOptions.d.ts +9 -0
  27. package/build/src/command/ps/resolveOptions.js +20 -0
  28. package/build/src/command/ps/resolveOptions.js.map +1 -0
  29. package/build/src/command/sessions.d.ts +4 -0
  30. package/build/src/command/sessions.js +80 -0
  31. package/build/src/command/sessions.js.map +1 -0
  32. package/build/src/command/utils.d.ts +5 -0
  33. package/build/src/command/utils.js +62 -0
  34. package/build/src/command/utils.js.map +1 -0
  35. package/build/src/index.js +28 -7
  36. package/build/src/index.js.map +1 -1
  37. package/build/src/prebuild/prebuildAsync.d.ts +1 -1
  38. package/build/src/prebuild/prebuildAsync.js +17 -3
  39. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  40. package/build/src/prebuild/setupSwiftPM.d.ts +20 -0
  41. package/build/src/prebuild/setupSwiftPM.js +171 -0
  42. package/build/src/prebuild/setupSwiftPM.js.map +1 -0
  43. package/build/src/run/index.js +1 -1
  44. package/build/src/run/index.js.map +1 -1
  45. package/build/src/start/index.js +5 -2
  46. package/build/src/start/index.js.map +1 -1
  47. package/build/src/start/server/BundlerDevServer.d.ts +1 -0
  48. package/build/src/start/server/BundlerDevServer.js +9 -4
  49. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  50. package/build/src/start/server/DevServerManager.d.ts +1 -0
  51. package/build/src/start/server/DevServerManager.js +21 -0
  52. package/build/src/start/server/DevServerManager.js.map +1 -1
  53. package/build/src/start/server/metro/MetroBundlerDevServer.js +39 -15
  54. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  55. package/build/src/start/server/metro/MetroTerminalReporter.d.ts +16 -5
  56. package/build/src/start/server/metro/MetroTerminalReporter.js +61 -28
  57. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  58. package/build/src/start/server/metro/TerminalReporter.types.d.ts +2 -0
  59. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +1 -1
  60. package/build/src/start/server/metro/dev-server/createMessageSocket.js +1 -8
  61. package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -1
  62. package/build/src/start/server/metro/instantiateMetro.js +7 -3
  63. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  64. package/build/src/start/server/metro/metroErrorInterface.d.ts +19 -3
  65. package/build/src/start/server/metro/metroErrorInterface.js +18 -2
  66. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  67. package/build/src/start/server/middleware/ExpoMiddleware.js +3 -11
  68. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  69. package/build/src/start/server/middleware/ManifestMiddleware.js +1 -8
  70. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  71. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +2 -9
  72. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  73. package/build/src/start/server/middleware/ServeStaticMiddleware.js +1 -8
  74. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  75. package/build/src/start/server/middleware/resolvePlatform.js +2 -9
  76. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  77. package/build/src/utils/build-cache-providers/index.js +14 -44
  78. package/build/src/utils/build-cache-providers/index.js.map +1 -1
  79. package/build/src/utils/cocoapods.js +10 -0
  80. package/build/src/utils/cocoapods.js.map +1 -1
  81. package/build/src/utils/errors.d.ts +9 -1
  82. package/build/src/utils/errors.js +16 -2
  83. package/build/src/utils/errors.js.map +1 -1
  84. package/build/src/utils/metadata.d.ts +15 -0
  85. package/build/src/utils/metadata.js +39 -0
  86. package/build/src/utils/metadata.js.map +1 -0
  87. package/build/src/utils/nodeEnv.js +2 -0
  88. package/build/src/utils/nodeEnv.js.map +1 -1
  89. package/build/src/utils/telemetry/clients/FetchClient.js +1 -1
  90. package/build/src/utils/telemetry/utils/context.js +1 -1
  91. package/package.json +20 -20
@@ -25,7 +25,7 @@ function wrapFetchWithUserAgent(fetch) {
25
25
  return (url, init = {})=>{
26
26
  const headers = new _fetch.Headers(init.headers);
27
27
  // Version is added in the build script
28
- headers.append('User-Agent', `expo-cli/${"58.1.7"}`);
28
+ headers.append('User-Agent', `expo-cli/${"58.1.9"}`);
29
29
  init.headers = headers;
30
30
  return fetch(url, init);
31
31
  };
@@ -0,0 +1,2 @@
1
+ import type { Options } from './resolveOptions';
2
+ export declare function eventsAsync(options: Options): Promise<void>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "eventsAsync", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return eventsAsync;
9
+ }
10
+ });
11
+ function _api() {
12
+ const data = require("2g/api");
13
+ _api = function() {
14
+ return data;
15
+ };
16
+ return data;
17
+ }
18
+ const _sessions = require("../sessions");
19
+ async function eventsAsync(options) {
20
+ const session = await (0, _sessions.resolveExpoSession)(options.selector);
21
+ for await (const event of (0, _api().tap)(session.sessionDir, {
22
+ since: options.since,
23
+ filter: options.filter,
24
+ spans: options.spans,
25
+ follow: options.follow
26
+ })){
27
+ process.stdout.write(`${JSON.stringify(event)}\n`);
28
+ }
29
+ }
30
+
31
+ //# sourceMappingURL=eventsAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["command/events/eventsAsync.ts"],"sourcesContent":[null],"names":["eventsAsync","options","session","resolveExpoSession","selector","event","tap","sessionDir","since","filter","spans","follow","process","stdout","write","JSON","stringify"],"mappings":";;;;+BAKsBA;;;eAAAA;;;;yBALF;;;;;;0BAEe;AAG5B,eAAeA,YAAYC,OAAgB;IAChD,MAAMC,UAAU,MAAMC,IAAAA,4BAAkB,EAACF,QAAQG,QAAQ;IACzD,WAAW,MAAMC,SAASC,IAAAA,UAAG,EAACJ,QAAQK,UAAU,EAAE;QAChDC,OAAOP,QAAQO,KAAK;QACpBC,QAAQR,QAAQQ,MAAM;QACtBC,OAAOT,QAAQS,KAAK;QACpBC,QAAQV,QAAQU,MAAM;IACxB,GAAI;QACFC,QAAQC,MAAM,CAACC,KAAK,CAAC,GAAGC,KAAKC,SAAS,CAACX,OAAO,EAAE,CAAC;IACnD;AACF"}
@@ -0,0 +1,2 @@
1
+ /** Shared by the command overview and this subcommand's full help. */
2
+ export declare function getHelp(includeOptions?: boolean): string;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "getHelp", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return getHelp;
9
+ }
10
+ });
11
+ function _chalk() {
12
+ const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
13
+ _chalk = function() {
14
+ return data;
15
+ };
16
+ return data;
17
+ }
18
+ function _interop_require_default(obj) {
19
+ return obj && obj.__esModule ? obj : {
20
+ default: obj
21
+ };
22
+ }
23
+ function getHelp(includeOptions = true) {
24
+ return [
25
+ '',
26
+ includeOptions ? (0, _chalk().default)` {bold Info}` : (0, _chalk().default)` {bold events [selector] [--tail]}`,
27
+ ' Replays retained events from running or stopped sessions as JSONL to stdout, oldest first.',
28
+ ' Use command:ps --json to discover session IDs and metadata.',
29
+ '',
30
+ ...includeOptions ? [
31
+ (0, _chalk().default)` {bold Usage}`,
32
+ (0, _chalk().default)` {dim $} npx expo command:events {dim [selector] [--tail]}`,
33
+ '',
34
+ (0, _chalk().default)` {bold Options}`,
35
+ ' selector Session ID, PID, or substring of CWD or command',
36
+ ' --since <time> Duration ago (5m, 90s), Unix time, or ISO date',
37
+ ' --filter <pattern> Event-name prefixes on whole segments; * wildcards;',
38
+ ' comma-separated or repeated, e.g. metro:bundling',
39
+ ' --spans Keep only span events (with a _d duration)',
40
+ ' --tail Follow live events after replay until the session stops',
41
+ ' --help, -h Show this help',
42
+ ''
43
+ ] : [],
44
+ ' If several sessions match and exactly one is running, it is selected.',
45
+ ' Otherwise, specify a session ID or PID from the listed candidates.',
46
+ ' Omit the selector to use the only running session, or the only recorded session',
47
+ ' if none are running.',
48
+ '',
49
+ ' Events: {"_e":"category:kind","_t":<epoch ms>,...}. _d is a span duration',
50
+ ' in milliseconds; _w identifies a worker.',
51
+ '',
52
+ (0, _chalk().default)` {bold Notes}`,
53
+ ' Common filters include child events',
54
+ ' - metro Bundling, errors and logs',
55
+ ' - cli CLI errors',
56
+ ' - devserver Server lifecycle',
57
+ '',
58
+ ' Filters match event names, not message text or severity. --spans excludes',
59
+ ' events without durations, including bundle failures and logged warnings.',
60
+ '',
61
+ (0, _chalk().default)` {bold Examples}`,
62
+ (0, _chalk().default)` {dim $} npx expo command:events <session-id> --since 5m`,
63
+ (0, _chalk().default)` {dim $} npx expo command:events "expo start" --filter metro:bundling`,
64
+ (0, _chalk().default)` {dim $} npx expo command:events <session-id> --tail`,
65
+ ''
66
+ ].join('\n');
67
+ }
68
+
69
+ //# sourceMappingURL=help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["command/events/help.ts"],"sourcesContent":[null],"names":["getHelp","includeOptions","chalk","join"],"mappings":";;;;+BAGgBA;;;eAAAA;;;;gEAHE;;;;;;;;;;;AAGX,SAASA,QAAQC,iBAAiB,IAAI;IAC3C,OAAO;QACL;QACAA,iBAAiBC,IAAAA,gBAAK,CAAA,CAAC,aAAa,CAAC,GAAGA,IAAAA,gBAAK,CAAA,CAAC,mCAAmC,CAAC;QAClF;QACA;QACA;WACID,iBACA;YACEC,IAAAA,gBAAK,CAAA,CAAC,cAAc,CAAC;YACrBA,IAAAA,gBAAK,CAAA,CAAC,6DAA6D,CAAC;YACpE;YACAA,IAAAA,gBAAK,CAAA,CAAC,gBAAgB,CAAC;YACvB;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD,GACD,EAAE;QACN;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACAA,IAAAA,gBAAK,CAAA,CAAC,cAAc,CAAC;QACrB;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACAA,IAAAA,gBAAK,CAAA,CAAC,iBAAiB,CAAC;QACxBA,IAAAA,gBAAK,CAAA,CAAC,2DAA2D,CAAC;QAClEA,IAAAA,gBAAK,CAAA,CAAC,wEAAwE,CAAC;QAC/EA,IAAAA,gBAAK,CAAA,CAAC,uDAAuD,CAAC;QAC9D;KACD,CAACC,IAAI,CAAC;AACT"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from '../../index';
2
+ export declare const expoCommandEvents: Command;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "expoCommandEvents", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return expoCommandEvents;
9
+ }
10
+ });
11
+ function _nodeutil() {
12
+ const data = require("node:util");
13
+ _nodeutil = function() {
14
+ return data;
15
+ };
16
+ return data;
17
+ }
18
+ const _utils = require("../utils");
19
+ const _help = require("./help");
20
+ const expoCommandEvents = async (argv = [])=>{
21
+ (0, _utils.installOutputErrorHandler)();
22
+ try {
23
+ const { values, positionals } = (0, _nodeutil().parseArgs)({
24
+ args: argv,
25
+ allowPositionals: true,
26
+ options: {
27
+ since: {
28
+ type: 'string'
29
+ },
30
+ filter: {
31
+ type: 'string',
32
+ multiple: true
33
+ },
34
+ spans: {
35
+ type: 'boolean'
36
+ },
37
+ tail: {
38
+ type: 'boolean'
39
+ },
40
+ help: {
41
+ type: 'boolean',
42
+ short: 'h'
43
+ }
44
+ }
45
+ });
46
+ if (values.help) {
47
+ process.stdout.write((0, _help.getHelp)());
48
+ return;
49
+ }
50
+ const { resolveOptions } = await import('./resolveOptions.js');
51
+ const options = resolveOptions(values, positionals);
52
+ const { eventsAsync } = await import('./eventsAsync.js');
53
+ await eventsAsync(options);
54
+ } catch (error) {
55
+ (0, _utils.reportError)(error);
56
+ }
57
+ };
58
+
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["command/events/index.ts"],"sourcesContent":[null],"names":["expoCommandEvents","argv","installOutputErrorHandler","values","positionals","parseArgs","args","allowPositionals","options","since","type","filter","multiple","spans","tail","help","short","process","stdout","write","getHelp","resolveOptions","eventsAsync","error","reportError"],"mappings":";;;;+BAMaA;;;eAAAA;;;;yBANa;;;;;;uBAG6B;sBAC/B;AAEjB,MAAMA,oBAA6B,OAAOC,OAAO,EAAE;IACxDC,IAAAA,gCAAyB;IACzB,IAAI;QACF,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAE,GAAGC,IAAAA,qBAAS,EAAC;YACxCC,MAAML;YACNM,kBAAkB;YAClBC,SAAS;gBACPC,OAAO;oBAAEC,MAAM;gBAAS;gBACxBC,QAAQ;oBAAED,MAAM;oBAAUE,UAAU;gBAAK;gBACzCC,OAAO;oBAAEH,MAAM;gBAAU;gBACzBI,MAAM;oBAAEJ,MAAM;gBAAU;gBACxBK,MAAM;oBAAEL,MAAM;oBAAWM,OAAO;gBAAI;YACtC;QACF;QACA,IAAIb,OAAOY,IAAI,EAAE;YACfE,QAAQC,MAAM,CAACC,KAAK,CAACC,IAAAA,aAAO;YAC5B;QACF;QACA,MAAM,EAAEC,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC;QACxC,MAAMb,UAAUa,eAAelB,QAAQC;QACvC,MAAM,EAAEkB,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC;QACrC,MAAMA,YAAYd;IACpB,EAAE,OAAOe,OAAO;QACdC,IAAAA,kBAAW,EAACD;IACd;AACF"}
@@ -0,0 +1,10 @@
1
+ import type { TapOptions } from '2g/api';
2
+ export type Options = Pick<TapOptions, 'since' | 'filter' | 'spans' | 'follow'> & {
3
+ selector?: string;
4
+ };
5
+ export declare function resolveOptions(args: {
6
+ since?: string;
7
+ filter?: string[];
8
+ spans?: boolean;
9
+ tail?: boolean;
10
+ }, positionals: string[]): Options;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "resolveOptions", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return resolveOptions;
9
+ }
10
+ });
11
+ const _utils = require("../utils");
12
+ function resolveOptions(args, positionals) {
13
+ const selector = (0, _utils.resolveSelector)(positionals);
14
+ return {
15
+ selector,
16
+ since: args.since,
17
+ filter: args.filter,
18
+ spans: !!args.spans,
19
+ follow: !!args.tail
20
+ };
21
+ }
22
+
23
+ //# sourceMappingURL=resolveOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["command/events/resolveOptions.ts"],"sourcesContent":[null],"names":["resolveOptions","args","positionals","selector","resolveSelector","since","filter","spans","follow","tail"],"mappings":";;;;+BAQgBA;;;eAAAA;;;uBANgB;AAMzB,SAASA,eACdC,IAKC,EACDC,WAAqB;IAErB,MAAMC,WAAWC,IAAAA,sBAAe,EAACF;IACjC,OAAO;QACLC;QACAE,OAAOJ,KAAKI,KAAK;QACjBC,QAAQL,KAAKK,MAAM;QACnBC,OAAO,CAAC,CAACN,KAAKM,KAAK;QACnBC,QAAQ,CAAC,CAACP,KAAKQ,IAAI;IACrB;AACF"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from '../index';
2
+ export declare const expoCommand: Command;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "expoCommand", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return expoCommand;
9
+ }
10
+ });
11
+ function _chalk() {
12
+ const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
13
+ _chalk = function() {
14
+ return data;
15
+ };
16
+ return data;
17
+ }
18
+ const _help = require("./events/help");
19
+ const _help1 = require("./ps/help");
20
+ const _utils = require("./utils");
21
+ function _interop_require_default(obj) {
22
+ return obj && obj.__esModule ? obj : {
23
+ default: obj
24
+ };
25
+ }
26
+ const expoCommand = async (argv = [])=>{
27
+ const [command, ...args] = argv;
28
+ if (!command || command === '--help' || command === '-h') {
29
+ (0, _utils.installOutputErrorHandler)();
30
+ process.stdout.write([
31
+ '',
32
+ (0, _chalk().default)` {bold Info}`,
33
+ ' Inspect recorded command sessions and their structured events.',
34
+ '',
35
+ (0, _chalk().default)` {bold Usage}`,
36
+ (0, _chalk().default)` {dim $} npx expo command {dim <ps|events>}`,
37
+ (0, _help1.getHelp)(false),
38
+ (0, _help.getHelp)(false),
39
+ ' Run npx expo command <ps|events> --help for the full argument list.',
40
+ ' The command:ps and command:events forms are also supported.',
41
+ ''
42
+ ].join('\n'));
43
+ return;
44
+ }
45
+ try {
46
+ switch(command){
47
+ case 'ps':
48
+ {
49
+ const { expoCommandPs } = await import('./ps/index.js');
50
+ return await expoCommandPs(args);
51
+ }
52
+ case 'events':
53
+ {
54
+ const { expoCommandEvents } = await import('./events/index.js');
55
+ return await expoCommandEvents(args);
56
+ }
57
+ default:
58
+ throw new Error(`Unknown command: ${command}. Run \`npx expo command --help\` for usage.`);
59
+ }
60
+ } catch (error) {
61
+ (0, _utils.reportError)(error);
62
+ }
63
+ };
64
+
65
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["command/index.ts"],"sourcesContent":[null],"names":["expoCommand","argv","command","args","installOutputErrorHandler","process","stdout","write","chalk","getPsHelp","getEventsHelp","join","expoCommandPs","expoCommandEvents","Error","error","reportError"],"mappings":";;;;+BAOaA;;;eAAAA;;;;gEAPK;;;;;;sBAGuB;uBACJ;uBACkB;;;;;;AAEhD,MAAMA,cAAuB,OAAOC,OAAO,EAAE;IAClD,MAAM,CAACC,SAAS,GAAGC,KAAK,GAAGF;IAE3B,IAAI,CAACC,WAAWA,YAAY,YAAYA,YAAY,MAAM;QACxDE,IAAAA,gCAAyB;QACzBC,QAAQC,MAAM,CAACC,KAAK,CAClB;YACE;YACAC,IAAAA,gBAAK,CAAA,CAAC,aAAa,CAAC;YACpB;YACA;YACAA,IAAAA,gBAAK,CAAA,CAAC,cAAc,CAAC;YACrBA,IAAAA,gBAAK,CAAA,CAAC,8CAA8C,CAAC;YACrDC,IAAAA,cAAS,EAAC;YACVC,IAAAA,aAAa,EAAC;YACd;YACA;YACA;SACD,CAACC,IAAI,CAAC;QAET;IACF;IAEA,IAAI;QACF,OAAQT;YACN,KAAK;gBAAM;oBACT,MAAM,EAAEU,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC;oBACvC,OAAO,MAAMA,cAAcT;gBAC7B;YACA,KAAK;gBAAU;oBACb,MAAM,EAAEU,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC;oBAC3C,OAAO,MAAMA,kBAAkBV;gBACjC;YACA;gBACE,MAAM,IAAIW,MAAM,CAAC,iBAAiB,EAAEZ,QAAQ,4CAA4C,CAAC;QAC7F;IACF,EAAE,OAAOa,OAAO;QACdC,IAAAA,kBAAW,EAACD;IACd;AACF"}
@@ -0,0 +1,2 @@
1
+ /** Shared by the command overview and this subcommand's full help. */
2
+ export declare function getHelp(includeOptions?: boolean): string;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "getHelp", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return getHelp;
9
+ }
10
+ });
11
+ function _chalk() {
12
+ const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
13
+ _chalk = function() {
14
+ return data;
15
+ };
16
+ return data;
17
+ }
18
+ function _interop_require_default(obj) {
19
+ return obj && obj.__esModule ? obj : {
20
+ default: obj
21
+ };
22
+ }
23
+ function getHelp(includeOptions = true) {
24
+ return [
25
+ '',
26
+ includeOptions ? (0, _chalk().default)` {bold Info}` : (0, _chalk().default)` {bold ps [selector]}`,
27
+ ' Lists running and stopped sessions, newest first, with their command, project,',
28
+ ' and process status. Ready dev servers include connection details such as URL and port.',
29
+ '',
30
+ ...includeOptions ? [
31
+ (0, _chalk().default)` {bold Usage}`,
32
+ (0, _chalk().default)` {dim $} npx expo command:ps {dim [selector]}`,
33
+ '',
34
+ (0, _chalk().default)` {bold Options}`,
35
+ ' selector Session ID, PID, or substring of CWD or command',
36
+ ' --active, -a Show only running sessions',
37
+ ' --json Print sessions as a JSON array (empty: [])',
38
+ ' --help, -h Show this help',
39
+ ''
40
+ ] : [],
41
+ ' Use a session ID or PID to inspect its events with command:events.',
42
+ ' Stopped sessions retain their history; their server endpoints may no longer be available.',
43
+ '',
44
+ (0, _chalk().default)` {bold Examples}`,
45
+ (0, _chalk().default)` {dim $} npx expo command:ps --active --json`,
46
+ (0, _chalk().default)` {dim $} npx expo command:ps "expo start" --json`,
47
+ (0, _chalk().default)` {dim $} npx expo command:events <session-id> --since 5m`,
48
+ ''
49
+ ].join('\n');
50
+ }
51
+
52
+ //# sourceMappingURL=help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["command/ps/help.ts"],"sourcesContent":[null],"names":["getHelp","includeOptions","chalk","join"],"mappings":";;;;+BAGgBA;;;eAAAA;;;;gEAHE;;;;;;;;;;;AAGX,SAASA,QAAQC,iBAAiB,IAAI;IAC3C,OAAO;QACL;QACAA,iBAAiBC,IAAAA,gBAAK,CAAA,CAAC,aAAa,CAAC,GAAGA,IAAAA,gBAAK,CAAA,CAAC,sBAAsB,CAAC;QACrE;QACA;QACA;WACID,iBACA;YACEC,IAAAA,gBAAK,CAAA,CAAC,cAAc,CAAC;YACrBA,IAAAA,gBAAK,CAAA,CAAC,gDAAgD,CAAC;YACvD;YACAA,IAAAA,gBAAK,CAAA,CAAC,gBAAgB,CAAC;YACvB;YACA;YACA;YACA;YACA;SACD,GACD,EAAE;QACN;QACA;QACA;QACAA,IAAAA,gBAAK,CAAA,CAAC,iBAAiB,CAAC;QACxBA,IAAAA,gBAAK,CAAA,CAAC,+CAA+C,CAAC;QACtDA,IAAAA,gBAAK,CAAA,CAAC,mDAAmD,CAAC;QAC1DA,IAAAA,gBAAK,CAAA,CAAC,2DAA2D,CAAC;QAClE;KACD,CAACC,IAAI,CAAC;AACT"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from '../../index';
2
+ export declare const expoCommandPs: Command;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "expoCommandPs", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return expoCommandPs;
9
+ }
10
+ });
11
+ function _nodeutil() {
12
+ const data = require("node:util");
13
+ _nodeutil = function() {
14
+ return data;
15
+ };
16
+ return data;
17
+ }
18
+ const _utils = require("../utils");
19
+ const _help = require("./help");
20
+ const expoCommandPs = async (argv = [])=>{
21
+ (0, _utils.installOutputErrorHandler)();
22
+ try {
23
+ const { values, positionals } = (0, _nodeutil().parseArgs)({
24
+ args: argv,
25
+ allowPositionals: true,
26
+ options: {
27
+ active: {
28
+ type: 'boolean',
29
+ short: 'a'
30
+ },
31
+ json: {
32
+ type: 'boolean'
33
+ },
34
+ help: {
35
+ type: 'boolean',
36
+ short: 'h'
37
+ }
38
+ }
39
+ });
40
+ if (values.help) {
41
+ process.stdout.write((0, _help.getHelp)());
42
+ return;
43
+ }
44
+ const { resolveOptions } = await import('./resolveOptions.js');
45
+ const options = resolveOptions(values, positionals);
46
+ const { psAsync } = await import('./psAsync.js');
47
+ await psAsync(options);
48
+ } catch (error) {
49
+ (0, _utils.reportError)(error);
50
+ }
51
+ };
52
+
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["command/ps/index.ts"],"sourcesContent":[null],"names":["expoCommandPs","argv","installOutputErrorHandler","values","positionals","parseArgs","args","allowPositionals","options","active","type","short","json","help","process","stdout","write","getHelp","resolveOptions","psAsync","error","reportError"],"mappings":";;;;+BAMaA;;;eAAAA;;;;yBANa;;;;;;uBAG6B;sBAC/B;AAEjB,MAAMA,gBAAyB,OAAOC,OAAO,EAAE;IACpDC,IAAAA,gCAAyB;IACzB,IAAI;QACF,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAE,GAAGC,IAAAA,qBAAS,EAAC;YACxCC,MAAML;YACNM,kBAAkB;YAClBC,SAAS;gBACPC,QAAQ;oBAAEC,MAAM;oBAAWC,OAAO;gBAAI;gBACtCC,MAAM;oBAAEF,MAAM;gBAAU;gBACxBG,MAAM;oBAAEH,MAAM;oBAAWC,OAAO;gBAAI;YACtC;QACF;QACA,IAAIR,OAAOU,IAAI,EAAE;YACfC,QAAQC,MAAM,CAACC,KAAK,CAACC,IAAAA,aAAO;YAC5B;QACF;QACA,MAAM,EAAEC,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC;QACxC,MAAMV,UAAUU,eAAef,QAAQC;QACvC,MAAM,EAAEe,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC;QACjC,MAAMA,QAAQX;IAChB,EAAE,OAAOY,OAAO;QACdC,IAAAA,kBAAW,EAACD;IACd;AACF"}
@@ -0,0 +1,2 @@
1
+ import type { Options } from './resolveOptions';
2
+ export declare function psAsync(options: Options): Promise<void>;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "psAsync", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return psAsync;
9
+ }
10
+ });
11
+ function _chalk() {
12
+ const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
13
+ _chalk = function() {
14
+ return data;
15
+ };
16
+ return data;
17
+ }
18
+ const _sessions = require("../sessions");
19
+ function _interop_require_default(obj) {
20
+ return obj && obj.__esModule ? obj : {
21
+ default: obj
22
+ };
23
+ }
24
+ async function psAsync(options) {
25
+ const sessions = (await (0, _sessions.listExpoSessions)(options.selector)).filter((session)=>!options.active || session.alive);
26
+ if (options.json) {
27
+ process.stdout.write(`${JSON.stringify(sessions, null, 2)}\n`);
28
+ return;
29
+ }
30
+ process.stdout.write(_chalk().default.bold('PID\tSTATUS\tSTARTED\tCOMMAND\tPROJECT\tPORT\tURL') + '\n');
31
+ for (const session of sessions){
32
+ const { metadata } = session;
33
+ const ready = session.alive && metadata.ready === true;
34
+ process.stdout.write([
35
+ session.pid,
36
+ session.alive ? _chalk().default.green('alive') : _chalk().default.dim('exited'),
37
+ _chalk().default.dim(new Date(session.startedAt).toISOString()),
38
+ _chalk().default.bold(session.command.slice('expo '.length)),
39
+ _chalk().default.dim(typeof metadata.projectRoot === 'string' ? metadata.projectRoot : session.cwd),
40
+ ready && typeof metadata.port === 'number' ? _chalk().default.cyan(metadata.port) : _chalk().default.dim('-'),
41
+ ready && typeof metadata.devServerUrl === 'string' ? _chalk().default.underline(metadata.devServerUrl) : _chalk().default.dim('-')
42
+ ].map(escapeTsv).join('\t') + '\n');
43
+ }
44
+ }
45
+ function escapeTsv(value) {
46
+ return String(value).replace(/\\/g, '\\\\').replace(/\t/g, '\\t').replace(/\r/g, '\\r').replace(/\n/g, '\\n');
47
+ }
48
+
49
+ //# sourceMappingURL=psAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["command/ps/psAsync.ts"],"sourcesContent":[null],"names":["psAsync","options","sessions","listExpoSessions","selector","filter","session","active","alive","json","process","stdout","write","JSON","stringify","chalk","bold","metadata","ready","pid","green","dim","Date","startedAt","toISOString","command","slice","length","projectRoot","cwd","port","cyan","devServerUrl","underline","map","escapeTsv","join","value","String","replace"],"mappings":";;;;+BAKsBA;;;eAAAA;;;;gEALJ;;;;;;0BAEe;;;;;;AAG1B,eAAeA,QAAQC,OAAgB;IAC5C,MAAMC,WAAW,AAAC,CAAA,MAAMC,IAAAA,0BAAgB,EAACF,QAAQG,QAAQ,CAAA,EAAGC,MAAM,CAChE,CAACC,UAAY,CAACL,QAAQM,MAAM,IAAID,QAAQE,KAAK;IAE/C,IAAIP,QAAQQ,IAAI,EAAE;QAChBC,QAAQC,MAAM,CAACC,KAAK,CAAC,GAAGC,KAAKC,SAAS,CAACZ,UAAU,MAAM,GAAG,EAAE,CAAC;QAC7D;IACF;IACAQ,QAAQC,MAAM,CAACC,KAAK,CAACG,gBAAK,CAACC,IAAI,CAAC,uDAAuD;IACvF,KAAK,MAAMV,WAAWJ,SAAU;QAC9B,MAAM,EAAEe,QAAQ,EAAE,GAAGX;QACrB,MAAMY,QAAQZ,QAAQE,KAAK,IAAIS,SAASC,KAAK,KAAK;QAClDR,QAAQC,MAAM,CAACC,KAAK,CAClB;YACEN,QAAQa,GAAG;YACXb,QAAQE,KAAK,GAAGO,gBAAK,CAACK,KAAK,CAAC,WAAWL,gBAAK,CAACM,GAAG,CAAC;YACjDN,gBAAK,CAACM,GAAG,CAAC,IAAIC,KAAKhB,QAAQiB,SAAS,EAAEC,WAAW;YACjDT,gBAAK,CAACC,IAAI,CAACV,QAAQmB,OAAO,CAACC,KAAK,CAAC,QAAQC,MAAM;YAC/CZ,gBAAK,CAACM,GAAG,CAAC,OAAOJ,SAASW,WAAW,KAAK,WAAWX,SAASW,WAAW,GAAGtB,QAAQuB,GAAG;YACvFX,SAAS,OAAOD,SAASa,IAAI,KAAK,WAAWf,gBAAK,CAACgB,IAAI,CAACd,SAASa,IAAI,IAAIf,gBAAK,CAACM,GAAG,CAAC;YACnFH,SAAS,OAAOD,SAASe,YAAY,KAAK,WACtCjB,gBAAK,CAACkB,SAAS,CAAChB,SAASe,YAAY,IACrCjB,gBAAK,CAACM,GAAG,CAAC;SACf,CACEa,GAAG,CAACC,WACJC,IAAI,CAAC,QAAQ;IAEpB;AACF;AAEA,SAASD,UAAUE,KAAc;IAC/B,OAAOC,OAAOD,OACXE,OAAO,CAAC,OAAO,QACfA,OAAO,CAAC,OAAO,OACfA,OAAO,CAAC,OAAO,OACfA,OAAO,CAAC,OAAO;AACpB"}
@@ -0,0 +1,9 @@
1
+ export type Options = {
2
+ selector?: string;
3
+ active: boolean;
4
+ json: boolean;
5
+ };
6
+ export declare function resolveOptions(args: {
7
+ active?: boolean;
8
+ json?: boolean;
9
+ }, positionals: string[]): Options;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "resolveOptions", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return resolveOptions;
9
+ }
10
+ });
11
+ const _utils = require("../utils");
12
+ function resolveOptions(args, positionals) {
13
+ return {
14
+ selector: (0, _utils.resolveSelector)(positionals),
15
+ active: !!args.active,
16
+ json: !!args.json
17
+ };
18
+ }
19
+
20
+ //# sourceMappingURL=resolveOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["command/ps/resolveOptions.ts"],"sourcesContent":[null],"names":["resolveOptions","args","positionals","selector","resolveSelector","active","json"],"mappings":";;;;+BAQgBA;;;eAAAA;;;uBARgB;AAQzB,SAASA,eACdC,IAA0C,EAC1CC,WAAqB;IAErB,OAAO;QACLC,UAAUC,IAAAA,sBAAe,EAACF;QAC1BG,QAAQ,CAAC,CAACJ,KAAKI,MAAM;QACrBC,MAAM,CAAC,CAACL,KAAKK,IAAI;IACnB;AACF"}
@@ -0,0 +1,4 @@
1
+ import { type ListedSession } from '2g/api';
2
+ /** Expo installs the logger with an explicit `expo <command>` label. */
3
+ export declare function listExpoSessions(selector?: string): Promise<ListedSession[]>;
4
+ export declare function resolveExpoSession(selector?: string): Promise<ListedSession>;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ 0 && (module.exports = {
6
+ listExpoSessions: null,
7
+ resolveExpoSession: null
8
+ });
9
+ function _export(target, all) {
10
+ for(var name in all)Object.defineProperty(target, name, {
11
+ enumerable: true,
12
+ get: Object.getOwnPropertyDescriptor(all, name).get
13
+ });
14
+ }
15
+ _export(exports, {
16
+ get listExpoSessions () {
17
+ return listExpoSessions;
18
+ },
19
+ get resolveExpoSession () {
20
+ return resolveExpoSession;
21
+ }
22
+ });
23
+ function _api() {
24
+ const data = require("2g/api");
25
+ _api = function() {
26
+ return data;
27
+ };
28
+ return data;
29
+ }
30
+ async function listExpoSessions(selector) {
31
+ const sessions = (await (0, _api().list)()).filter((session)=>session.command.startsWith('expo ') && session.command !== 'expo command' && !session.command.startsWith('expo command:'));
32
+ const input = selector?.trim();
33
+ if (!input) return sessions;
34
+ // Match like 2g, but only let Expo sessions take precedence over substring matches.
35
+ const exact = sessions.filter((session)=>sessionSearchValues(session).includes(input));
36
+ if (exact.length) return exact;
37
+ const normalized = input.toLowerCase();
38
+ return sessions.filter((session)=>sessionSearchValues(session).some((value)=>value.toLowerCase().includes(normalized)));
39
+ }
40
+ function sessionSearchValues(session) {
41
+ return [
42
+ session.id,
43
+ String(session.pid),
44
+ session.sessionDir,
45
+ session.cwd,
46
+ session.command,
47
+ session.origin?.cwd,
48
+ session.origin?.argv.join(' '),
49
+ session.origin?.execPath,
50
+ session.origin?.env?.npmLifecycleEvent,
51
+ session.origin?.env?.npmPackageName
52
+ ].filter((value)=>!!value);
53
+ }
54
+ async function resolveExpoSession(selector) {
55
+ const sessions = await listExpoSessions(selector);
56
+ const active = sessions.filter((session)=>session.alive);
57
+ if (sessions.length === 1) return sessions[0];
58
+ if (active.length === 1) return active[0];
59
+ const match = selector ? ` matching ${JSON.stringify(selector)}` : '';
60
+ if (!sessions.length) {
61
+ throw new Error(`No Expo CLI sessions found${match}. Run \`npx expo command:ps --json\` to list sessions.`);
62
+ }
63
+ const candidates = active.length ? active : sessions;
64
+ const omitted = sessions.length - candidates.length;
65
+ throw new Error(`Ambiguous Expo CLI session${match}; specify a session ID or PID:\n` + candidates.map(formatSessionCandidate).join('\n') + (omitted ? `\n\n${omitted} matching stopped session${omitted === 1 ? '' : 's'} omitted.` : '') + '\nRun `npx expo command:ps --json` to list all sessions.');
66
+ }
67
+ function formatSessionCandidate(session) {
68
+ const { metadata } = session;
69
+ const details = [
70
+ `PID ${session.pid}`,
71
+ session.alive ? 'alive' : 'exited',
72
+ session.command.slice('expo '.length),
73
+ !session.alive && `started ${new Date(session.startedAt).toISOString()}`,
74
+ metadata.ready === true && typeof metadata.port === 'number' && `${session.alive ? 'port' : 'last port'} ${metadata.port}`,
75
+ JSON.stringify(typeof metadata.projectRoot === 'string' ? metadata.projectRoot : session.cwd)
76
+ ];
77
+ return ` ${session.id} (${details.filter(Boolean).join(', ')})`;
78
+ }
79
+
80
+ //# sourceMappingURL=sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["command/sessions.ts"],"sourcesContent":[null],"names":["listExpoSessions","resolveExpoSession","selector","sessions","list","filter","session","command","startsWith","input","trim","exact","sessionSearchValues","includes","length","normalized","toLowerCase","some","value","id","String","pid","sessionDir","cwd","origin","argv","join","execPath","env","npmLifecycleEvent","npmPackageName","active","alive","match","JSON","stringify","Error","candidates","omitted","map","formatSessionCandidate","metadata","details","slice","Date","startedAt","toISOString","ready","port","projectRoot","Boolean"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function installOutputErrorHandler(): void;
2
+ export declare function handleOutputError(error: NodeJS.ErrnoException): void;
3
+ /** Keep stdout machine-readable and errors concise, like 2g's commands. */
4
+ export declare function reportError(error: unknown): void;
5
+ export declare function resolveSelector(positionals: string[]): string | undefined;