@jsenv/core 34.2.2 → 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.
- package/README.md +1 -1
- package/dist/html/explorer.html +5 -4
- package/dist/{jsenv.js → jsenv_core.js} +840 -3914
- package/package.json +7 -21
- package/src/build/build.js +34 -16
- package/src/build/version_mappings_injection.js +20 -27
- package/src/dev/file_service.js +9 -9
- package/src/dev/start_dev_server.js +3 -3
- package/src/dev/user_agent.js +1 -1
- package/src/kitchen/kitchen.js +5 -3
- package/src/main.js +0 -23
- package/src/plugins/autoreload/jsenv_plugin_autoreload_client.js +2 -2
- package/src/plugins/importmap/jsenv_plugin_importmap.js +6 -2
- package/src/plugins/{inline/jsenv_plugin_html_inline_content.js → inline_content_analysis/jsenv_plugin_html_inline_content_analysis.js} +12 -6
- package/src/plugins/{inline/jsenv_plugin_inline.js → inline_content_analysis/jsenv_plugin_inline_content_analysis.js} +8 -10
- package/src/plugins/{inline/jsenv_plugin_js_inline_content.js → inline_content_analysis/jsenv_plugin_js_inline_content_analysis.js} +4 -2
- package/src/plugins/inlining/jsenv_plugin_inlining.js +22 -0
- package/src/plugins/{inline/jsenv_plugin_inline_query_param.js → inlining/jsenv_plugin_inlining_as_data_url.js} +16 -9
- package/src/plugins/inlining/jsenv_plugin_inlining_into_html.js +149 -0
- package/src/plugins/plugins.js +5 -2
- package/src/plugins/ribbon/jsenv_plugin_ribbon.js +11 -10
- package/src/plugins/server_events/jsenv_plugin_server_events_client_injection.js +2 -2
- package/src/plugins/supervisor/html_supervisor_injection.js +23 -25
- package/src/plugins/supervisor/jsenv_plugin_supervisor.js +1 -1
- package/src/plugins/transpilation/babel/require_babel_plugin.js +1 -1
- package/src/plugins/transpilation/import_assertions/jsenv_plugin_import_assertions.js +20 -5
- package/src/plugins/transpilation/js_module_fallback/convert_js_module_to_js_classic.js +1 -1
- package/src/plugins/transpilation/js_module_fallback/jsenv_plugin_js_module_fallback_inside_html.js +2 -2
- package/src/plugins/transpilation/js_module_fallback/jsenv_plugin_js_module_fallback_on_workers.js +3 -3
- package/src/plugins/url_analysis/html/html_urls.js +1 -1
- package/dist/controllable_child_process.mjs +0 -129
- package/dist/controllable_worker_thread.mjs +0 -91
- package/dist/js/execute_using_dynamic_import.js +0 -850
- package/dist/js/v8_coverage.js +0 -508
- package/src/execute/execute.js +0 -109
- package/src/execute/run.js +0 -161
- package/src/execute/runtimes/browsers/chromium.js +0 -10
- package/src/execute/runtimes/browsers/firefox.js +0 -9
- package/src/execute/runtimes/browsers/from_playwright.js +0 -574
- package/src/execute/runtimes/browsers/middleware_istanbul.js +0 -65
- package/src/execute/runtimes/browsers/middleware_js_supervisor.js +0 -100
- package/src/execute/runtimes/browsers/webkit.js +0 -26
- package/src/execute/runtimes/node/child_exec_options.js +0 -166
- package/src/execute/runtimes/node/controllable_child_process.mjs +0 -135
- package/src/execute/runtimes/node/controllable_worker_thread.mjs +0 -103
- package/src/execute/runtimes/node/exec_options.js +0 -44
- package/src/execute/runtimes/node/execute_using_dynamic_import.js +0 -55
- package/src/execute/runtimes/node/exit_codes.js +0 -9
- package/src/execute/runtimes/node/kill_process_tree.js +0 -76
- package/src/execute/runtimes/node/node_child_process.js +0 -348
- package/src/execute/runtimes/node/node_execution_performance.js +0 -67
- package/src/execute/runtimes/node/node_worker_thread.js +0 -282
- package/src/execute/runtimes/node/profiler_v8_coverage.js +0 -56
- package/src/execute/runtimes/readme.md +0 -13
- package/src/execute/web_server_param.js +0 -74
- package/src/test/coverage/babel_plugin_instrument.js +0 -48
- package/src/test/coverage/coverage_reporter_html_directory.js +0 -32
- package/src/test/coverage/coverage_reporter_json_file.js +0 -17
- package/src/test/coverage/coverage_reporter_text_log.js +0 -19
- package/src/test/coverage/empty_coverage_factory.js +0 -52
- package/src/test/coverage/file_by_file_coverage.js +0 -25
- package/src/test/coverage/istanbul_coverage_composition.js +0 -28
- package/src/test/coverage/istanbul_coverage_map_from_coverage.js +0 -16
- package/src/test/coverage/list_files_not_covered.js +0 -15
- package/src/test/coverage/missing_coverage.js +0 -41
- package/src/test/coverage/report_to_coverage.js +0 -198
- package/src/test/coverage/v8_and_istanbul.js +0 -37
- package/src/test/coverage/v8_coverage.js +0 -26
- package/src/test/coverage/v8_coverage_composition.js +0 -24
- package/src/test/coverage/v8_coverage_node_directory.js +0 -85
- package/src/test/coverage/v8_coverage_to_istanbul.js +0 -99
- package/src/test/execute_steps.js +0 -425
- package/src/test/execute_test_plan.js +0 -372
- package/src/test/execution_colors.js +0 -10
- package/src/test/execution_steps.js +0 -65
- package/src/test/gc.js +0 -9
- package/src/test/logs_file_execution.js +0 -427
- package/src/test/logs_file_execution.test.mjs +0 -41
- package/src/test/readme.md +0 -3
- /package/src/{basic_fetch.js → helpers/basic_fetch.js} +0 -0
- /package/src/{lookup_package_directory.js → helpers/lookup_package_directory.js} +0 -0
- /package/src/{ping_server.js → helpers/ping_server.js} +0 -0
- /package/src/{require_from_jsenv.js → helpers/require_from_jsenv.js} +0 -0
- /package/src/{watch_source_files.js → helpers/watch_source_files.js} +0 -0
- /package/src/{web_url_converter.js → helpers/web_url_converter.js} +0 -0
- /package/src/plugins/{inline → inline_content_analysis}/client/inline_content.js +0 -0
- /package/src/plugins/{inline → inline_content_analysis}/jsenv_plugin_data_urls.js +0 -0
package/src/execute/run.js
DELETED
|
@@ -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
|