@jsenv/core 34.3.0 → 35.0.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 (73) hide show
  1. package/README.md +1 -1
  2. package/dist/{jsenv.js → jsenv_core.js} +1054 -3850
  3. package/package.json +6 -21
  4. package/src/build/build.js +2 -2
  5. package/src/dev/file_service.js +8 -8
  6. package/src/dev/start_dev_server.js +3 -3
  7. package/src/dev/user_agent.js +1 -1
  8. package/src/main.js +0 -23
  9. package/src/plugins/supervisor/jsenv_plugin_supervisor.js +1 -1
  10. package/src/plugins/transpilation/babel/require_babel_plugin.js +1 -1
  11. package/src/plugins/transpilation/js_module_fallback/convert_js_module_to_js_classic.js +1 -1
  12. package/dist/controllable_child_process.mjs +0 -129
  13. package/dist/controllable_worker_thread.mjs +0 -91
  14. package/dist/importmap_node_loader.mjs +0 -49
  15. package/dist/js/execute_using_dynamic_import.js +0 -850
  16. package/dist/js/resolveImport.js +0 -504
  17. package/dist/js/v8_coverage.js +0 -508
  18. package/dist/no_experimental_warnings.cjs +0 -8
  19. package/src/execute/execute.js +0 -111
  20. package/src/execute/run.js +0 -161
  21. package/src/execute/runtimes/browsers/chromium.js +0 -10
  22. package/src/execute/runtimes/browsers/firefox.js +0 -9
  23. package/src/execute/runtimes/browsers/from_playwright.js +0 -574
  24. package/src/execute/runtimes/browsers/middleware_istanbul.js +0 -65
  25. package/src/execute/runtimes/browsers/middleware_js_supervisor.js +0 -100
  26. package/src/execute/runtimes/browsers/webkit.js +0 -26
  27. package/src/execute/runtimes/node/child_exec_options.js +0 -166
  28. package/src/execute/runtimes/node/controllable_child_process.mjs +0 -135
  29. package/src/execute/runtimes/node/controllable_worker_thread.mjs +0 -103
  30. package/src/execute/runtimes/node/exec_options.js +0 -57
  31. package/src/execute/runtimes/node/execute_using_dynamic_import.js +0 -55
  32. package/src/execute/runtimes/node/exit_codes.js +0 -9
  33. package/src/execute/runtimes/node/importmap_node_loader.mjs +0 -51
  34. package/src/execute/runtimes/node/importmap_node_loader_file_url.js +0 -4
  35. package/src/execute/runtimes/node/kill_process_tree.js +0 -76
  36. package/src/execute/runtimes/node/no_experimental_warnings.cjs +0 -12
  37. package/src/execute/runtimes/node/no_experimental_warnings_file_url.js +0 -4
  38. package/src/execute/runtimes/node/node_child_process.js +0 -363
  39. package/src/execute/runtimes/node/node_execution_performance.js +0 -67
  40. package/src/execute/runtimes/node/node_worker_thread.js +0 -295
  41. package/src/execute/runtimes/node/profiler_v8_coverage.js +0 -56
  42. package/src/execute/runtimes/readme.md +0 -13
  43. package/src/execute/web_server_param.js +0 -74
  44. package/src/test/coverage/babel_plugin_instrument.js +0 -48
  45. package/src/test/coverage/coverage_reporter_html_directory.js +0 -32
  46. package/src/test/coverage/coverage_reporter_json_file.js +0 -17
  47. package/src/test/coverage/coverage_reporter_text_log.js +0 -19
  48. package/src/test/coverage/empty_coverage_factory.js +0 -52
  49. package/src/test/coverage/file_by_file_coverage.js +0 -25
  50. package/src/test/coverage/istanbul_coverage_composition.js +0 -28
  51. package/src/test/coverage/istanbul_coverage_map_from_coverage.js +0 -16
  52. package/src/test/coverage/list_files_not_covered.js +0 -15
  53. package/src/test/coverage/missing_coverage.js +0 -41
  54. package/src/test/coverage/report_to_coverage.js +0 -198
  55. package/src/test/coverage/v8_and_istanbul.js +0 -37
  56. package/src/test/coverage/v8_coverage.js +0 -26
  57. package/src/test/coverage/v8_coverage_composition.js +0 -24
  58. package/src/test/coverage/v8_coverage_node_directory.js +0 -85
  59. package/src/test/coverage/v8_coverage_to_istanbul.js +0 -99
  60. package/src/test/execute_steps.js +0 -425
  61. package/src/test/execute_test_plan.js +0 -372
  62. package/src/test/execution_colors.js +0 -10
  63. package/src/test/execution_steps.js +0 -65
  64. package/src/test/gc.js +0 -9
  65. package/src/test/logs_file_execution.js +0 -427
  66. package/src/test/logs_file_execution.test.mjs +0 -41
  67. package/src/test/readme.md +0 -3
  68. /package/src/{basic_fetch.js → helpers/basic_fetch.js} +0 -0
  69. /package/src/{lookup_package_directory.js → helpers/lookup_package_directory.js} +0 -0
  70. /package/src/{ping_server.js → helpers/ping_server.js} +0 -0
  71. /package/src/{require_from_jsenv.js → helpers/require_from_jsenv.js} +0 -0
  72. /package/src/{watch_source_files.js → helpers/watch_source_files.js} +0 -0
  73. /package/src/{web_url_converter.js → helpers/web_url_converter.js} +0 -0
