@jsenv/core 34.3.0 → 35.0.1

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 (74) hide show
  1. package/README.md +2 -9
  2. package/dist/js/ws.js +1 -145
  3. package/dist/{jsenv.js → jsenv_core.js} +1056 -3850
  4. package/package.json +8 -23
  5. package/src/build/build.js +2 -2
  6. package/src/dev/file_service.js +8 -8
  7. package/src/dev/start_dev_server.js +3 -3
  8. package/src/dev/user_agent.js +1 -1
  9. package/src/main.js +0 -23
  10. package/src/plugins/supervisor/jsenv_plugin_supervisor.js +1 -1
  11. package/src/plugins/transpilation/babel/require_babel_plugin.js +1 -1
  12. package/src/plugins/transpilation/js_module_fallback/convert_js_module_to_js_classic.js +1 -1
  13. package/dist/controllable_child_process.mjs +0 -129
  14. package/dist/controllable_worker_thread.mjs +0 -91
  15. package/dist/importmap_node_loader.mjs +0 -49
  16. package/dist/js/execute_using_dynamic_import.js +0 -850
  17. package/dist/js/resolveImport.js +0 -504
  18. package/dist/js/v8_coverage.js +0 -508
  19. package/dist/no_experimental_warnings.cjs +0 -8
  20. package/src/execute/execute.js +0 -111
  21. package/src/execute/run.js +0 -161
  22. package/src/execute/runtimes/browsers/chromium.js +0 -10
  23. package/src/execute/runtimes/browsers/firefox.js +0 -9
  24. package/src/execute/runtimes/browsers/from_playwright.js +0 -574
  25. package/src/execute/runtimes/browsers/middleware_istanbul.js +0 -65
  26. package/src/execute/runtimes/browsers/middleware_js_supervisor.js +0 -100
  27. package/src/execute/runtimes/browsers/webkit.js +0 -26
  28. package/src/execute/runtimes/node/child_exec_options.js +0 -166
  29. package/src/execute/runtimes/node/controllable_child_process.mjs +0 -135
  30. package/src/execute/runtimes/node/controllable_worker_thread.mjs +0 -103
  31. package/src/execute/runtimes/node/exec_options.js +0 -57
  32. package/src/execute/runtimes/node/execute_using_dynamic_import.js +0 -55
  33. package/src/execute/runtimes/node/exit_codes.js +0 -9
  34. package/src/execute/runtimes/node/importmap_node_loader.mjs +0 -51
  35. package/src/execute/runtimes/node/importmap_node_loader_file_url.js +0 -4
  36. package/src/execute/runtimes/node/kill_process_tree.js +0 -76
  37. package/src/execute/runtimes/node/no_experimental_warnings.cjs +0 -12
  38. package/src/execute/runtimes/node/no_experimental_warnings_file_url.js +0 -4
  39. package/src/execute/runtimes/node/node_child_process.js +0 -363
  40. package/src/execute/runtimes/node/node_execution_performance.js +0 -67
  41. package/src/execute/runtimes/node/node_worker_thread.js +0 -295
  42. package/src/execute/runtimes/node/profiler_v8_coverage.js +0 -56
  43. package/src/execute/runtimes/readme.md +0 -13
  44. package/src/execute/web_server_param.js +0 -74
  45. package/src/test/coverage/babel_plugin_instrument.js +0 -48
  46. package/src/test/coverage/coverage_reporter_html_directory.js +0 -32
  47. package/src/test/coverage/coverage_reporter_json_file.js +0 -17
  48. package/src/test/coverage/coverage_reporter_text_log.js +0 -19
  49. package/src/test/coverage/empty_coverage_factory.js +0 -52
  50. package/src/test/coverage/file_by_file_coverage.js +0 -25
  51. package/src/test/coverage/istanbul_coverage_composition.js +0 -28
  52. package/src/test/coverage/istanbul_coverage_map_from_coverage.js +0 -16
  53. package/src/test/coverage/list_files_not_covered.js +0 -15
  54. package/src/test/coverage/missing_coverage.js +0 -41
  55. package/src/test/coverage/report_to_coverage.js +0 -198
  56. package/src/test/coverage/v8_and_istanbul.js +0 -37
  57. package/src/test/coverage/v8_coverage.js +0 -26
  58. package/src/test/coverage/v8_coverage_composition.js +0 -24
  59. package/src/test/coverage/v8_coverage_node_directory.js +0 -85
  60. package/src/test/coverage/v8_coverage_to_istanbul.js +0 -99
  61. package/src/test/execute_steps.js +0 -425
  62. package/src/test/execute_test_plan.js +0 -372
  63. package/src/test/execution_colors.js +0 -10
  64. package/src/test/execution_steps.js +0 -65
  65. package/src/test/gc.js +0 -9
  66. package/src/test/logs_file_execution.js +0 -427
  67. package/src/test/logs_file_execution.test.mjs +0 -41
  68. package/src/test/readme.md +0 -3
  69. /package/src/{basic_fetch.js → helpers/basic_fetch.js} +0 -0
  70. /package/src/{lookup_package_directory.js → helpers/lookup_package_directory.js} +0 -0
  71. /package/src/{ping_server.js → helpers/ping_server.js} +0 -0
  72. /package/src/{require_from_jsenv.js → helpers/require_from_jsenv.js} +0 -0
  73. /package/src/{watch_source_files.js → helpers/watch_source_files.js} +0 -0
  74. /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