testeranto 0.79.4 → 0.79.6

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 (184) hide show
  1. package/TaskMan1.Dockerfile +2 -1
  2. package/package.json +1 -1
  3. package/src/TaskManBackEnd.ts +2 -2
  4. package/dist/TaskMan.Dockerfile +0 -23
  5. package/dist/common/Features.js +0 -84
  6. package/dist/common/Node.js +0 -23
  7. package/dist/common/PM/index.js +0 -7
  8. package/dist/common/PM/main.js +0 -641
  9. package/dist/common/PM/node.js +0 -88
  10. package/dist/common/PM/web.js +0 -132
  11. package/dist/common/Project.js +0 -186
  12. package/dist/common/Puppeteer.js +0 -104
  13. package/dist/common/Reporter.js +0 -112
  14. package/dist/common/Scheduler.js +0 -1
  15. package/dist/common/SubPackages/puppeteer.js +0 -21
  16. package/dist/common/SubPackages/react/component/node.js +0 -19
  17. package/dist/common/SubPackages/react/component/web.js +0 -19
  18. package/dist/common/SubPackages/react/jsx/index.js +0 -25
  19. package/dist/common/SubPackages/react/jsx/node.js +0 -10
  20. package/dist/common/SubPackages/react/jsx/web.js +0 -10
  21. package/dist/common/SubPackages/react-dom/component/node.js +0 -101
  22. package/dist/common/SubPackages/react-dom/component/web.js +0 -93
  23. package/dist/common/SubPackages/react-dom/jsx/index.js +0 -2
  24. package/dist/common/SubPackages/react-dom/jsx/node.js +0 -39
  25. package/dist/common/SubPackages/react-dom/jsx/web.js +0 -118
  26. package/dist/common/SubPackages/react-test-renderer/MemoExoticComponent/node.js +0 -44
  27. package/dist/common/SubPackages/react-test-renderer/component/index.js +0 -2
  28. package/dist/common/SubPackages/react-test-renderer/component/interface.js +0 -68
  29. package/dist/common/SubPackages/react-test-renderer/component/node.js +0 -8
  30. package/dist/common/SubPackages/react-test-renderer/component/web.js +0 -8
  31. package/dist/common/SubPackages/react-test-renderer/fc/node.js +0 -50
  32. package/dist/common/SubPackages/react-test-renderer/fc/web.js +0 -50
  33. package/dist/common/SubPackages/react-test-renderer/jsx/index.js +0 -48
  34. package/dist/common/SubPackages/react-test-renderer/jsx/node.js +0 -10
  35. package/dist/common/SubPackages/react-test-renderer/jsx/web.js +0 -10
  36. package/dist/common/SubPackages/react-test-renderer/jsx-promised/index.js +0 -42
  37. package/dist/common/SubPackages/react-test-renderer/jsx-promised/node.js +0 -10
  38. package/dist/common/SubPackages/react-test-renderer/jsx-promised/web.js +0 -10
  39. package/dist/common/TaskManBackEnd.js +0 -174
  40. package/dist/common/Types.js +0 -2
  41. package/dist/common/Web.js +0 -39
  42. package/dist/common/esbuildConfigs/features.js +0 -14
  43. package/dist/common/esbuildConfigs/index.js +0 -21
  44. package/dist/common/esbuildConfigs/inputFilesPlugin.js +0 -49
  45. package/dist/common/esbuildConfigs/node.js +0 -39
  46. package/dist/common/esbuildConfigs/report.js +0 -13
  47. package/dist/common/esbuildConfigs/tests.js +0 -13
  48. package/dist/common/esbuildConfigs/web.js +0 -57
  49. package/dist/common/lib/abstractBase.js +0 -553
  50. package/dist/common/lib/basebuilder.js +0 -79
  51. package/dist/common/lib/classBuilder.js +0 -42
  52. package/dist/common/lib/core.js +0 -75
  53. package/dist/common/lib/index.js +0 -22
  54. package/dist/common/lib/types.js +0 -2
  55. package/dist/common/mongooseSchemas.js +0 -56
  56. package/dist/common/package.json +0 -3
  57. package/dist/common/preload.js +0 -15
  58. package/dist/common/puppeteerConfiger.js +0 -24
  59. package/dist/common/report.html.js +0 -31
  60. package/dist/common/tsconfig.common.tsbuildinfo +0 -1
  61. package/dist/common/utils.js +0 -16
  62. package/dist/common/web.html.js +0 -22
  63. package/dist/module/ExampleTab.js +0 -112
  64. package/dist/module/Features.js +0 -73
  65. package/dist/module/Node.js +0 -18
  66. package/dist/module/PM/index.js +0 -3
  67. package/dist/module/PM/main.js +0 -611
  68. package/dist/module/PM/node.js +0 -81
  69. package/dist/module/PM/web.js +0 -125
  70. package/dist/module/Project.js +0 -179
  71. package/dist/module/Puppeteer.js +0 -99
  72. package/dist/module/Reporter.js +0 -107
  73. package/dist/module/Scheduler.js +0 -1
  74. package/dist/module/SubPackages/puppeteer.js +0 -16
  75. package/dist/module/SubPackages/react/component/node.js +0 -14
  76. package/dist/module/SubPackages/react/component/web.js +0 -14
  77. package/dist/module/SubPackages/react/jsx/index.js +0 -19
  78. package/dist/module/SubPackages/react/jsx/node.js +0 -5
  79. package/dist/module/SubPackages/react/jsx/web.js +0 -5
  80. package/dist/module/SubPackages/react-dom/component/node.js +0 -93
  81. package/dist/module/SubPackages/react-dom/component/web.js +0 -88
  82. package/dist/module/SubPackages/react-dom/jsx/index.js +0 -1
  83. package/dist/module/SubPackages/react-dom/jsx/node.js +0 -31
  84. package/dist/module/SubPackages/react-dom/jsx/web.js +0 -90
  85. package/dist/module/SubPackages/react-test-renderer/MemoExoticComponent/node.js +0 -16
  86. package/dist/module/SubPackages/react-test-renderer/component/index.js +0 -1
  87. package/dist/module/SubPackages/react-test-renderer/component/interface.js +0 -39
  88. package/dist/module/SubPackages/react-test-renderer/component/node.js +0 -3
  89. package/dist/module/SubPackages/react-test-renderer/component/web.js +0 -3
  90. package/dist/module/SubPackages/react-test-renderer/fc/node.js +0 -22
  91. package/dist/module/SubPackages/react-test-renderer/fc/web.js +0 -22
  92. package/dist/module/SubPackages/react-test-renderer/jsx/index.js +0 -19
  93. package/dist/module/SubPackages/react-test-renderer/jsx/node.js +0 -5
  94. package/dist/module/SubPackages/react-test-renderer/jsx/web.js +0 -5
  95. package/dist/module/SubPackages/react-test-renderer/jsx-promised/index.js +0 -16
  96. package/dist/module/SubPackages/react-test-renderer/jsx-promised/node.js +0 -5
  97. package/dist/module/SubPackages/react-test-renderer/jsx-promised/web.js +0 -5
  98. package/dist/module/TaskManBackEnd.js +0 -169
  99. package/dist/module/TaskManFrontEnd.js +0 -600
  100. package/dist/module/Types.js +0 -1
  101. package/dist/module/Web.js +0 -34
  102. package/dist/module/esbuildConfigs/features.js +0 -12
  103. package/dist/module/esbuildConfigs/index.js +0 -19
  104. package/dist/module/esbuildConfigs/inputFilesPlugin.js +0 -44
  105. package/dist/module/esbuildConfigs/node.js +0 -34
  106. package/dist/module/esbuildConfigs/report.js +0 -11
  107. package/dist/module/esbuildConfigs/tests.js +0 -11
  108. package/dist/module/esbuildConfigs/web.js +0 -52
  109. package/dist/module/lib/abstractBase.js +0 -545
  110. package/dist/module/lib/basebuilder.js +0 -75
  111. package/dist/module/lib/classBuilder.js +0 -38
  112. package/dist/module/lib/core.js +0 -72
  113. package/dist/module/lib/index.js +0 -18
  114. package/dist/module/lib/types.js +0 -1
  115. package/dist/module/mongooseSchemas.js +0 -50
  116. package/dist/module/package.json +0 -3
  117. package/dist/module/preload.js +0 -15
  118. package/dist/module/puppeteerConfiger.js +0 -19
  119. package/dist/module/report.html.js +0 -29
  120. package/dist/module/tsconfig.module.tsbuildinfo +0 -1
  121. package/dist/module/utils.js +0 -9
  122. package/dist/module/web.html.js +0 -20
  123. package/dist/prebuild/Report.css +0 -11358
  124. package/dist/prebuild/Report.js +0 -37666
  125. package/dist/prebuild/TaskManBackEnd.mjs +0 -180
  126. package/dist/prebuild/TaskManFrontEnd.css +0 -12301
  127. package/dist/prebuild/TaskManFrontEnd.js +0 -81737
  128. package/dist/types/Features.d.ts +0 -68
  129. package/dist/types/Node.d.ts +0 -6
  130. package/dist/types/PM/index.d.ts +0 -20
  131. package/dist/types/PM/main.d.ts +0 -31
  132. package/dist/types/PM/node.d.ts +0 -27
  133. package/dist/types/PM/web.d.ts +0 -25
  134. package/dist/types/Project.d.ts +0 -7
  135. package/dist/types/Puppeteer.d.ts +0 -1
  136. package/dist/types/Reporter.d.ts +0 -1
  137. package/dist/types/Scheduler.d.ts +0 -0
  138. package/dist/types/SubPackages/puppeteer.d.ts +0 -6
  139. package/dist/types/SubPackages/react/component/node.d.ts +0 -7
  140. package/dist/types/SubPackages/react/component/web.d.ts +0 -7
  141. package/dist/types/SubPackages/react/jsx/index.d.ts +0 -12
  142. package/dist/types/SubPackages/react/jsx/node.d.ts +0 -4
  143. package/dist/types/SubPackages/react/jsx/web.d.ts +0 -4
  144. package/dist/types/SubPackages/react-dom/component/node.d.ts +0 -12
  145. package/dist/types/SubPackages/react-dom/component/web.d.ts +0 -11
  146. package/dist/types/SubPackages/react-dom/jsx/index.d.ts +0 -6
  147. package/dist/types/SubPackages/react-dom/jsx/node.d.ts +0 -6
  148. package/dist/types/SubPackages/react-dom/jsx/web.d.ts +0 -5
  149. package/dist/types/SubPackages/react-test-renderer/MemoExoticComponent/node.d.ts +0 -5
  150. package/dist/types/SubPackages/react-test-renderer/component/index.d.ts +0 -13
  151. package/dist/types/SubPackages/react-test-renderer/component/interface.d.ts +0 -9
  152. package/dist/types/SubPackages/react-test-renderer/component/node.d.ts +0 -8
  153. package/dist/types/SubPackages/react-test-renderer/component/web.d.ts +0 -3
  154. package/dist/types/SubPackages/react-test-renderer/fc/node.d.ts +0 -8
  155. package/dist/types/SubPackages/react-test-renderer/fc/web.d.ts +0 -8
  156. package/dist/types/SubPackages/react-test-renderer/jsx/index.d.ts +0 -16
  157. package/dist/types/SubPackages/react-test-renderer/jsx/node.d.ts +0 -8
  158. package/dist/types/SubPackages/react-test-renderer/jsx/web.d.ts +0 -8
  159. package/dist/types/SubPackages/react-test-renderer/jsx-promised/index.d.ts +0 -15
  160. package/dist/types/SubPackages/react-test-renderer/jsx-promised/node.d.ts +0 -4
  161. package/dist/types/SubPackages/react-test-renderer/jsx-promised/web.d.ts +0 -4
  162. package/dist/types/TaskManBackEnd.d.ts +0 -1
  163. package/dist/types/Types.d.ts +0 -50
  164. package/dist/types/Web.d.ts +0 -6
  165. package/dist/types/esbuildConfigs/features.d.ts +0 -4
  166. package/dist/types/esbuildConfigs/index.d.ts +0 -4
  167. package/dist/types/esbuildConfigs/inputFilesPlugin.d.ts +0 -5
  168. package/dist/types/esbuildConfigs/node.d.ts +0 -4
  169. package/dist/types/esbuildConfigs/report.d.ts +0 -4
  170. package/dist/types/esbuildConfigs/tests.d.ts +0 -4
  171. package/dist/types/esbuildConfigs/web.d.ts +0 -4
  172. package/dist/types/lib/abstractBase.d.ts +0 -104
  173. package/dist/types/lib/basebuilder.d.ts +0 -27
  174. package/dist/types/lib/classBuilder.d.ts +0 -7
  175. package/dist/types/lib/core.d.ts +0 -8
  176. package/dist/types/lib/index.d.ts +0 -59
  177. package/dist/types/lib/types.d.ts +0 -64
  178. package/dist/types/mongooseSchemas.d.ts +0 -124
  179. package/dist/types/preload.d.ts +0 -0
  180. package/dist/types/puppeteerConfiger.d.ts +0 -4
  181. package/dist/types/report.html.d.ts +0 -2
  182. package/dist/types/tsconfig.types.tsbuildinfo +0 -1
  183. package/dist/types/utils.d.ts +0 -2
  184. package/dist/types/web.html.d.ts +0 -2