@@ -1,161 +0,0 @@
1
- /*
2
- * Export a function capable to run a file on a runtime.
3
- *
4
- * - Used internally by "executeTestPlan" part of the documented API
5
- * - Used internally by "execute" an advanced API not documented
6
- * - logs generated during file execution can be collected
7
- * - logs generated during file execution can be mirrored (re-logged to the console)
8
- * - File is given allocatedMs to complete
9
- * - Errors are collected
10
- * - File execution result is returned, it contains status/errors/namespace/consoleCalls
11
- */
12
-
13
- import { createId } from "@paralleldrive/cuid2"
14
- import { Abort, raceCallbacks } from "@jsenv/abort"
15
- import { ensureParentDirectories } from "@jsenv/filesystem"
16
-
17
- export const run = async ({
18
- signal = new AbortController().signal,
19
- logger,
20
- allocatedMs,
21
- keepRunning = false,
22
- mirrorConsole = false,
23
- collectConsole = false,
24
- coverageEnabled = false,
25
- coverageTempDirectoryUrl,
26
- collectPerformance = false,
27
-
28
- runtime,
29
- runtimeParams,
30
- }) => {
31
- const result = {
32
- status: "pending",
33
- errors: [],
34
- namespace: null,
35
- }
36
- const callbacks = []
37
-
38
- const onConsoleRef = { current: () => {} }
39
- const stopSignal = { notify: () => {} }
40
- const runtimeLabel = `${runtime.name}/${runtime.version}`
41
-
42
- const runOperation = Abort.startOperation()
43
- runOperation.addAbortSignal(signal)
44
- let timeoutAbortSource
45
- if (
46
- // ideally we would rather log than the timeout is ignored
47
- // when keepRunning is true
48
- !keepRunning &&
49
- typeof allocatedMs === "number" &&
50
- allocatedMs !== Infinity
51
- ) {
52
- timeoutAbortSource = runOperation.timeout(allocatedMs)
53
- }
54
- const consoleCalls = []
55
- onConsoleRef.current = ({ type, text }) => {
56
- if (mirrorConsole) {
57
- if (type === "error") {
58
- process.stderr.write(text)
59
- } else {
60
- process.stdout.write(text)
61
- }
62
- }
63
- if (collectConsole) {
64
- consoleCalls.push({ type, text })
65
- }
66
- }
67
- if (collectConsole) {
68
- result.consoleCalls = consoleCalls
69
- }
70
-
71
- // we do not keep coverage in memory, it can grow very big
72
- // instead we store it on the filesystem
73
- // and they can be read later at "coverageFileUrl"
74
- let coverageFileUrl
75
- if (coverageEnabled) {
76
- coverageFileUrl = new URL(
77
- `./${runtime.name}/${createId()}.json`,
78
- coverageTempDirectoryUrl,
79
- ).href
80
- await ensureParentDirectories(coverageFileUrl)
81
- if (coverageEnabled) {
82
- result.coverageFileUrl = coverageFileUrl
83
- // written within the child_process/worker_thread or during runtime.run()
84
- // for browsers
85
- // (because it takes time to serialize and transfer the coverage object)
86
- }
87
- }
88
-
89
- const startMs = Date.now()
90
- callbacks.push(() => {
91
- result.duration = Date.now() - startMs
92
- })
93
-
94
- try {
95
- logger.debug(`run() ${runtimeLabel}`)
96
- runOperation.throwIfAborted()
97
- const winnerPromise = new Promise((resolve) => {
98
- raceCallbacks(
99
- {
100
- aborted: (cb) => {
101
- runOperation.signal.addEventListener("abort", cb)
102
- return () => {
103
- runOperation.signal.removeEventListener("abort", cb)
104
- }
105
- },
106
- runned: async (cb) => {
107
- try {
108
- const runResult = await runtime.run({
109
- signal: runOperation.signal,
110
- logger,
111
- ...runtimeParams,
112
- collectConsole,
113
- collectPerformance,
114
- coverageFileUrl,
115
- keepRunning,
116
- stopSignal,
117
- onConsole: (log) => onConsoleRef.current(log),
118
- })
119
- cb(runResult)
120
- } catch (e) {
121
- cb({
122
- status: "failed",
123
- errors: [e],
124
- })
125
- }
126
- },
127
- },
128
- resolve,
129
- )
130
- })
131
- const winner = await winnerPromise
132
- if (winner.name === "aborted") {
133
- runOperation.throwIfAborted()
134
- }
135
- const { status, namespace, errors, performance } = winner.data
136
- result.status = status
137
- result.errors.push(...errors)
138
- result.namespace = namespace
139
- if (collectPerformance) {
140
- result.performance = performance
141
- }
142
- } catch (e) {
143
- if (Abort.isAbortError(e)) {
144
- if (timeoutAbortSource && timeoutAbortSource.signal.aborted) {
145
- result.status = "timedout"
146
- } else {
147
- result.status = "aborted"
148
- }
149
- } else {
150
- result.status = "failed"
151
- result.errors.push(e)
152
- }
153
- } finally {
154
- await runOperation.end()
155
- }
156
-
157
- callbacks.forEach((callback) => {
158
- callback()
159
- })
160
- return result
161
- }
@@ -1,10 +0,0 @@
1
- import { createRuntimeFromPlaywright } from "./from_playwright.js"
2
-
3
- export const chromium = createRuntimeFromPlaywright({
4
- browserName: "chromium",
5
- // browserVersion will be set by "browser._initializer.version"
6
- // see also https://github.com/microsoft/playwright/releases
7
- browserVersion: "unset",
8
- coveragePlaywrightAPIAvailable: true,
9
- })
10
- export const chromiumIsolatedTab = chromium.isolatedTab
@@ -1,9 +0,0 @@
1
- import { createRuntimeFromPlaywright } from "./from_playwright.js"
2
-
3
- export const firefox = createRuntimeFromPlaywright({
4
- browserName: "firefox",
5
- // browserVersion will be set by "browser._initializer.version"
6
- // see also https://github.com/microsoft/playwright/releases
7
- browserVersion: "unset",
8
- })
9
- export const firefoxIsolatedTab = firefox.isolatedTab