@swf2es/desktop 0.1.15 → 0.1.16

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 (52) hide show
  1. package/README.md +44 -11
  2. package/dist/launch/launch.js +4 -1
  3. package/dist/launch/launch.js.map +1 -1
  4. package/dist/main/main.js +66 -8
  5. package/dist/main/main.js.map +1 -1
  6. package/dist/main/netlog.d.ts +21 -0
  7. package/dist/main/netlog.d.ts.map +1 -0
  8. package/dist/main/netlog.js +90 -0
  9. package/dist/main/netlog.js.map +1 -0
  10. package/dist/main/sockets.d.ts +4 -2
  11. package/dist/main/sockets.d.ts.map +1 -1
  12. package/dist/main/sockets.js +15 -2
  13. package/dist/main/sockets.js.map +1 -1
  14. package/dist/main/websocket-connections.d.ts +62 -0
  15. package/dist/main/websocket-connections.d.ts.map +1 -0
  16. package/dist/main/websocket-connections.js +198 -0
  17. package/dist/main/websocket-connections.js.map +1 -0
  18. package/dist/main/websockets.d.ts +11 -0
  19. package/dist/main/websockets.d.ts.map +1 -0
  20. package/dist/main/websockets.js +93 -0
  21. package/dist/main/websockets.js.map +1 -0
  22. package/dist/preload/preload.cjs +20 -0
  23. package/dist/preload/preload.cjs.map +1 -1
  24. package/dist/renderer/air.d.ts.map +1 -1
  25. package/dist/renderer/air.js +1 -0
  26. package/dist/renderer/air.js.map +1 -1
  27. package/dist/renderer/full-screen.d.ts +4 -0
  28. package/dist/renderer/full-screen.d.ts.map +1 -0
  29. package/dist/renderer/full-screen.js +32 -0
  30. package/dist/renderer/full-screen.js.map +1 -0
  31. package/dist/renderer/index.d.ts.map +1 -1
  32. package/dist/renderer/index.js +4 -0
  33. package/dist/renderer/index.js.map +1 -1
  34. package/dist/renderer/websockets.d.ts +4 -0
  35. package/dist/renderer/websockets.d.ts.map +1 -0
  36. package/dist/renderer/websockets.js +36 -0
  37. package/dist/renderer/websockets.js.map +1 -0
  38. package/dist/shared/api.d.ts +53 -0
  39. package/dist/shared/api.d.ts.map +1 -1
  40. package/package.json +7 -7
  41. package/src/launch/launch.ts +5 -2
  42. package/src/main/main.ts +88 -9
  43. package/src/main/netlog.ts +108 -0
  44. package/src/main/sockets.ts +17 -1
  45. package/src/main/websocket-connections.ts +264 -0
  46. package/src/main/websockets.ts +115 -0
  47. package/src/preload/preload.cts +23 -0
  48. package/src/renderer/air.ts +1 -0
  49. package/src/renderer/full-screen.ts +44 -0
  50. package/src/renderer/index.ts +4 -0
  51. package/src/renderer/websockets.ts +43 -0
  52. package/src/shared/api.ts +40 -0