@@ -1,641 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.PM_Main = void 0;
30
- const fs_1 = __importDefault(require("fs"));
31
- const path_1 = __importDefault(require("path"));
32
- const puppeteer_core_1 = __importDefault(require("puppeteer-core"));
33
- const index_js_1 = require("./index.js");
34
- const utils_js_1 = require("../utils.js");
35
- const fPaths = [];
36
- const fileStreams3 = [];
37
- const files = {}; // = new Set<string>();
38
- const screenshots = {};
39
- class PM_Main extends index_js_1.PM {
40
- constructor(configs) {
41
- super();
42
- this.launchNode = async (src, dest) => {
43
- console.log("launchNode", src);
44
- const destFolder = dest.replace(".mjs", "");
45
- let argz = "";
46
- const testConfig = this.configs.tests.find((t) => {
47
- return t[0] === src;
48
- });
49
- if (!testConfig) {
50
- console.error("missing test config");
51
- process.exit(-1);
52
- }
53
- const testConfigResource = testConfig[2];
54
- let portsToUse = [];
55
- if (testConfigResource.ports === 0) {
56
- argz = JSON.stringify({
57
- scheduled: true,
58
- name: src,
59
- ports: portsToUse,
60
- fs: destFolder,
61
- browserWSEndpoint: this.browser.wsEndpoint(),
62
- });
63
- }
64
- else if (testConfigResource.ports > 0) {
65
- const openPorts = Object.entries(this.ports).filter(([portnumber, portopen]) => portopen);
66
- console.log("openPorts", openPorts);
67
- if (openPorts.length >= testConfigResource.ports) {
68
- for (let i = 0; i < testConfigResource.ports; i++) {
69
- portsToUse.push(openPorts[i][0]);
70
- this.ports[openPorts[i][0]] = false; // port is now closed
71
- }
72
- argz = JSON.stringify({
73
- scheduled: true,
74
- name: src,
75
- // ports: [3333],
76
- ports: portsToUse,
77
- fs: destFolder,
78
- browserWSEndpoint: this.browser.wsEndpoint(),
79
- });
80
- }
81
- else {
82
- this.queue.push(src);
83
- return;
84
- }
85
- }
86
- else {
87
- console.error("negative port makes no sense", src);
88
- process.exit(-1);
89
- }
90
- const builtfile = dest + ".mjs";
91
- await Promise.all(testConfig[3].map((sidecar) => {
92
- if (sidecar[1] === "web") {
93
- return this.launchWebSideCar(sidecar[0], (0, utils_js_1.destinationOfRuntime)(sidecar[0], "web", this.configs), sidecar);
94
- }
95
- if (sidecar[1] === "node") {
96
- return this.launchNodeSideCar(sidecar[0], (0, utils_js_1.destinationOfRuntime)(sidecar[0], "node", this.configs), sidecar);
97
- }
98
- }));
99
- this.server[builtfile] = await Promise.resolve().then(() => __importStar(require(`${builtfile}?cacheBust=${Date.now()}`))).then((module) => {
100
- return module.default.then((defaultModule) => {
101
- defaultModule
102
- .receiveTestResourceConfig(argz)
103
- .then((x) => {
104
- console.log("then", x);
105
- return x;
106
- })
107
- .catch((e) => {
108
- console.log("catch", e);
109
- });
110
- });
111
- });
112
- console.log("portsToUse", portsToUse);
113
- for (let i = 0; i <= portsToUse.length; i++) {
114
- if (portsToUse[i]) {
115
- this.ports[portsToUse[i]] = "true"; //port is open again
116
- }
117
- }
118
- };
119
- this.launchWebSideCar = async (src, dest, testConfig) => {
120
- const d = dest + ".mjs";
121
- console.log("launchWebSideCar", src, dest, d);
122
- const destFolder = dest.replace(".mjs", "");
123
- const webArgz = JSON.stringify({
124
- name: dest,
125
- ports: [].toString(),
126
- fs: destFolder,
127
- browserWSEndpoint: this.browser.wsEndpoint(),
128
- });
129
- const evaluation = `
130
- console.log("importing ${dest}.mjs");
131
- import('${dest}.mjs').then(async (x) => {
132
- console.log("imported", x.default);
133
- })`;
134
- const fileStreams2 = [];
135
- const doneFileStream2 = [];
136
- return new Promise((res, rej) => {
137
- this.browser
138
- .newPage()
139
- .then((page) => {
140
- page.on("console", (msg) => {
141
- console.log("web > ", msg.args(), msg.text());
142
- // for (let i = 0; i < msg._args.length; ++i)
143
- // console.log(`${i}: ${msg._args[i]}`);
144
- });
145
- page.exposeFunction("custom-screenshot", async (ssOpts, testName) => {
146
- console.log("main.ts browser custom-screenshot", testName);
147
- const p = ssOpts.path;
148
- const dir = path_1.default.dirname(p);
149
- fs_1.default.mkdirSync(dir, {
150
- recursive: true,
151
- });
152
- files[testName].add(ssOpts.path);
153
- const sPromise = page.screenshot(Object.assign(Object.assign({}, ssOpts), { path: p }));
154
- if (!screenshots[testName]) {
155
- screenshots[testName] = [];
156
- }
157
- screenshots[testName].push(sPromise);
158
- // sPromise.then(())
159
- await sPromise;
160
- return sPromise;
161
- // page.evaluate(`window["screenshot done"]`);
162
- });
163
- page.exposeFunction("writeFileSync", (fp, contents, testName) => {
164
- const dir = path_1.default.dirname(fp);
165
- fs_1.default.mkdirSync(dir, {
166
- recursive: true,
167
- });
168
- const p = new Promise(async (res, rej) => {
169
- fs_1.default.writeFileSync(fp, contents);
170
- res(fp);
171
- });
172
- doneFileStream2.push(p);
173
- if (!files[testName]) {
174
- files[testName] = new Set();
175
- }
176
- files[testName].add(fp);
177
- return p;
178
- });
179
- page.exposeFunction("existsSync", (fp, contents) => {
180
- return fs_1.default.existsSync(fp);
181
- });
182
- page.exposeFunction("mkdirSync", (fp) => {
183
- if (!fs_1.default.existsSync(fp)) {
184
- return fs_1.default.mkdirSync(fp, {
185
- recursive: true,
186
- });
187
- }
188
- return false;
189
- });
190
- page.exposeFunction("createWriteStream", (fp, testName) => {
191
- const f = fs_1.default.createWriteStream(fp);
192
- if (!files[testName]) {
193
- files[testName] = new Set();
194
- }
195
- files[testName].add(fp);
196
- const p = new Promise((res, rej) => {
197
- res(fp);
198
- });
199
- doneFileStream2.push(p);
200
- f.on("close", async () => {
201
- await p;
202
- });
203
- fileStreams2.push(f);
204
- return Object.assign(Object.assign({}, JSON.parse(JSON.stringify(f))), { uid: fileStreams2.length - 1 });
205
- });
206
- page.exposeFunction("write", async (uid, contents) => {
207
- return fileStreams2[uid].write(contents);
208
- });
209
- page.exposeFunction("end", async (uid) => {
210
- return fileStreams2[uid].end();
211
- });
212
- page.exposeFunction("customclose", (p, testName) => {
213
- fs_1.default.writeFileSync(p + "/manifest.json", JSON.stringify(Array.from(files[testName])));
214
- delete files[testName];
215
- Promise.all(screenshots[testName] || []).then(() => {
216
- delete screenshots[testName];
217
- page.close();
218
- });
219
- // globalThis["writeFileSync"](
220
- // p + "/manifest.json",
221
- // // files.entries()
222
- // JSON.stringify(Array.from(files[testName]))
223
- // );
224
- // console.log("closing doneFileStream2", doneFileStream2);
225
- // console.log("closing doneFileStream2", doneFileStream2);
226
- // Promise.all([...doneFileStream2, ...screenshots2]).then(() => {
227
- // page.close();
228
- // });
229
- // Promise.all(screenshots).then(() => {
230
- // page.close();
231
- // });
232
- // setTimeout(() => {
233
- // console.log("Delayed for 1 second.");
234
- // page.close();
235
- // }, 5000);
236
- // return page.close();
237
- });
238
- return page;
239
- })
240
- .then(async (page) => {
241
- page.on("console", (log) => console.debug(`Log from client: [${log.text()}] `));
242
- await page.goto(`file://${`${dest}.html`}`, {});
243
- res(page);
244
- // page.evaluate(evaluation).finally(() => {
245
- // console.log("evaluation failed.", dest);
246
- // });
247
- // return page;
248
- });
249
- });
250
- };
251
- // launchNodeSideCar = async (src: string, dest: string) => {};
252
- this.launchNodeSideCar = async (src, dest, testConfig) => {
253
- const d = dest + ".mjs";
254
- console.log("launchNodeSideCar", src, dest, d);
255
- const destFolder = dest.replace(".mjs", "");
256
- let argz = "";
257
- // const testConfig = this.configs.tests.find((t) => {
258
- // return t[0] === src;
259
- // });
260
- // if (!testConfig) {
261
- // console.error("missing test config");
262
- // process.exit(-1);
263
- // }
264
- const testConfigResource = testConfig[2];
265
- let portsToUse = [];
266
- if (testConfigResource.ports === 0) {
267
- argz = JSON.stringify({
268
- scheduled: true,
269
- name: src,
270
- ports: portsToUse,
271
- fs: destFolder,
272
- browserWSEndpoint: this.browser.wsEndpoint(),
273
- });
274
- }
275
- else if (testConfigResource.ports > 0) {
276
- const openPorts = Object.entries(this.ports).filter(([portnumber, portopen]) => portopen);
277
- console.log("openPorts", openPorts);
278
- if (openPorts.length >= testConfigResource.ports) {
279
- for (let i = 0; i < testConfigResource.ports; i++) {
280
- portsToUse.push(openPorts[i][0]);
281
- this.ports[openPorts[i][0]] = false; // port is now closed
282
- }
283
- argz = JSON.stringify({
284
- scheduled: true,
285
- name: src,
286
- // ports: [3333],
287
- ports: portsToUse,
288
- fs: ".",
289
- browserWSEndpoint: this.browser.wsEndpoint(),
290
- });
291
- }
292
- else {
293
- this.queue.push(src);
294
- return;
295
- }
296
- }
297
- else {
298
- console.error("negative port makes no sense", src);
299
- process.exit(-1);
300
- }
301
- const builtfile = dest + ".mjs";
302
- // console.log(
303
- // "node builtfile",
304
- // (await import(`${builtfile}?cacheBust=${Date.now()}`)).default
305
- // );
306
- this.server[builtfile] = await Promise.resolve().then(() => __importStar(require(`${builtfile}?cacheBust=${Date.now()}`))).then((module) => {
307
- return module.default.then((defaultModule) => {
308
- console.log("defaultModule", defaultModule);
309
- const s = new defaultModule();
310
- s.receiveTestResourceConfig(argz);
311
- // Object.create(defaultModule);
312
- // defaultModule
313
- // .receiveTestResourceConfig(argz)
314
- // .then((x) => {
315
- // console.log("then", x);
316
- // return x;
317
- // })
318
- // .catch((e) => {
319
- // console.log("catch", e);
320
- // });
321
- });
322
- });
323
- console.log("portsToUse", portsToUse);
324
- for (let i = 0; i <= portsToUse.length; i++) {
325
- if (portsToUse[i]) {
326
- this.ports[portsToUse[i]] = "true"; //port is open again
327
- }
328
- }
329
- };
330
- this.launchWeb = (t, dest, sidecars) => {
331
- console.log("launchWeb", t, dest);
332
- sidecars.map((sidecar) => {
333
- if (sidecar[1] === "node") {
334
- return this.launchNodeSideCar(sidecar[0], (0, utils_js_1.destinationOfRuntime)(sidecar[0], "node", this.configs), sidecar);
335
- }
336
- });
337
- const destFolder = dest.replace(".mjs", "");
338
- const webArgz = JSON.stringify({
339
- name: dest,
340
- ports: [].toString(),
341
- fs: destFolder,
342
- browserWSEndpoint: this.browser.wsEndpoint(),
343
- });
344
- const evaluation = `
345
- console.log("importing ${dest}.mjs");
346
- import('${dest}.mjs').then(async (x) => {
347
- console.log("imported", x.default);
348
- try {
349
- await (await x.default).receiveTestResourceConfig(${webArgz})
350
- } catch (e) {
351
- console.log("fail", e)
352
- }
353
- })`;
354
- const fileStreams2 = [];
355
- const doneFileStream2 = [];
356
- this.browser
357
- .newPage()
358
- .then((page) => {
359
- page.on("console", (msg) => {
360
- console.log("web > ", msg.args(), msg.text());
361
- // for (let i = 0; i < msg._args.length; ++i)
362
- // console.log(`${i}: ${msg._args[i]}`);
363
- });
364
- page.exposeFunction("customScreenShot", async (ssOpts, testName) => {
365
- console.log("main.ts browser custom-screenshot", testName);
366
- const p = ssOpts.path;
367
- const dir = path_1.default.dirname(p);
368
- fs_1.default.mkdirSync(dir, {
369
- recursive: true,
370
- });
371
- if (!files[testName]) {
372
- files[testName] = new Set();
373
- }
374
- files[testName].add(ssOpts.path);
375
- const sPromise = page.screenshot(Object.assign(Object.assign({}, ssOpts), { path: p }));
376
- if (!screenshots[testName]) {
377
- screenshots[testName] = [];
378
- }
379
- screenshots[testName].push(sPromise);
380
- // sPromise.then(())
381
- await sPromise;
382
- return sPromise;
383
- // page.evaluate(`window["screenshot done"]`);
384
- });
385
- page.exposeFunction("writeFileSync", (fp, contents, testName) => {
386
- const dir = path_1.default.dirname(fp);
387
- fs_1.default.mkdirSync(dir, {
388
- recursive: true,
389
- });
390
- const p = new Promise(async (res, rej) => {
391
- fs_1.default.writeFileSync(fp, contents);
392
- res(fp);
393
- });
394
- doneFileStream2.push(p);
395
- if (!files[testName]) {
396
- files[testName] = new Set();
397
- }
398
- files[testName].add(fp);
399
- return p;
400
- });
401
- page.exposeFunction("existsSync", (fp, contents) => {
402
- return fs_1.default.existsSync(fp);
403
- });
404
- page.exposeFunction("mkdirSync", (fp) => {
405
- if (!fs_1.default.existsSync(fp)) {
406
- return fs_1.default.mkdirSync(fp, {
407
- recursive: true,
408
- });
409
- }
410
- return false;
411
- });
412
- page.exposeFunction("createWriteStream", (fp, testName) => {
413
- const f = fs_1.default.createWriteStream(fp);
414
- if (!files[testName]) {
415
- files[testName] = new Set();
416
- }
417
- files[testName].add(fp);
418
- const p = new Promise((res, rej) => {
419
- res(fp);
420
- });
421
- doneFileStream2.push(p);
422
- f.on("close", async () => {
423
- await p;
424
- });
425
- fileStreams2.push(f);
426
- return Object.assign(Object.assign({}, JSON.parse(JSON.stringify(f))), { uid: fileStreams2.length - 1 });
427
- });
428
- page.exposeFunction("write", async (uid, contents) => {
429
- return fileStreams2[uid].write(contents);
430
- });
431
- page.exposeFunction("end", async (uid) => {
432
- return fileStreams2[uid].end();
433
- });
434
- page.exposeFunction("customclose", (p, testName) => {
435
- console.log("\t closing", p);
436
- fs_1.default.writeFileSync(p + "/manifest.json", JSON.stringify(Array.from(files[testName])));
437
- delete files[testName];
438
- Promise.all(screenshots[testName] || []).then(() => {
439
- delete screenshots[testName];
440
- page.close();
441
- });
442
- // globalThis["writeFileSync"](
443
- // p + "/manifest.json",
444
- // // files.entries()
445
- // JSON.stringify(Array.from(files[testName]))
446
- // );
447
- // console.log("closing doneFileStream2", doneFileStream2);
448
- // console.log("closing doneFileStream2", doneFileStream2);
449
- // Promise.all([...doneFileStream2, ...screenshots2]).then(() => {
450
- // page.close();
451
- // });
452
- // Promise.all(screenshots).then(() => {
453
- // page.close();
454
- // });
455
- // setTimeout(() => {
456
- // console.log("Delayed for 1 second.");
457
- // page.close();
458
- // }, 5000);
459
- // return page.close();
460
- });
461
- return page;
462
- })
463
- .then(async (page) => {
464
- page.on("console", (log) => console.debug(`Log from client: [${log.text()}] `));
465
- await page.goto(`file://${`${dest}.html`}`, {});
466
- page.evaluate(evaluation).finally(() => {
467
- console.log("evaluation failed.", dest);
468
- });
469
- return page;
470
- });
471
- };
472
- this.server = {};
473
- this.configs = configs;
474
- this.ports = {};
475
- this.configs.ports.forEach((element) => {
476
- this.ports[element] = "true"; // set ports as open
477
- });
478
- globalThis["mkdirSync"] = (fp) => {
479
- if (!fs_1.default.existsSync(fp)) {
480
- return fs_1.default.mkdirSync(fp, {
481
- recursive: true,
482
- });
483
- }
484
- return false;
485
- };
486
- globalThis["writeFileSync"] = (filepath, contents, testName) => {
487
- console.log("globalThis-writeFileSync", filepath);
488
- // Create directories if they don't exist
489
- const dir = path_1.default.dirname(filepath.split("/").slice(0, -1).join("/"));
490
- fs_1.default.mkdirSync(dir, {
491
- recursive: true,
492
- });
493
- if (!files[testName]) {
494
- files[testName] = new Set();
495
- }
496
- files[testName].add(filepath);
497
- return fs_1.default.writeFileSync(filepath, contents);
498
- };
499
- globalThis["createWriteStream"] = (filepath, testName) => {
500
- const f = fs_1.default.createWriteStream(filepath);
501
- fileStreams3.push(f);
502
- // files.add(filepath);
503
- if (!files[testName]) {
504
- files[testName] = new Set();
505
- }
506
- files[testName].add(filepath);
507
- return Object.assign(Object.assign({}, JSON.parse(JSON.stringify(f))), { uid: fileStreams3.length - 1 });
508
- };
509
- globalThis["write"] = (uid, contents) => {
510
- fileStreams3[uid].write(contents);
511
- };
512
- globalThis["end"] = (uid) => {
513
- fileStreams3[uid].end();
514
- };
515
- globalThis["customScreenShot"] = async (opts, page) => {
516
- // // fileStreams3[uid].write(contents);
517
- // // console.log("asd", opts.path.split("/").slice(0, -1).join("/"));
518
- // // const dir = path.dirname(opts.path.split("/").slice(0, -1).join("/"));
519
- // // console.log("dir", dir);
520
- // fs.mkdirSync(opts.path.split("/").slice(0, -1).join("/"), {
521
- // recursive: true,
522
- // });
523
- // return page.screenshot(opts);
524
- console.log("main.ts node custom-screenshot", page);
525
- const p = opts.path;
526
- const dir = path_1.default.dirname(p);
527
- fs_1.default.mkdirSync(dir, {
528
- recursive: true,
529
- });
530
- if (!files[opts.path]) {
531
- files[opts.path] = new Set();
532
- }
533
- files[opts.path].add(opts.path);
534
- const sPromise = page.screenshot(Object.assign(Object.assign({}, opts), { path: p }));
535
- if (!screenshots[opts.path]) {
536
- screenshots[opts.path] = [];
537
- }
538
- screenshots[opts.path].push(sPromise);
539
- await sPromise;
540
- return sPromise;
541
- };
542
- globalThis["customclose"] = (p, testName) => {
543
- if (!files[testName]) {
544
- files[testName] = new Set();
545
- }
546
- fs_1.default.writeFileSync(p + "/manifest.json", JSON.stringify(Array.from(files[testName])));
547
- delete files[testName];
548
- // globalThis["writeFileSync"](
549
- // p + "/manifest.json",
550
- // // files.entries()
551
- // JSON.stringify(Array.from(files[testName]))
552
- // );
553
- // fileStreams3[uid].end();
554
- };
555
- // page.exposeFunction("customclose", () => {
556
- // console.log("closing doneFileStream2", doneFileStream2);
557
- // // console.log("closing doneFileStream2", doneFileStream2);
558
- // Promise.all([...doneFileStream2, ...screenshots2]).then(() => {
559
- // page.close();
560
- // });
561
- // // page.close();
562
- // // Promise.all(screenshots).then(() => {
563
- // // page.close();
564
- // // });
565
- // // setTimeout(() => {
566
- // // console.log("Delayed for 1 second.");
567
- // // page.close();
568
- // // }, 5000);
569
- // // return page.close();
570
- // });
571
- }
572
- customScreenShot(opts) {
573
- throw new Error("Method not implemented.");
574
- }
575
- async startPuppeteer(options, destfolder) {
576
- this.browser = await puppeteer_core_1.default.launch(options);
577
- return this.browser;
578
- }
579
- end(accessObject) {
580
- throw new Error("Method not implemented.");
581
- }
582
- existsSync(destFolder) {
583
- return fs_1.default.existsSync(destFolder);
584
- }
585
- async mkdirSync(fp) {
586
- if (!fs_1.default.existsSync(fp)) {
587
- return fs_1.default.mkdirSync(fp, {
588
- recursive: true,
589
- });
590
- }
591
- return false;
592
- }
593
- writeFileSync(fp, contents) {
594
- fs_1.default.writeFileSync(fp, contents);
595
- }
596
- createWriteStream(filepath) {
597
- return fs_1.default.createWriteStream(filepath);
598
- }
599
- testArtiFactoryfileWriter(tLog, callback) {
600
- return (fPath, value) => {
601
- callback(new Promise((res, rej) => {
602
- tLog("testArtiFactory =>", fPath);
603
- const cleanPath = path_1.default.resolve(fPath);
604
- fPaths.push(cleanPath.replace(process.cwd(), ``));
605
- const targetDir = cleanPath.split("/").slice(0, -1).join("/");
606
- fs_1.default.mkdir(targetDir, { recursive: true }, async (error) => {
607
- if (error) {
608
- console.error(`❗️testArtiFactory failed`, targetDir, error);
609
- }
610
- fs_1.default.writeFileSync(path_1.default.resolve(targetDir.split("/").slice(0, -1).join("/"), "manifest"), fPaths.join(`\n`), {
611
- encoding: "utf-8",
612
- });
613
- if (Buffer.isBuffer(value)) {
614
- fs_1.default.writeFileSync(fPath, value, "binary");
615
- res();
616
- }
617
- else if (`string` === typeof value) {
618
- fs_1.default.writeFileSync(fPath, value.toString(), {
619
- encoding: "utf-8",
620
- });
621
- res();
622
- }
623
- else {
624
- /* @ts-ignore:next-line */
625
- const pipeStream = value;
626
- const myFile = fs_1.default.createWriteStream(fPath);
627
- pipeStream.pipe(myFile);
628
- pipeStream.on("close", () => {
629
- myFile.close();
630
- res();
631
- });
632
- }
633
- });
634
- }));
635
- };
636
- }
637
- write(accessObject, contents) {
638
- throw new Error("Method not implemented.");
639
- }
640
- }
641
- exports.PM_Main = PM_Main;