testeranto 0.62.0 → 0.73.0

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 (186) hide show
  1. package/README.md +38 -26
  2. package/dist/cjs-shim.js +2 -2
  3. package/dist/common/Node.js +14 -51
  4. package/dist/common/PM/index.js +71 -0
  5. package/dist/common/PM/main.js +361 -0
  6. package/dist/common/PM/node.js +176 -0
  7. package/dist/common/PM/web.js +174 -0
  8. package/dist/common/Project.js +121 -266
  9. package/dist/common/Puppeteer.js +109 -0
  10. package/dist/common/Reporter.js +119 -0
  11. package/dist/common/Scheduler.js +1 -0
  12. package/dist/common/SubPackages/puppeteer.js +3 -1
  13. package/dist/common/SubPackages/react-dom/component/web.js +98 -45
  14. package/dist/common/SubPackages/react-dom/jsx/web.js +15 -7
  15. package/dist/common/SubPackages/react-test-renderer/MemoExoticComponent/node.js +1 -1
  16. package/dist/common/SubPackages/react-test-renderer/component/index.js +0 -1
  17. package/dist/common/SubPackages/react-test-renderer/fc/web.js +1 -1
  18. package/dist/common/SubPackages/react-test-renderer/jsx/index.js +1 -3
  19. package/dist/common/SubPackages/react-test-renderer/jsx/web.js +1 -1
  20. package/dist/common/SubPackages/react-test-renderer/jsx-promised/index.js +1 -1
  21. package/dist/common/Types.js +2 -32
  22. package/dist/common/Web.js +25 -37
  23. package/dist/common/esbuildConfigs/index.js +5 -5
  24. package/dist/common/esbuildConfigs/node.js +17 -15
  25. package/dist/common/esbuildConfigs/report.js +12 -47
  26. package/dist/common/esbuildConfigs/tests.js +0 -1
  27. package/dist/common/esbuildConfigs/web.js +17 -12
  28. package/dist/common/lib/abstractBase.js +190 -35
  29. package/dist/common/lib/basebuilder.js +56 -29
  30. package/dist/common/lib/classBuilder.js +8 -5
  31. package/dist/common/lib/core.js +42 -17
  32. package/dist/common/lib/index.js +11 -8
  33. package/dist/common/lib/types.js +2 -0
  34. package/dist/common/preload.js +14 -28
  35. package/dist/common/puppeteerConfiger.js +24 -0
  36. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  37. package/dist/module/Node.js +14 -51
  38. package/dist/module/PM/index.js +67 -0
  39. package/dist/module/PM/main.js +331 -0
  40. package/dist/module/PM/node.js +168 -0
  41. package/dist/module/PM/web.js +167 -0
  42. package/dist/module/Project.js +122 -267
  43. package/dist/module/Puppeteer.js +104 -0
  44. package/dist/module/Reporter.js +114 -0
  45. package/dist/module/Scheduler.js +1 -0
  46. package/dist/module/SubPackages/puppeteer.js +3 -1
  47. package/dist/module/SubPackages/react/jsx/node.js +1 -1
  48. package/dist/module/SubPackages/react/jsx/web.js +1 -1
  49. package/dist/module/SubPackages/react-dom/component/node.js +2 -2
  50. package/dist/module/SubPackages/react-dom/component/web.js +98 -45
  51. package/dist/module/SubPackages/react-dom/jsx/web.js +17 -9
  52. package/dist/module/SubPackages/react-test-renderer/MemoExoticComponent/node.js +1 -1
  53. package/dist/module/SubPackages/react-test-renderer/component/index.js +0 -1
  54. package/dist/module/SubPackages/react-test-renderer/fc/web.js +1 -1
  55. package/dist/module/SubPackages/react-test-renderer/jsx/index.js +1 -3
  56. package/dist/module/SubPackages/react-test-renderer/jsx/web.js +1 -1
  57. package/dist/module/SubPackages/react-test-renderer/jsx-promised/index.js +1 -1
  58. package/dist/module/Types.js +3 -30
  59. package/dist/module/Web.js +26 -38
  60. package/dist/module/esbuildConfigs/index.js +5 -5
  61. package/dist/module/esbuildConfigs/node.js +17 -15
  62. package/dist/module/esbuildConfigs/report.js +11 -48
  63. package/dist/module/esbuildConfigs/tests.js +0 -1
  64. package/dist/module/esbuildConfigs/web.js +17 -12
  65. package/dist/module/lib/abstractBase.js +190 -35
  66. package/dist/module/lib/basebuilder.js +56 -29
  67. package/dist/module/lib/classBuilder.js +8 -5
  68. package/dist/module/lib/core.js +44 -19
  69. package/dist/module/lib/index.js +11 -8
  70. package/dist/module/preload.js +15 -27
  71. package/dist/module/puppeteerConfiger.js +19 -0
  72. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  73. package/dist/prebuild/Report.css +1616 -584
  74. package/dist/prebuild/Report.js +2635 -2506
  75. package/dist/types/Node.d.ts +3 -2
  76. package/dist/types/PM/index.d.ts +19 -0
  77. package/dist/types/PM/main.d.ts +28 -0
  78. package/dist/types/PM/node.d.ts +26 -0
  79. package/dist/types/PM/web.d.ts +24 -0
  80. package/dist/types/Project.d.ts +1 -2
  81. package/dist/types/Puppeteer.d.ts +1 -0
  82. package/dist/types/Reporter.d.ts +1 -0
  83. package/dist/types/Scheduler.d.ts +0 -0
  84. package/dist/types/SubPackages/puppeteer.d.ts +3 -3
  85. package/dist/types/SubPackages/react/component/node.d.ts +1 -1
  86. package/dist/types/SubPackages/react/component/web.d.ts +1 -1
  87. package/dist/types/SubPackages/react/jsx/index.d.ts +1 -1
  88. package/dist/types/SubPackages/react/jsx/node.d.ts +1 -1
  89. package/dist/types/SubPackages/react/jsx/web.d.ts +2 -2
  90. package/dist/types/SubPackages/react-dom/component/node.d.ts +2 -2
  91. package/dist/types/SubPackages/react-dom/component/web.d.ts +1 -1
  92. package/dist/types/SubPackages/react-dom/jsx/node.d.ts +1 -1
  93. package/dist/types/SubPackages/react-dom/jsx/web.d.ts +1 -1
  94. package/dist/types/SubPackages/react-test-renderer/MemoExoticComponent/node.d.ts +1 -1
  95. package/dist/types/SubPackages/react-test-renderer/component/index.d.ts +1 -1
  96. package/dist/types/SubPackages/react-test-renderer/component/node.d.ts +1 -1
  97. package/dist/types/SubPackages/react-test-renderer/component/web.d.ts +1 -1
  98. package/dist/types/SubPackages/react-test-renderer/fc/node.d.ts +1 -1
  99. package/dist/types/SubPackages/react-test-renderer/fc/web.d.ts +1 -1
  100. package/dist/types/SubPackages/react-test-renderer/jsx/node.d.ts +1 -1
  101. package/dist/types/SubPackages/react-test-renderer/jsx/web.d.ts +3 -3
  102. package/dist/types/SubPackages/react-test-renderer/jsx-promised/index.d.ts +1 -1
  103. package/dist/types/SubPackages/react-test-renderer/jsx-promised/node.d.ts +1 -1
  104. package/dist/types/SubPackages/react-test-renderer/jsx-promised/web.d.ts +1 -1
  105. package/dist/types/Types.d.ts +19 -100
  106. package/dist/types/Web.d.ts +3 -2
  107. package/dist/types/esbuildConfigs/features.d.ts +1 -1
  108. package/dist/types/esbuildConfigs/index.d.ts +1 -1
  109. package/dist/types/esbuildConfigs/node.d.ts +1 -1
  110. package/dist/types/esbuildConfigs/report.d.ts +4 -0
  111. package/dist/types/esbuildConfigs/tests.d.ts +1 -1
  112. package/dist/types/esbuildConfigs/web.d.ts +1 -1
  113. package/dist/types/lib/abstractBase.d.ts +26 -24
  114. package/dist/types/lib/basebuilder.d.ts +10 -7
  115. package/dist/types/lib/classBuilder.d.ts +4 -3
  116. package/dist/types/lib/core.d.ts +5 -4
  117. package/dist/types/lib/index.d.ts +7 -5
  118. package/dist/types/lib/types.d.ts +62 -0
  119. package/dist/types/preload.d.ts +0 -1
  120. package/dist/types/puppeteerConfiger.d.ts +4 -0
  121. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  122. package/package.json +6 -7
  123. package/src/Node.ts +30 -85
  124. package/src/PM/index.ts +102 -0
  125. package/src/PM/main.ts +420 -0
  126. package/src/PM/node.ts +515 -0
  127. package/src/PM/web.ts +497 -0
  128. package/src/Project.ts +183 -619
  129. package/src/Puppeteer.ts +131 -0
  130. package/src/Report.tsx +158 -44
  131. package/src/Reporter.ts +134 -0
  132. package/src/Scheduler.ts +0 -0
  133. package/src/SubPackages/puppeteer.ts +19 -14
  134. package/src/SubPackages/react/component/node.ts +20 -32
  135. package/src/SubPackages/react/component/web.ts +20 -30
  136. package/src/SubPackages/react/jsx/index.ts +13 -24
  137. package/src/SubPackages/react/jsx/node.ts +5 -8
  138. package/src/SubPackages/react/jsx/web.ts +10 -8
  139. package/src/SubPackages/react-dom/component/node.ts +17 -23
  140. package/src/SubPackages/react-dom/component/web.ts +134 -95
  141. package/src/SubPackages/react-dom/jsx/web.ts +41 -48
  142. package/src/SubPackages/react-test-renderer/MemoExoticComponent/node.ts +27 -37
  143. package/src/SubPackages/react-test-renderer/component/index.ts +16 -30
  144. package/src/SubPackages/react-test-renderer/component/node.ts +5 -11
  145. package/src/SubPackages/react-test-renderer/component/web.ts +5 -11
  146. package/src/SubPackages/react-test-renderer/fc/node.ts +36 -50
  147. package/src/SubPackages/react-test-renderer/fc/web.ts +37 -50
  148. package/src/SubPackages/react-test-renderer/jsx/index.ts +15 -21
  149. package/src/SubPackages/react-test-renderer/jsx/node.ts +6 -10
  150. package/src/SubPackages/react-test-renderer/jsx/web.ts +7 -7
  151. package/src/SubPackages/react-test-renderer/jsx-promised/index.ts +13 -16
  152. package/src/Types.ts +73 -307
  153. package/src/Web.ts +40 -81
  154. package/src/cjs-shim.js +2 -2
  155. package/src/esbuildConfigs/features.ts +3 -4
  156. package/src/esbuildConfigs/index.ts +8 -8
  157. package/src/esbuildConfigs/node.ts +21 -20
  158. package/src/esbuildConfigs/report.ts +15 -51
  159. package/src/esbuildConfigs/tests.ts +3 -9
  160. package/src/esbuildConfigs/web.ts +22 -20
  161. package/src/lib/abstractBase.ts +312 -164
  162. package/src/lib/basebuilder.ts +123 -127
  163. package/src/lib/classBuilder.ts +30 -48
  164. package/src/lib/core.ts +115 -84
  165. package/src/lib/index.ts +58 -56
  166. package/src/lib/types.ts +197 -0
  167. package/src/preload.ts +14 -30
  168. package/src/puppeteerConfiger.ts +26 -0
  169. package/src/web.html.ts +1 -1
  170. package/dist/common/NodeWriter.js +0 -56
  171. package/dist/common/electron.js +0 -196
  172. package/dist/common/lib/browser.js +0 -26
  173. package/dist/common/nodeWriterElectron.js +0 -55
  174. package/dist/module/NodeWriter.js +0 -50
  175. package/dist/module/electron.js +0 -191
  176. package/dist/module/lib/browser.js +0 -22
  177. package/dist/module/nodeWriterElectron.js +0 -52
  178. package/dist/types/NodeWriter.d.ts +0 -2
  179. package/dist/types/lib/browser.d.ts +0 -6
  180. package/dist/types/nodeWriterElectron.d.ts +0 -2
  181. package/src/NodeWriter.ts +0 -69
  182. package/src/electron.ts +0 -250
  183. package/src/lib/browser.ts +0 -34
  184. package/src/nodeWriterElectron.ts +0 -71
  185. package/yarn-error.log +0 -3144
  186. /package/dist/{types/electron.d.ts → module/lib/types.js} +0 -0