package/README.md CHANGED
@@ -9,6 +9,11 @@ npx @swf2es/desktop [options] [file.swf | https://host/movie.swf]
9
9
  npx @swf2es/desktop [options] app.xml [root-dir] [-- arguments...]
10
10
  ```
11
11
 
12
+ npx takes the first `--` on its command line as the end of its own
13
+ options, so with arguments for the application write one before the
14
+ package too: `npx -- @swf2es/desktop app.xml -- --server=local`. The
15
+ installed command, `swf2es-desktop`, needs only the second.
16
+
12
17
  Node 22.18 or later runs it. The first run downloads Electron's binary
13
18
  (about 100 MB), once; installed, the command is `swf2es-desktop`. A
14
19
  relative path is taken from the directory the command was run in.
@@ -32,7 +37,11 @@ fetch-electron` does so ahead, for the tests.
32
37
  open; File › Open Recent lists the last ten, files and URLs. The
33
38
  window takes the SWF's name. View › Reload Movie (Ctrl+R) starts it
34
39
  again, View › Toggle Full Screen (F11) fills the screen, and File ›
35
- Close Movie (Ctrl+W) stops it. Opening another SWF destroys the
40
+ Close Movie (Ctrl+W) stops it. A SWF's own full screen
41
+ (`Stage.displayState`) is the window's too: it needs no click, as in AIR
42
+ and Flash's projector, draws its `fullScreenSourceRect` alone where it
43
+ set one, and ends with Esc or F11, which the SWF hears of as a
44
+ `FullScreenEvent`. Opening another SWF destroys the
36
45
  player before the next starts.
37
46
  - **Stage3D.** View › Stage3D (Experimental) opts in to Context3D playback.
38
47
  It starts off, remembers the choice in `settings.json`, and restarts the
@@ -53,15 +62,29 @@ fetch-electron` does so ahead, for the tests.
53
62
  `settings.json` in Electron's user data directory.
54
63
  - **Trace.** `--trace` prints what the page logs, a SWF's `trace()` among
55
64
  it, to the terminal: trace lines to stdout, warnings and errors to stderr.
65
+ - **Network log.** `--log-network` prints each of the SWF's requests to
66
+ stderr as it is answered (`swf2es: net GET https://… 200 12.3 kB 48 ms`),
67
+ an aborted one too, and each socket and each WebSocket of an AIR
68
+ application as it is asked for, opened, refused, failed and closed
69
+ (`swf2es: websocket #1 connecting to ws://…`, `open`, `close 1000`). A
70
+ refused request is said with or without it. The
71
+ window's DevTools show none of these in their Network tab: the page has
72
+ no network, and the main process sends them.
73
+ `--log-sockets` prints those lines and each message a socket or a
74
+ WebSocket sends (`>`) and receives (`<`): its size and its first 512
75
+ bytes, as text where it is text and in hex otherwise, a WebSocket's
76
+ text message as its text. That is whatever the SWF sends, a login
77
+ and its password among it: mind where the terminal's output goes.
56
78
  - **Certificates.** `--ignore-certificate-errors` leaves every HTTPS
57
- server's certificate unverified for this run, and
79
+ server's certificate, and every `wss:` server's that an AIR
80
+ application's WebSocket connects to, unverified for this run, and
58
81
  `--ignore-certificate-errors=dev.test,localhost` those hosts' alone, on
59
82
  any port: for a server of your own whose certificate it signed itself.
60
83
  Whoever is between you and such a host can then read and change what the
61
- SWF loads from it. It is never kept in the settings, and the app says on
84
+ SWF loads from it or says to it. It is never kept in the settings, and the app says on
62
85
  stderr, each time it starts with it, which hosts go unverified. The page
63
- itself has no network (the main process makes a SWF's requests), so
64
- nothing but those requests is affected.
86
+ itself has no network (the main process makes a SWF's requests and
87
+ connections), so nothing but those is affected.
65
88
  - **Sandbox.** A SWF plays in the sandbox Flash Player gave a local SWF,
66
89
  by its FileAttributes' UseNetwork bit. Without it,
67
90
  local-with-filesystem: it reads the files in its own directory and below
@@ -90,16 +113,25 @@ fetch-electron` does so ahead, for the tests.
90
113
  - **Sockets** (`flash.net.Socket`) connect over TCP through the main
91
114
  process. The first connection to each server asks: Allow Once, Always
92
115
  Allow for This SWF (remembered in `settings.json`) or Deny.
116
+ - **WebSockets** (`air.net.WebSocket`, AIR's and not Flash Player's)
117
+ connect through the main process too, with the WebSocket client of
118
+ Electron's Node, for an AIR application alone: to any `ws:` or `wss:`
119
+ URL, unasked, text and binary messages, subprotocols and close codes.
120
+ As in a browser, it sends the close codes 1000 and 3000 to 4999 (any
121
+ other closes with none), answers a server's pings itself and sends
122
+ none of the application's own.
93
123
  - **AIR applications** run by their descriptor (`app.xml`), as adl runs
94
124
  them: its first window's content SWF, from the descriptor's directory
95
125
  or the root directory given after it, at the descriptor's size and with
96
126
  its title, the arguments after `--` handed to its InvokeEvent. It plays
97
- with AIR's API (NativeApplication, the window, `flash.filesystem.File`)
127
+ with AIR's API (NativeApplication, the window, the system's displays as
128
+ `flash.display.Screen`, `flash.filesystem.File`)
98
129
  in AIR's application sandbox: it is played from `app:/`, reads any
99
130
  local file through File, FileStream and its `app:`, `app-storage:` and
100
131
  `file:` URLs, writes any file but through its `app:` URLs, as AIR does,
101
- and reaches the network and sockets without Flash's policy files or a
102
- prompt, as an installed application does. Its storage directory is
132
+ and reaches the network, sockets and WebSockets (`air.net.WebSocket`)
133
+ without Flash's policy files or a prompt, as an installed application
134
+ does. Its storage directory is
103
135
  under the app's user data, by its id, and its `EncryptedLocalStore`
104
136
  beside it, encrypted by the system's keychain (Electron's
105
137
  `safeStorage`) where there is one. Only the application playing has
@@ -118,11 +150,12 @@ fetch-electron` does so ahead, for the tests.
118
150
  ## Layout
119
151
 
120
152
  ```
121
- src/main/ the main process: window, menu, settings, swf2es://, sockets and the network
153
+ src/main/ the main process: window, menu, settings, swf2es://, sockets, WebSockets
154
+ and the network
122
155
  src/preload/ window.swf2esDesktop, the page's only way to the main process, and the
123
156
  URL dialog's window.swf2esPrompt
124
- src/renderer/ the page: the element, the welcome and library panels, the socket and
125
- fetch hosts; and the URL dialog's page
157
+ src/renderer/ the page: the element, the welcome and library panels, the socket,
158
+ WebSocket and fetch hosts; and the URL dialog's page
126
159
  src/shared/ api.ts, the types of window.swf2esDesktop
127
160
  static/ index.html (with the page's import map), open-url.html and style.css
128
161
  src/launch/ the swf2es-desktop command, and `start`: finds Electron, fetching its
@@ -3,7 +3,7 @@
3
3
  // swf2es-desktop command of the package npm installs, and a checkout's
4
4
  // `start`.
5
5
  //
6
- // npx @swf2es/desktop [--trace] [file.swf | https://host/movie.swf]
6
+ // npx @swf2es/desktop [--trace] [--log-network] [file.swf | https://host/movie.swf]
7
7
  // npx @swf2es/desktop [--trace] app.xml [root-dir] [-- arguments...]
8
8
  // pnpm --filter @swf2es/desktop start ... the same, in a checkout
9
9
  //
@@ -61,6 +61,9 @@ if (!build || appRoot.includes(`${join("node_modules", "@swf2es")}`)) {
61
61
  build = JSON.parse(readFileSync(join(appRoot, "package.json"), "utf8")).version;
62
62
  }
63
63
  const env = { ...process.env, SWF2ES_DESKTOP_BUILD: build };
64
+ // Set by tools that are Electron apps themselves, an editor's terminals and tasks among them,
65
+ // for the node they run: here it would make Electron run the app's main module as plain node.
66
+ delete env.ELECTRON_RUN_AS_NODE;
64
67
  const child = spawn(electronBinary(), [appRoot, ...args], { stdio: "inherit", env });
65
68
  child.on("exit", (code, signal) => process.exit(signal ? 1 : (code ?? 0)));
66
69
  for (const signal of ["SIGINT", "SIGTERM"]) {
@@ -1 +1 @@
1
- {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/launch/launch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/launch/launch.ts"],"names":[],"mappings":";AACA,sEAAsE;AACtE,uEAAuE;AACvE,WAAW;AACX,EAAE;AACF,sFAAsF;AACtF,uEAAuE;AACvE,2EAA2E;AAC3E,EAAE;AACF,0EAA0E;AAC1E,gEAAgE;AAChE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElF,2FAA2F;AAC3F,6FAA6F;AAC7F,sDAAsD;AACtD,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;IACtB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;IAC7C,CAAC;IAED,IAAI,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACvD,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AACtB,IAAI,GAAG,EAAE,CAAC;IACR,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAClD,6FAA6F;AAC7F,mDAAmD;AACnD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAClD,MAAM,IAAI,GAAG;IACX,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACvF,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;CACrC,CAAC;AACF,6FAA6F;AAC7F,IAAI,KAAK,GAAG,EAAE,CAAC;AACf,IAAI,CAAC;IACH,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE;QAC/D,GAAG,EAAE,OAAO;QACZ,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;KACpC,CAAC,CAAC,IAAI,EAAE,CAAC;AACZ,CAAC;AAAC,MAAM,CAAC;IACP,6BAA6B;AAC/B,CAAC;AAED,kGAAkG;AAClG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AAClF,CAAC;AAED,MAAM,GAAG,GAAsB,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;AAC/E,8FAA8F;AAC9F,8FAA8F;AAC9F,OAAO,GAAG,CAAC,oBAAoB,CAAC;AAChC,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,EAAY,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;AAC/F,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,KAAK,MAAM,MAAM,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAU,EAAE,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/C,CAAC"}
package/dist/main/main.js CHANGED
@@ -5,7 +5,7 @@
5
5
  // electron apps/desktop [--trace] [file.swf | http(s)://host/movie.swf]
6
6
  // electron apps/desktop [--trace] app.xml [root-dir] [-- arguments...]
7
7
  //
8
- // --ignore-certificate-errors[=host,...] leaves HTTPS certificates unchecked.
8
+ // --ignore-certificate-errors[=host,...] leaves HTTPS and WSS certificates unchecked.
9
9
  //
10
10
  // The second runs an AIR application by its descriptor, as adl does.
11
11
  import { statSync } from "node:fs";
@@ -13,14 +13,17 @@ import { open as openFile, readFile, realpath } from "node:fs/promises";
13
13
  import { basename, dirname, isAbsolute, join, resolve } from "node:path";
14
14
  import { fileURLToPath } from "node:url";
15
15
  import { fileAttributes } from "@swf2es/format";
16
- import { app, BrowserWindow, dialog, ipcMain, Menu, safeStorage, session, shell, } from "electron";
16
+ import { app, BrowserWindow, dialog, ipcMain, Menu, safeStorage, screen, session, shell, } from "electron";
17
17
  import { airCommand, airLaunch, createDirectoryOf, EncryptedItems, listOf, moveOf, readOf, removeOf, statOf, writeOf, } from "./air.js";
18
18
  import { bridgeFiles } from "./files.js";
19
+ import { failureLine, requestLine } from "./netlog.js";
19
20
  import { Network, Refused, unverifiedHosts } from "./network.js";
20
21
  import { APP_ORIGIN, registerScheme, serve } from "./protocol.js";
21
22
  import { Sandbox } from "./sandbox.js";
22
23
  import { SettingsFile } from "./settings.js";
23
24
  import { bridgeSockets } from "./sockets.js";
25
+ import { hasWebSocket, unverifiedDispatcher, webSocketOpener } from "./websocket-connections.js";
26
+ import { bridgeWebSockets } from "./websockets.js";
24
27
  const preload = fileURLToPath(new URL("../preload/preload.cjs", import.meta.url));
25
28
  const promptPreload = fileURLToPath(new URL("../preload/prompt.cjs", import.meta.url));
26
29
  // The window's and the taskbar's icon, the project's, where the platform takes one from the window.
@@ -40,6 +43,11 @@ registerScheme();
40
43
  app.enableSandbox();
41
44
  /** --trace: what the page logs, a SWF's trace() among it, goes to the terminal. */
42
45
  const trace = process.argv.includes("--trace");
46
+ // Each request and socket of the SWF's said on stderr: the page's DevTools show none of them.
47
+ // --log-sockets says what each socket sends and receives as well, and so the rest too.
48
+ const logSockets = process.argv.includes("--log-sockets");
49
+ const logNetwork = logSockets || process.argv.includes("--log-network");
50
+ const netLog = logNetwork ? (line) => process.stderr.write(`${line}\n`) : null;
43
51
  const sandbox = new Sandbox();
44
52
  /** The SWF's http and https requests, judged as Flash's sandboxes had them. */
45
53
  /**
@@ -51,12 +59,17 @@ const sandbox = new Sandbox();
51
59
  const unverified = unverifiedHosts(process.argv.slice(1));
52
60
  if (unverified) {
53
61
  process.stderr.write(unverified.all
54
- ? "swf2es: --ignore-certificate-errors: no HTTPS server's certificate is verified\n"
62
+ ? "swf2es: --ignore-certificate-errors: no HTTPS or WSS server's certificate is verified\n"
55
63
  : `swf2es: --ignore-certificate-errors: certificates are not verified for ${unverified.hosts.join(", ") || "no host"}\n`);
56
64
  }
57
- const network = new Network({
58
- unverified: (host) => !!unverified && (unverified.all || unverified.hosts.includes(host.toLowerCase())),
59
- });
65
+ const unverifiedHost = (host) => !!unverified && (unverified.all || unverified.hosts.includes(host.toLowerCase()));
66
+ const network = new Network({ unverified: unverifiedHost });
67
+ // What opens an AIR application's WebSockets: the global's client, a wss: server's certificate
68
+ // unchecked where the switch names its host.
69
+ const insecureWebSockets = unverified ? unverifiedDispatcher() : null;
70
+ if (unverified && !insecureWebSockets) {
71
+ process.stderr.write("swf2es: --ignore-certificate-errors: a WebSocket's certificate is verified all the same\n");
72
+ }
60
73
  /** What the page's requests under way abort with, by the preload's number. */
61
74
  const requests = new Map();
62
75
  let settings;
@@ -452,6 +465,21 @@ async function askForSocket(name, swf, endpoint) {
452
465
  return false;
453
466
  }
454
467
  }
468
+ /**
469
+ * Whether what plays may open a WebSocket to `url`: an AIR application,
470
+ * unasked and anywhere, as AIR's application sandbox connects and as its
471
+ * sockets do here. air.net.WebSocket is AIR's alone, so nothing else has one.
472
+ */
473
+ function permitWebSocket(url) {
474
+ if (sandbox.application && hasWebSocket()) {
475
+ return true;
476
+ }
477
+ const why = sandbox.application
478
+ ? "this Electron has no WebSocket client"
479
+ : "only an AIR application has one";
480
+ process.stderr.write(`swf2es: no WebSocket to ${url.slice(0, 2048)}: ${why}\n`);
481
+ return false;
482
+ }
455
483
  async function showOpenDialog() {
456
484
  if (!window) {
457
485
  return;
@@ -673,6 +701,9 @@ function createWindow() {
673
701
  window.on("closed", () => {
674
702
  window = null;
675
703
  });
704
+ // The page hears of full screen however it came, a SWF's Stage.displayState or the menu's F11.
705
+ window.on("enter-full-screen", () => window?.webContents.send("desktop:full-screen", true));
706
+ window.on("leave-full-screen", () => window?.webContents.send("desktop:full-screen", false));
676
707
  guard(window.webContents);
677
708
  void window.loadURL(`${APP_ORIGIN}/`);
678
709
  }
@@ -696,6 +727,12 @@ function listen() {
696
727
  build,
697
728
  };
698
729
  });
730
+ // Stage.displayState of a SWF the user opened: the window's full screen, asked with no gesture.
731
+ ipcMain.on("desktop:full-screen", (event, fullScreen) => {
732
+ if (trusted(event) && current && window) {
733
+ window.setFullScreen(fullScreen === true);
734
+ }
735
+ });
699
736
  ipcMain.on("desktop:open-dialog", (event) => {
700
737
  if (trusted(event)) {
701
738
  void showOpenDialog();
@@ -732,7 +769,8 @@ function listen() {
732
769
  void chooseLibrary(name);
733
770
  }
734
771
  });
735
- bridgeSockets(trusted, permitSocket);
772
+ bridgeSockets(trusted, permitSocket, netLog, logSockets);
773
+ bridgeWebSockets(trusted, permitWebSocket, insecureWebSockets ? webSocketOpener(unverifiedHost, insecureWebSockets) : undefined, netLog, logSockets);
736
774
  ipcMain.handle("net:fetch", (event, id, request) => {
737
775
  if (!trusted(event) || typeof id !== "number") {
738
776
  throw new Error("not the app's page");
@@ -774,6 +812,16 @@ function windowState(w) {
774
812
  visible: w.isVisible(),
775
813
  };
776
814
  }
815
+ /** The displays as an AIR application's Screen reads them: the work area is past the system's bars. */
816
+ function screenStates() {
817
+ const primary = screen.getPrimaryDisplay().id;
818
+ return screen.getAllDisplays().map((display) => ({
819
+ bounds: display.bounds,
820
+ visibleBounds: display.workArea,
821
+ colorDepth: display.colorDepth,
822
+ main: display.id === primary,
823
+ }));
824
+ }
777
825
  /**
778
826
  * An AIR application's reach, shared/api.ts DesktopAir: the file system
779
827
  * and the window, only while one the user opened plays and only for its
@@ -850,6 +898,9 @@ function listenForAir() {
850
898
  ipcMain.on("air:window", (event) => {
851
899
  event.returnValue = playing(event) && window ? windowState(window) : null;
852
900
  });
901
+ ipcMain.on("air:screens", (event) => {
902
+ event.returnValue = playing(event) ? screenStates() : [];
903
+ });
853
904
  ipcMain.on("air:set-bounds", (event, bounds) => {
854
905
  const b = bounds;
855
906
  const n = (v) => (typeof v === "number" && Number.isFinite(v) ? Math.round(v) : null);
@@ -921,8 +972,12 @@ async function fetchForPage(id, request, deliver) {
921
972
  }
922
973
  const controller = new AbortController();
923
974
  requests.set(id, controller);
975
+ const started = performance.now();
976
+ const method = typeof asked?.method === "string" ? asked.method.slice(0, 16) : "GET";
924
977
  try {
925
- return await network.fetch(request, controller.signal, deliver);
978
+ const response = await network.fetch(request, controller.signal, deliver);
979
+ netLog?.(requestLine(method, url, response.status, response.bytes?.length ?? null, performance.now() - started));
980
+ return response;
926
981
  }
927
982
  catch (error) {
928
983
  // A refusal says why; anything else, which should not happen, is said too.
@@ -930,6 +985,9 @@ async function fetchForPage(id, request, deliver) {
930
985
  const why = error instanceof Refused ? error.message : `failed: ${error}`;
931
986
  process.stderr.write(`swf2es: not loading ${shown}: ${why}\n`);
932
987
  }
988
+ else {
989
+ netLog?.(failureLine(method, url, "aborted", performance.now() - started));
990
+ }
933
991
  throw error;
934
992
  }
935
993
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /** A request answered: its method, URL, status, body's size and how long it took. */
2
+ export declare function requestLine(method: string, url: string, status: number, bytes: number | null, ms: number): string;
3
+ /** A request that got no answer: refused, failed or aborted, and why. */
4
+ export declare function failureLine(method: string, url: string, why: string, ms: number): string;
5
+ /** A socket's connection asked for, opened, refused or closed. */
6
+ export declare function socketLine(id: number, what: string): string;
7
+ /**
8
+ * What a socket sent (">") or received ("<"): its size and its start, as
9
+ * text where it is text, bytes that are no printable ASCII as dots, else
10
+ * in hex. A message past PREVIEW bytes ends in an ellipsis.
11
+ */
12
+ export declare function socketDataLine(id: number, sent: boolean, bytes: Uint8Array): string;
13
+ /** A WebSocket's connection asked for, opened, refused, failed or closed. */
14
+ export declare function webSocketLine(id: number, what: string): string;
15
+ /**
16
+ * What a WebSocket sent (">") or received ("<"): a text message's size
17
+ * in UTF-8 and its first PREVIEW characters, control characters as dots;
18
+ * a binary one's as a socket's.
19
+ */
20
+ export declare function webSocketDataLine(id: number, sent: boolean, data: string | Uint8Array): string;
21
+ //# sourceMappingURL=netlog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"netlog.d.ts","sourceRoot":"","sources":["../../src/main/netlog.ts"],"names":[],"mappings":"AAsBA,qFAAqF;AACrF,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,EAAE,EAAE,MAAM,GACT,MAAM,CAGR;AAED,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAExF;AAED,kEAAkE;AAClE,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D;AAgCD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAEnF;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAc9F"}
@@ -0,0 +1,90 @@
1
+ // --log-network's lines: what a SWF asked of the network, as the terminal
2
+ // shows it. The page has no network of its own, so its DevTools' Network
3
+ // tab shows none of this; the main process, which sends the requests, says
4
+ // them here instead. Apart from Electron, so that node tests it.
5
+ /** A size as a person reads it: bytes, then kB and MB to one decimal. */
6
+ function size(bytes) {
7
+ if (bytes < 1024) {
8
+ return `${bytes} B`;
9
+ }
10
+ return bytes < 1024 * 1024
11
+ ? `${(bytes / 1024).toFixed(1)} kB`
12
+ : `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
13
+ }
14
+ /** A URL short enough for a line, and with nothing a terminal would act on. */
15
+ function shown(url) {
16
+ // biome-ignore lint/suspicious/noControlCharactersInRegex: control characters are what is taken out
17
+ return url.slice(0, 2048).replace(/[\u0000-\u001f\u007f]/g, "?");
18
+ }
19
+ /** A request answered: its method, URL, status, body's size and how long it took. */
20
+ export function requestLine(method, url, status, bytes, ms) {
21
+ const body = bytes === null ? "no body" : size(bytes);
22
+ return `swf2es: net ${method} ${shown(url)} ${status} ${body} ${Math.round(ms)} ms`;
23
+ }
24
+ /** A request that got no answer: refused, failed or aborted, and why. */
25
+ export function failureLine(method, url, why, ms) {
26
+ return `swf2es: net ${method} ${shown(url)} ${why} ${Math.round(ms)} ms`;
27
+ }
28
+ /** A socket's connection asked for, opened, refused or closed. */
29
+ export function socketLine(id, what) {
30
+ return `swf2es: socket #${id} ${shown(what)}`;
31
+ }
32
+ /** How much of a message --log-sockets shows. */
33
+ const PREVIEW = 512;
34
+ /** The start of `bytes`: as text where it is text, bytes that are no printable ASCII as dots, else in hex. */
35
+ function preview(bytes) {
36
+ const shownBytes = bytes.subarray(0, PREVIEW);
37
+ let printable = 0;
38
+ for (let i = 0; i < shownBytes.length; i++) {
39
+ const b = shownBytes[i];
40
+ if ((b >= 32 && b < 127) || b === 9 || b === 10 || b === 13 || b === 0) {
41
+ printable++;
42
+ }
43
+ }
44
+ let text = "";
45
+ // Mostly text, as a line protocol's messages are, a NUL ending each: shown as text.
46
+ if (printable * 10 >= shownBytes.length * 9) {
47
+ for (let i = 0; i < shownBytes.length; i++) {
48
+ const b = shownBytes[i];
49
+ text += b >= 32 && b < 127 ? String.fromCharCode(b) : ".";
50
+ }
51
+ }
52
+ else {
53
+ for (let i = 0; i < shownBytes.length; i++) {
54
+ text += (i > 0 ? " " : "") + shownBytes[i].toString(16).padStart(2, "0");
55
+ }
56
+ }
57
+ return text + (bytes.length > PREVIEW ? "…" : "");
58
+ }
59
+ /**
60
+ * What a socket sent (">") or received ("<"): its size and its start, as
61
+ * text where it is text, bytes that are no printable ASCII as dots, else
62
+ * in hex. A message past PREVIEW bytes ends in an ellipsis.
63
+ */
64
+ export function socketDataLine(id, sent, bytes) {
65
+ return `swf2es: socket #${id} ${sent ? ">" : "<"} ${bytes.length} B ${preview(bytes)}`;
66
+ }
67
+ /** A WebSocket's connection asked for, opened, refused, failed or closed. */
68
+ export function webSocketLine(id, what) {
69
+ return `swf2es: websocket #${id} ${shown(what)}`;
70
+ }
71
+ /**
72
+ * What a WebSocket sent (">") or received ("<"): a text message's size
73
+ * in UTF-8 and its first PREVIEW characters, control characters as dots;
74
+ * a binary one's as a socket's.
75
+ */
76
+ export function webSocketDataLine(id, sent, data) {
77
+ const head = `swf2es: websocket #${id} ${sent ? ">" : "<"}`;
78
+ if (typeof data !== "string") {
79
+ return `${head} binary ${data.length} B ${preview(data)}`;
80
+ }
81
+ // By code point, so that no pair is cut in two.
82
+ const characters = Array.from(data.slice(0, PREVIEW * 2)).slice(0, PREVIEW);
83
+ const text = characters
84
+ .join("")
85
+ // biome-ignore lint/suspicious/noControlCharactersInRegex: control characters are what is taken out
86
+ .replace(/[\u0000-\u001f\u007f-\u009f\u2028\u2029]/g, ".");
87
+ const more = text.length < data.length ? "…" : "";
88
+ return `${head} text ${Buffer.byteLength(data)} B ${text}${more}`;
89
+ }
90
+ //# sourceMappingURL=netlog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"netlog.js","sourceRoot":"","sources":["../../src/main/netlog.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,11 @@ import { type IpcMainEvent } from "electron";
2
2
  /**
3
3
  * Carry socket messages from pages that `trusted` accepts, each connection
4
4
  * made only as `permit` allows it, to the address it gives where it gives
5
- * one; null refuses it.
5
+ * one; null refuses it. `log`, where given, is told each connection asked
6
+ * for, opened, refused, failed and closed (--log-network), and with
7
+ * `data` what each sends and receives too (--log-sockets).
6
8
  */
7
9
  export declare function bridgeSockets(trusted: (event: IpcMainEvent) => boolean, permit: (host: string, port: number) => Promise<{
8
10
  address?: string;
9
- } | null>): void;
11
+ } | null>, log?: ((line: string) => void) | null, data?: boolean): void;
10
12
  //# sourceMappingURL=sockets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sockets.d.ts","sourceRoot":"","sources":["../../src/main/sockets.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAA6B,MAAM,UAAU,CAAC;AAGxE;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,EACzC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,GAC3E,IAAI,CAkEN"}
1
+ {"version":3,"file":"sockets.d.ts","sourceRoot":"","sources":["../../src/main/sockets.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAA6B,MAAM,UAAU,CAAC;AAIxE;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,EACzC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,EAC5E,GAAG,GAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAW,EAC3C,IAAI,UAAQ,GACX,IAAI,CA6EN"}