package/src/PM/web.ts ADDED
@@ -0,0 +1,497 @@
1
+ import { PassThrough } from "stream";
2
+ import { ITLog, ITTestResourceConfiguration } from "../lib";
3
+ import { PM } from "./index.js";
4
+ import puppeteer from "puppeteer-core/lib/esm/puppeteer/puppeteer-core-browser.js";
5
+
6
+ // type IFPaths = string[];
7
+ // const fPaths: IFPaths = [];
8
+
9
+ type PuppetMasterServer = Record<string, Promise<any>>;
10
+
11
+ function waitForFunctionCall() {
12
+ return new Promise<void>((resolve) => {
13
+ window["myFunction"] = () => {
14
+ // Do something when myFunction is called
15
+ console.log("myFunction was called!");
16
+ resolve(); // Resolve the promise
17
+ };
18
+ });
19
+ }
20
+
21
+ const files = new Set<string>();
22
+
23
+ export class PM_Web extends PM {
24
+ server: PuppetMasterServer;
25
+ // testResourceConfiguration: ITTestResourceConfiguration;
26
+
27
+ constructor(t: ITTestResourceConfiguration) {
28
+ super();
29
+ this.server = {};
30
+ this.testResourceConfiguration = t;
31
+ }
32
+
33
+ existsSync(destFolder: string): boolean {
34
+ return window["existsSync"](destFolder);
35
+ }
36
+
37
+ mkdirSync() {
38
+ return window["mkdirSync"](this.testResourceConfiguration.fs + "/");
39
+ }
40
+
41
+ write(writeObject: { uid: number }, contents: string) {
42
+ return window["write"](writeObject.uid, contents);
43
+ }
44
+
45
+ writeFileSync(filepath: string, contents: string) {
46
+ console.log("WEB writeFileSync", filepath);
47
+ files.add(filepath);
48
+ return window["writeFileSync"](
49
+ this.testResourceConfiguration.fs + "/" + filepath,
50
+ contents
51
+ );
52
+ }
53
+
54
+ createWriteStream(filepath: string): any {
55
+ files.add(filepath);
56
+ return window["createWriteStream"](
57
+ this.testResourceConfiguration.fs + "/" + filepath
58
+ );
59
+ }
60
+
61
+ end(writeObject: { uid: number }) {
62
+ return window["end"](writeObject.uid);
63
+ }
64
+
65
+ customclose() {
66
+ window["writeFileSync"](
67
+ this.testResourceConfiguration.fs + "/manifest.json",
68
+ // files.entries()
69
+ JSON.stringify(Array.from(files))
70
+ ).then(() => {
71
+ window["customclose"]();
72
+ });
73
+ }
74
+
75
+ testArtiFactoryfileWriter(tLog: ITLog, callback: (Promise) => void) {
76
+ return (fPath, value: string | Buffer | PassThrough) => {
77
+ callback(
78
+ new Promise<void>((res, rej) => {
79
+ tLog("testArtiFactory =>", fPath);
80
+
81
+ // const cleanPath = path.resolve(fPath);
82
+ // fPaths.push(cleanPath.replace(process.cwd(), ``));
83
+
84
+ // const targetDir = cleanPath.split("/").slice(0, -1).join("/");
85
+
86
+ // fs.mkdir(targetDir, { recursive: true }, async (error) => {
87
+ // if (error) {
88
+ // console.error(`❗️testArtiFactory failed`, targetDir, error);
89
+ // }
90
+
91
+ // fs.writeFileSync(
92
+ // path.resolve(
93
+ // targetDir.split("/").slice(0, -1).join("/"),
94
+ // "manifest"
95
+ // ),
96
+ // fPaths.join(`\n`),
97
+ // {
98
+ // encoding: "utf-8",
99
+ // }
100
+ // );
101
+
102
+ // if (Buffer.isBuffer(value)) {
103
+ // fs.writeFileSync(fPath, value, "binary");
104
+ // res();
105
+ // } else if (`string` === typeof value) {
106
+ // fs.writeFileSync(fPath, value.toString(), {
107
+ // encoding: "utf-8",
108
+ // });
109
+ // res();
110
+ // } else {
111
+ // /* @ts-ignore:next-line */
112
+ // const pipeStream: PassThrough = value;
113
+ // const myFile = fs.createWriteStream(fPath);
114
+ // pipeStream.pipe(myFile);
115
+ // pipeStream.on("close", () => {
116
+ // myFile.close();
117
+ // res();
118
+ // });
119
+ // }
120
+ // });
121
+ })
122
+ );
123
+ };
124
+ }
125
+
126
+ startPuppeteer(options, destFolder: string): Promise<any> {
127
+ return fetch(`http://localhost:3234/json/version`)
128
+ .then((v) => {
129
+ return v.json();
130
+ })
131
+ .then((json) => {
132
+ console.log("found endpoint", json.webSocketDebuggerUrl);
133
+ return puppeteer
134
+ .connect({
135
+ browserWSEndpoint: json.webSocketDebuggerUrl,
136
+ })
137
+ .then((b) => {
138
+ this.browser = b;
139
+ const handler2 = {
140
+ get(target, prop, receiver) {
141
+ if (prop === "screenshot") {
142
+ return async (x) => {
143
+ // debugger;
144
+ files.add(x.path);
145
+ console.log("aloha", files);
146
+ return await window["custom-screenshot"]({
147
+ ...x,
148
+ path: destFolder + "/" + x.path,
149
+ });
150
+ };
151
+ } else if (prop === "mainFrame") {
152
+ return () => target[prop](...arguments);
153
+ } else {
154
+ return Reflect.get(...arguments);
155
+ }
156
+ },
157
+ };
158
+ const handler1 = {
159
+ get(target, prop, receiver) {
160
+ if (prop === "pages") {
161
+ return async () => {
162
+ return target.pages().then((pages) => {
163
+ return pages.map((p) => {
164
+ return new Proxy(p, handler2);
165
+ });
166
+ });
167
+ };
168
+ }
169
+
170
+ return Reflect.get(...arguments);
171
+ },
172
+ };
173
+
174
+ const proxy3 = new Proxy(this.browser, handler1);
175
+ this.browser = proxy3;
176
+ });
177
+ });
178
+ // console.log("connecting to ws://localhost:3234/devtools/browser/RANDOM");
179
+
180
+ // return puppeteer
181
+ // .connect({
182
+ // ...options,
183
+ // })
184
+ // .finally(() => {
185
+ // console.log("idk");
186
+ // });
187
+ // return new Promise<Browser>(async (res, rej) => {
188
+ // console.log("connecting with options", options);
189
+ // this.browser = await puppeteer.connect({
190
+ // ...options,
191
+ // });
192
+ // res(this.browser);
193
+ // });
194
+ }
195
+
196
+ // launchNode = (src: string, dest: string) => {
197
+ // console.log("launchNode", src);
198
+ // // childProcesses[src] = "running";
199
+ // const destFolder = dest.replace(".mjs", "");
200
+
201
+ // const argz = JSON.stringify({
202
+ // scheduled: true,
203
+ // name: src,
204
+ // ports: [3333],
205
+ // // fs: path.resolve(configs.buildDir, "web", destFolder + "/"),
206
+ // // fs: destFolder,
207
+ // fs: ".",
208
+ // });
209
+
210
+ // const builtfile = dest + ".mjs";
211
+ // console.log("importing and running ", builtfile);
212
+ // // import(builtfile).then(async (v) => {
213
+ // // console.log("v", (await v.default).receiveTestResourceConfig(argz));
214
+ // // });
215
+
216
+ // // console.log("launchNode", src, dest, " -> ", destFolder, argz);
217
+
218
+ // // const child = utilityProcess.fork(dest + ".mjs", [argz], {
219
+ // // cwd: destFolder,
220
+ // // stdio: "pipe",
221
+ // // });
222
+ // // const nodeGuid = uuidv4();
223
+ // // nodeChildren[nodeGuid] = child;
224
+
225
+ // // if (!fs.existsSync(destFolder)) {
226
+ // // fs.mkdirSync(destFolder, { recursive: true });
227
+ // // }
228
+
229
+ // // fs.rmSync(`${destFolder}/stdout.log`, { force: true });
230
+ // // fs.rmSync(`${destFolder}/stderr.log`, { force: true });
231
+ // // const stdout = fs.createWriteStream(`${destFolder}/stdout.log`);
232
+ // // const stderr = fs.createWriteStream(`${destFolder}/stderr.log`);
233
+
234
+ // // child
235
+ // // .on("message", (data) => {
236
+ // // console.log("from child", JSON.stringify(data));
237
+ // // if (data.launchWeb) {
238
+ // // const guid = uuidv4();
239
+ // // const webChild = launchWebSecondary(process.cwd() + data.launchWeb);
240
+ // // // child.postMessage({ webLaunched: guid });
241
+
242
+ // // webChild.webContents.on("did-finish-load", () => {
243
+ // // // webChild.webContents.send("message", "hello world");
244
+ // // child.postMessage({ webLaunched: guid });
245
+ // // webChildren[guid] = webChild;
246
+ // // node2web[nodeGuid] = [...(node2web[nodeGuid] || []), guid];
247
+ // // });
248
+ // // }
249
+ // // if (data.teardown) {
250
+ // // webChildren[data.teardown].close();
251
+ // // delete webChildren[data.teardown];
252
+ // // node2web[nodeGuid] = node2web[nodeGuid].filter(
253
+ // // (x) => x !== data.teardown
254
+ // // );
255
+ // // }
256
+ // // })
257
+ // // .on("exit", (data) => {
258
+ // // stdout.close();
259
+ // // stderr.close();
260
+ // // console.log(`ending node ${src}`);
261
+ // // onDone(src);
262
+ // // });
263
+
264
+ // // child.stdout?.pipe(stdout);
265
+ // // child.stderr?.pipe(stderr);
266
+ // };
267
+
268
+ // const launchWebSecondary = (htmlFile: string): BrowserWindow => {
269
+ // console.log("launchWebSecondary", htmlFile);
270
+ // const subWin = new BrowserWindow({
271
+ // show: false,
272
+
273
+ // webPreferences: {
274
+ // nodeIntegration: true,
275
+ // nodeIntegrationInWorker: true,
276
+ // contextIsolation: false,
277
+ // preload: path.join(app.getAppPath(), "preload.js"),
278
+ // offscreen: false,
279
+ // devTools: true,
280
+ // },
281
+ // });
282
+ // remoteMain.enable(subWin.webContents);
283
+ // subWin.webContents.openDevTools();
284
+ // subWin.loadFile(htmlFile);
285
+ // return subWin;
286
+
287
+ // // const uuid = uuidv4();
288
+ // // windows[uuid] = subWin;
289
+ // // return uuid;
290
+ // };
291
+
292
+ // const launchWeb = (t: string, dest: string) => {
293
+ // console.log("launchWeb", t);
294
+ // childProcesses[t] = "running";
295
+ // const destFolder = dest.replace(".mjs", "");
296
+
297
+ // const subWin = new BrowserWindow({
298
+ // show: true,
299
+ // webPreferences: {
300
+ // nodeIntegration: true,
301
+ // nodeIntegrationInWorker: true,
302
+ // contextIsolation: false,
303
+ // preload: path.join(app.getAppPath(), "preload.js"),
304
+ // offscreen: false,
305
+ // devTools: true,
306
+ // },
307
+ // });
308
+
309
+ // webChildren[uuidv4()] = subWin;
310
+
311
+ // remoteMain.enable(subWin.webContents);
312
+
313
+ // const webArgz = JSON.stringify({
314
+ // name: dest,
315
+ // ports: [].toString(),
316
+ // fs: destFolder,
317
+ // });
318
+
319
+ // // console.log("webArgz", webArgz);
320
+ // subWin.loadFile(`${dest}.html`, {
321
+ // query: {
322
+ // requesting: encodeURIComponent(webArgz),
323
+ // },
324
+ // });
325
+
326
+ // if (!fs.existsSync(destFolder)) {
327
+ // fs.mkdirSync(destFolder, { recursive: true });
328
+ // }
329
+ // const stdout = fs.createWriteStream(`${destFolder}/stdout.log`);
330
+
331
+ // subWin.webContents.on(
332
+ // "console-message",
333
+ // (event, level, message, line, sourceId) => {
334
+ // stdout.write(
335
+ // JSON.stringify(
336
+ // {
337
+ // event,
338
+ // level,
339
+ // message: JSON.stringify(message),
340
+ // line,
341
+ // sourceId,
342
+ // },
343
+ // null,
344
+ // 2
345
+ // )
346
+ // );
347
+ // stdout.write("\n");
348
+ // }
349
+ // );
350
+ // subWin.on("closed", () => {
351
+ // stdout.close();
352
+ // console.log(`ending web ${t}`);
353
+ // // childProcesses[t] = "done";
354
+ // onDone(t);
355
+ // });
356
+ // ipcMain.on("message", (message, data) => {
357
+ // console.log("ipcMain message: " + JSON.stringify(data));
358
+ // // process.exit();
359
+ // });
360
+ // };
361
+
362
+ // return await import("${dest}.mjs");
363
+
364
+ // launchWeb = (t: string, dest: string) => {
365
+ // console.log("launchWeb", t, dest);
366
+ // // childProcesses[t] = "running";
367
+ // const destFolder = dest.replace(".mjs", "");
368
+
369
+ // const webArgz = JSON.stringify({
370
+ // name: dest,
371
+ // ports: [].toString(),
372
+ // fs: destFolder,
373
+ // });
374
+
375
+ // const evaluation = `import('${dest}.mjs').then(async (x) => {
376
+ // console.log(x);
377
+ // })`;
378
+
379
+ // // console.log("evaluation", evaluation);
380
+
381
+ // // const y = browser
382
+ // // .newPage()
383
+ // // .then(async (page) => {
384
+ // // // const codeString = "1 + 1";
385
+ // // await page.goto(
386
+ // // // "file:///Users/adam/Code/kokomoBay/docs/web/src/LoginPage/react/web.test.html"
387
+ // // `file://${`${dest}.html`}`
388
+ // // );
389
+ // // // page.url
390
+ // // // page.setContent(`
391
+
392
+ // // // <!DOCTYPE html>
393
+ // // // <html lang="en">
394
+
395
+ // // // <head>
396
+
397
+ // // // </head>
398
+
399
+ // // // <body>
400
+ // // // <h1>/Users/adam/Code/kokomoBay/docs/web/src/LoginPage/react/web.test.html</h1>
401
+ // // // <div id="root">
402
+
403
+ // // // </div>
404
+ // // // </body>
405
+
406
+ // // // <footer></footer>
407
+
408
+ // // // </html>
409
+ // // // `);
410
+ // // // return await page.evaluate((code) => eval(code), evaluation);
411
+
412
+ // // return await page.evaluate(evaluation);
413
+ // // // return await page.evaluate(async () => {
414
+ // // // return await import(dest);
415
+ // // // });
416
+ // // })
417
+ // // .then((x) => {
418
+ // // console.log("mark1", x);
419
+ // // });
420
+ // // .then((x) => {
421
+ // // console.log("mark0", x);
422
+ // // })
423
+ // // .catch((z) => {
424
+ // // console.log("mark2", z);
425
+ // // });
426
+
427
+ // // const subWin = new BrowserWindow({
428
+ // // show: true,
429
+ // // webPreferences: {
430
+ // // nodeIntegration: true,
431
+ // // nodeIntegrationInWorker: true,
432
+ // // contextIsolation: false,
433
+ // // preload: path.join(app.getAppPath(), "preload.js"),
434
+ // // offscreen: false,
435
+ // // devTools: true,
436
+ // // },
437
+ // // });
438
+
439
+ // // webChildren[uuidv4()] = subWin;
440
+
441
+ // // remoteMain.enable(subWin.webContents);
442
+
443
+ // // // console.log("webArgz", webArgz);
444
+ // // subWin.loadFile(`${dest}.html`, {
445
+ // // query: {
446
+ // // requesting: encodeURIComponent(webArgz),
447
+ // // },
448
+ // // });
449
+
450
+ // // if (!fs.existsSync(destFolder)) {
451
+ // // fs.mkdirSync(destFolder, { recursive: true });
452
+ // // }
453
+ // // const stdout = fs.createWriteStream(`${destFolder}/stdout.log`);
454
+
455
+ // // subWin.webContents.on(
456
+ // // "console-message",
457
+ // // (event, level, message, line, sourceId) => {
458
+ // // stdout.write(
459
+ // // JSON.stringify(
460
+ // // {
461
+ // // event,
462
+ // // level,
463
+ // // message: JSON.stringify(message),
464
+ // // line,
465
+ // // sourceId,
466
+ // // },
467
+ // // null,
468
+ // // 2
469
+ // // )
470
+ // // );
471
+ // // stdout.write("\n");
472
+ // // }
473
+ // // );
474
+ // // subWin.on("closed", () => {
475
+ // // stdout.close();
476
+ // // console.log(`ending web ${t}`);
477
+ // // // childProcesses[t] = "done";
478
+ // // onDone(t);
479
+ // // });
480
+ // // ipcMain.on("message", (message, data) => {
481
+ // // console.log("ipcMain message: " + JSON.stringify(data));
482
+ // // // process.exit();
483
+ // // });
484
+ // };
485
+ }
486
+
487
+ // class PuppetMasterServer extends AbstractPuppetMaster {
488
+ // // constructor(...z: []) {
489
+ // // super(...z);
490
+ // // }
491
+ // // // pages(): Promise<Page[]>;
492
+ // // pages(): Promise<Page[]> {
493
+ // // return new Promise<Page[]>((res, rej) => {
494
+ // // res(super.pages());
495
+ // // });
496
+ // // }
497
+ // }