@jsenv/core 25.3.0 → 25.4.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/dist/browser_runtime/asset-manifest.json +2 -2
- package/dist/browser_runtime/{browser_runtime_91c5a3b8.js → browser_runtime_0e3396a1.js} +15 -16
- package/dist/browser_runtime/{browser_runtime_91c5a3b8.js.map → browser_runtime_0e3396a1.js.map} +13 -13
- package/dist/build_manifest.js +5 -5
- package/dist/compile_proxy/asset-manifest.json +2 -2
- package/dist/compile_proxy/compile_proxy.html__inline__20_2334a374.js.map +342 -0
- package/dist/compile_proxy/{compile_proxy_8dfaee51.html → compile_proxy_9f737eaf.html} +357 -398
- package/dist/redirector/asset-manifest.json +2 -2
- package/dist/redirector/redirector.html__inline__12_009c47c7.js.map +348 -0
- package/dist/redirector/{redirector_3e9a97b9.html → redirector_96f74871.html} +378 -421
- package/dist/toolbar/asset-manifest.json +2 -2
- package/dist/toolbar/{toolbar.main_6c1b3d82.js.map → toolbar.main_86335f90.js.map} +82 -115
- package/dist/toolbar/{toolbar_361afb84.html → toolbar_d3a918a4.html} +487 -508
- package/dist/toolbar_injector/asset-manifest.json +2 -2
- package/dist/toolbar_injector/toolbar_injector_978bbd14.js +267 -0
- package/dist/toolbar_injector/toolbar_injector_978bbd14.js.map +119 -0
- package/package.json +12 -11
- package/src/buildProject.js +31 -26
- package/src/dev_server.js +76 -87
- package/src/execute.js +3 -8
- package/src/internal/browser_launcher/{browser_runtime_report.js → browser_runtime_profile.js} +21 -15
- package/src/internal/browser_launcher/executeHtmlFile.js +22 -14
- package/src/internal/browser_launcher/from_playwright.js +6 -4
- package/src/internal/browser_runtime/browser_runtime.js +12 -14
- package/src/internal/browser_runtime/createBrowserRuntime.js +7 -6
- package/src/internal/browser_utils/fetchAndEvalUsingFetch.js +1 -1
- package/src/internal/browser_utils/fetchJson.js +1 -1
- package/src/internal/browser_utils/{fetch-browser.js → fetch_browser.js} +0 -2
- package/src/internal/building/buildUsingRollup.js +41 -57
- package/src/internal/building/rollup_plugin_jsenv.js +28 -8
- package/src/internal/compiling/babel_parse_error.js +9 -0
- package/src/internal/{babel_plugin_transform_import_meta.js → compiling/babel_plugin_transform_import_meta.js} +58 -9
- package/src/internal/compiling/compileFile.js +2 -2
- package/src/internal/compiling/compileHtml.js +1 -1
- package/src/internal/compiling/createCompiledFileService.js +25 -74
- package/src/internal/compiling/js-compilation-service/transformJs.js +153 -23
- package/src/internal/compiling/jsenvCompilerForHtml.js +29 -32
- package/src/internal/compiling/jsenvCompilerForImportmap.js +2 -2
- package/src/internal/compiling/jsenvCompilerForJavaScript.js +2 -4
- package/src/internal/compiling/jsenv_directory/comparison_utils.js +24 -0
- package/src/internal/compiling/{compile-directory/compile-asset.js → jsenv_directory/compile_asset.js} +0 -0
- package/src/internal/compiling/jsenv_directory/compile_context.js +68 -0
- package/src/internal/compiling/jsenv_directory/compile_profile.js +218 -0
- package/src/internal/compiling/{compile-directory/createLockRegistry.js → jsenv_directory/file_lock_registry.js} +0 -0
- package/src/internal/compiling/{compile-directory/createLockRegistry.test.js → jsenv_directory/file_lock_registry.test.js} +2 -1
- package/src/internal/compiling/{compile-directory → jsenv_directory}/fs-optimized-for-cache.js +0 -0
- package/src/internal/compiling/{compile-directory → jsenv_directory}/getOrGenerateCompiledFile.js +2 -2
- package/src/internal/compiling/jsenv_directory/jsenv_directory.js +174 -0
- package/src/internal/compiling/{compile-directory → jsenv_directory}/updateMeta.js +1 -1
- package/src/internal/compiling/{compile-directory → jsenv_directory}/validateCache.js +0 -0
- package/src/internal/compiling/sse_service/sse_service.js +369 -0
- package/src/internal/compiling/startCompileServer.js +156 -804
- package/src/internal/compiling/transformResultToCompilationResult.js +2 -2
- package/src/internal/dev_server/exploring/exploring.js +10 -8
- package/src/internal/dev_server/toolbar/compilation/toolbar.compilation.js +85 -78
- package/src/internal/dev_server/toolbar/settings/toolbar.settings.js +13 -0
- package/src/internal/dev_server/toolbar/toolbar.html +40 -16
- package/src/internal/dev_server/toolbar/toolbar.injector.js +11 -17
- package/src/internal/dev_server/toolbar/toolbar.main.js +6 -6
- package/src/internal/executing/executeConcurrently.js +1 -1
- package/src/internal/executing/executePlan.js +2 -3
- package/src/internal/{generateGroupMap → features}/babel_plugins_compatibility.js +8 -8
- package/src/internal/features/browser_feature_detection/browser_feature_detect_dynamic_import.js +20 -0
- package/src/internal/features/browser_feature_detection/browser_feature_detect_import_assertions_css.js +23 -0
- package/src/internal/features/browser_feature_detection/browser_feature_detect_import_assertions_json.js +25 -0
- package/src/internal/features/browser_feature_detection/browser_feature_detect_importmap.js +37 -0
- package/src/internal/features/browser_feature_detection/browser_feature_detect_new_stylesheet.js +9 -0
- package/src/internal/features/browser_feature_detection/browser_feature_detect_top_level_await.js +14 -0
- package/src/internal/features/browser_feature_detection/browser_feature_detection.js +85 -0
- package/src/internal/{browser_feature_detection → features/browser_feature_detection}/compile_proxy.html +1 -1
- package/src/internal/features/browser_feature_detection/execute_with_script_module.js +24 -0
- package/src/internal/features/features_compat_from_runtime.js +38 -0
- package/src/internal/features/features_compat_from_runtime_support.js +31 -0
- package/src/internal/{generateGroupMap → features}/features_compatibility.js +3 -3
- package/src/internal/{node_feature_detection → features/node_feature_detection}/feature_detect_dynamic_import.mjs +0 -0
- package/src/internal/{node_feature_detection → features/node_feature_detection}/feature_detect_top_level_await.mjs +0 -0
- package/src/internal/{node_feature_detection/nodeSupportsDynamicImport.js → features/node_feature_detection/node_feature_detect_dynamic_import.js} +0 -0
- package/src/internal/{node_feature_detection/nodeSupportsTopLevelAwait.js → features/node_feature_detection/node_feature_detect_top_level_await.js} +0 -0
- package/src/internal/features/node_feature_detection/node_feature_detection.js +66 -0
- package/src/internal/node_launcher/createControllableNodeProcess.js +4 -3
- package/src/internal/node_launcher/node_runtime_report.js +15 -9
- package/src/internal/node_runtime/fetchSource.js +2 -4
- package/src/internal/node_runtime/node_execution_systemjs.js +2 -5
- package/src/internal/{dev_server/redirector → redirector}/redirector.html +8 -18
- package/src/internal/{generateGroupMap/jsenvRuntimeSupport.js → runtime_support/jsenv_runtime_support.js} +0 -0
- package/src/internal/{generateGroupMap → runtime_support}/runtime_support.js +0 -0
- package/src/internal/url_conversion.js +12 -17
- package/src/launchNode.js +29 -41
- package/dist/compile_proxy/compile_proxy.html__inline__20_809f35f7.js.map +0 -392
- package/dist/redirector/redirector.html__inline__15_e391410e.js.map +0 -397
- package/dist/toolbar_injector/toolbar_injector_fac1e995.js +0 -973
- package/dist/toolbar_injector/toolbar_injector_fac1e995.js.map +0 -294
- package/src/internal/CONSTANTS.js +0 -11
- package/src/internal/browser_feature_detection/browser_feature_detection.js +0 -274
- package/src/internal/compiling/js-compilation-service/jsenvTransform.js +0 -242
- package/src/internal/generateGroupMap/generateGroupMap.js +0 -65
- package/src/internal/generateGroupMap/one_runtime_compat.js +0 -38
- package/src/internal/generateGroupMap/runtime_compat.js +0 -34
- package/src/internal/generateGroupMap/runtime_compat_composition.js +0 -76
- package/src/internal/generateGroupMap/shake_babel_plugin_map.js +0 -21
- package/src/internal/node_feature_detection/node_feature_detection.js +0 -117
- package/src/internal/node_runtime/detectNode.js +0 -3
- package/src/internal/runtime/computeCompileIdFromGroupId.js +0 -30
- package/src/internal/runtime/resolveGroup.js +0 -13
- package/src/internal/runtime/resolveRuntimeGroup.js +0 -11
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"assets/jsenv-logo.svg": "assets/jsenv-logo_188b9ca6.svg",
|
|
3
|
-
"toolbar_injector.js": "
|
|
4
|
-
"toolbar_injector.js.map": "
|
|
3
|
+
"toolbar_injector.js": "toolbar_injector_978bbd14.js",
|
|
4
|
+
"toolbar_injector.js.map": "toolbar_injector_978bbd14.js.map"
|
|
5
5
|
}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
(function () {
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var nativeTypeOf = function nativeTypeOf(obj) {
|
|
5
|
+
return typeof obj;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
var customTypeOf = function customTypeOf(obj) {
|
|
9
|
+
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? nativeTypeOf : customTypeOf;
|
|
13
|
+
|
|
14
|
+
var setStyles = function setStyles(element, styles) {
|
|
15
|
+
var elementStyle = element.style;
|
|
16
|
+
var restoreStyles = Object.keys(styles).map(function (styleName) {
|
|
17
|
+
var restore;
|
|
18
|
+
|
|
19
|
+
if (styleName in elementStyle) {
|
|
20
|
+
var currentStyle = elementStyle[styleName];
|
|
21
|
+
|
|
22
|
+
restore = function restore() {
|
|
23
|
+
elementStyle[styleName] = currentStyle;
|
|
24
|
+
};
|
|
25
|
+
} else {
|
|
26
|
+
restore = function restore() {
|
|
27
|
+
delete elementStyle[styleName];
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
elementStyle[styleName] = styles[styleName];
|
|
32
|
+
return restore;
|
|
33
|
+
});
|
|
34
|
+
return function () {
|
|
35
|
+
restoreStyles.forEach(function (restore) {
|
|
36
|
+
return restore();
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
var setAttributes = function setAttributes(element, attributes) {
|
|
41
|
+
Object.keys(attributes).forEach(function (name) {
|
|
42
|
+
element.setAttribute(name, attributes[name]);
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
function _await(value, then, direct) {
|
|
47
|
+
if (direct) {
|
|
48
|
+
return then ? then(value) : value;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (!value || !value.then) {
|
|
52
|
+
value = Promise.resolve(value);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return then ? value.then(then) : value;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
var TOOLBAR_BUILD_RELATIVE_URL = "dist/toolbar/toolbar_d3a918a4.html";
|
|
59
|
+
|
|
60
|
+
function _async(f) {
|
|
61
|
+
return function () {
|
|
62
|
+
for (var args = [], i = 0; i < arguments.length; i++) {
|
|
63
|
+
args[i] = arguments[i];
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
try {
|
|
67
|
+
return Promise.resolve(f.apply(this, args));
|
|
68
|
+
} catch (e) {
|
|
69
|
+
return Promise.reject(e);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
var jsenvLogoSvgUrl = new URL("assets/jsenv-logo_188b9ca6.svg", document.currentScript && document.currentScript.src || document.baseURI);
|
|
75
|
+
|
|
76
|
+
var injectToolbar = _async(function () {
|
|
77
|
+
return _await(new Promise(function (resolve) {
|
|
78
|
+
if (window.requestIdleCallback) {
|
|
79
|
+
window.requestIdleCallback(resolve, {
|
|
80
|
+
timeout: 400
|
|
81
|
+
});
|
|
82
|
+
} else {
|
|
83
|
+
window.requestAnimationFrame(resolve);
|
|
84
|
+
}
|
|
85
|
+
}), function () {
|
|
86
|
+
var placeholder = getToolbarPlaceholder();
|
|
87
|
+
var iframe = document.createElement("iframe");
|
|
88
|
+
setAttributes(iframe, {
|
|
89
|
+
tabindex: -1,
|
|
90
|
+
// sandbox: "allow-forms allow-modals allow-pointer-lock allow-popups allow-presentation allow-same-origin allow-scripts allow-top-navigation-by-user-activation",
|
|
91
|
+
// allow: "accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; microphone; midi; payment; vr",
|
|
92
|
+
allowtransparency: true
|
|
93
|
+
});
|
|
94
|
+
setStyles(iframe, {
|
|
95
|
+
"position": "fixed",
|
|
96
|
+
"zIndex": 1000,
|
|
97
|
+
"bottom": 0,
|
|
98
|
+
"left": 0,
|
|
99
|
+
"width": "100%",
|
|
100
|
+
"height": 0,
|
|
101
|
+
|
|
102
|
+
/* ensure toolbar children are not focusable when hidden */
|
|
103
|
+
"visibility": "hidden",
|
|
104
|
+
"transition-duration": "300ms",
|
|
105
|
+
"transition-property": "height, visibility",
|
|
106
|
+
"border": "none"
|
|
107
|
+
});
|
|
108
|
+
var iframeLoadedPromise = iframeToLoadedPromise(iframe);
|
|
109
|
+
var jsenvToolbarHtmlServerUrl = "/".concat(TOOLBAR_BUILD_RELATIVE_URL); // set iframe src BEFORE putting it into the DOM (prevent firefox adding an history entry)
|
|
110
|
+
|
|
111
|
+
iframe.setAttribute("src", jsenvToolbarHtmlServerUrl);
|
|
112
|
+
placeholder.parentNode.replaceChild(iframe, placeholder);
|
|
113
|
+
addToolbarEventCallback(iframe, "toolbar_ready", function () {
|
|
114
|
+
sendCommandToToolbar(iframe, "renderToolbar");
|
|
115
|
+
});
|
|
116
|
+
return _await(iframeLoadedPromise, function () {
|
|
117
|
+
iframe.removeAttribute("tabindex");
|
|
118
|
+
var div = document.createElement("div");
|
|
119
|
+
div.innerHTML = "\n<div id=\"jsenv-toolbar-trigger\">\n <svg id=\"jsenv-toolbar-trigger-icon\">\n <use xlink:href=\"".concat(jsenvLogoSvgUrl, "#jsenv-logo\"></use>\n </svg>\n <style>\n #jsenv-toolbar-trigger {\n display: block;\n overflow: hidden;\n position: fixed;\n z-index: 1000;\n bottom: -32px;\n right: 20px;\n height: 40px;\n width: 40px;\n padding: 0;\n margin: 0;\n border-radius: 5px 5px 0 0;\n border: 1px solid rgba(0, 0, 0, 0.33);\n border-bottom: none;\n box-shadow: 0px 0px 6px 2px rgba(0, 0, 0, 0.46);\n background: transparent;\n text-align: center;\n transition: 600ms;\n }\n\n #jsenv-toolbar-trigger:hover {\n cursor: pointer;\n }\n\n #jsenv-toolbar-trigger[data-expanded] {\n bottom: 0;\n }\n\n #jsenv-toolbar-trigger-icon {\n width: 35px;\n height: 35px;\n opacity: 0;\n transition: 600ms;\n }\n\n #jsenv-toolbar-trigger[data-expanded] #jsenv-toolbar-trigger-icon {\n opacity: 1;\n }\n </style>\n</div>");
|
|
120
|
+
var toolbarTrigger = div.firstElementChild;
|
|
121
|
+
iframe.parentNode.appendChild(toolbarTrigger);
|
|
122
|
+
var timer;
|
|
123
|
+
|
|
124
|
+
toolbarTrigger.onmouseenter = function () {
|
|
125
|
+
toolbarTrigger.setAttribute("data-animate", "");
|
|
126
|
+
timer = setTimeout(expandToolbarTrigger, 500);
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
toolbarTrigger.onmouseleave = function () {
|
|
130
|
+
clearTimeout(timer);
|
|
131
|
+
collapseToolbarTrigger();
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
toolbarTrigger.onfocus = function () {
|
|
135
|
+
toolbarTrigger.removeAttribute("data-animate");
|
|
136
|
+
expandToolbarTrigger();
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
toolbarTrigger.onblur = function () {
|
|
140
|
+
toolbarTrigger.removeAttribute("data-animate");
|
|
141
|
+
clearTimeout(timer);
|
|
142
|
+
collapseToolbarTrigger();
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
toolbarTrigger.onclick = function () {
|
|
146
|
+
sendCommandToToolbar(iframe, "showToolbar");
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
var showToolbarTrigger = function showToolbarTrigger() {
|
|
150
|
+
toolbarTrigger.style.display = "block";
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
var hideToolbarTrigger = function hideToolbarTrigger() {
|
|
154
|
+
toolbarTrigger.style.display = "none";
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
var expandToolbarTrigger = function expandToolbarTrigger() {
|
|
158
|
+
toolbarTrigger.setAttribute("data-expanded", "");
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
var collapseToolbarTrigger = function collapseToolbarTrigger() {
|
|
162
|
+
toolbarTrigger.removeAttribute("data-expanded", "");
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
hideToolbarTrigger();
|
|
166
|
+
addToolbarEventCallback(iframe, "toolbar-visibility-change", function (visible) {
|
|
167
|
+
if (visible) {
|
|
168
|
+
hideToolbarTrigger();
|
|
169
|
+
} else {
|
|
170
|
+
showToolbarTrigger();
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
return iframe;
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
var addToolbarEventCallback = function addToolbarEventCallback(iframe, eventName, callback) {
|
|
179
|
+
var messageEventCallback = function messageEventCallback(messageEvent) {
|
|
180
|
+
var data = messageEvent.data;
|
|
181
|
+
|
|
182
|
+
if (_typeof(data) !== "object") {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
var __jsenv__ = data.__jsenv__;
|
|
187
|
+
|
|
188
|
+
if (!__jsenv__) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
if (__jsenv__.event !== eventName) {
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
callback(__jsenv__.data);
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
window.addEventListener("message", messageEventCallback, false);
|
|
200
|
+
return function () {
|
|
201
|
+
window.removeEventListener("message", messageEventCallback, false);
|
|
202
|
+
};
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
var sendCommandToToolbar = function sendCommandToToolbar(iframe, command) {
|
|
206
|
+
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
207
|
+
args[_key - 2] = arguments[_key];
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
iframe.contentWindow.postMessage({
|
|
211
|
+
__jsenv__: {
|
|
212
|
+
command: command,
|
|
213
|
+
args: args
|
|
214
|
+
}
|
|
215
|
+
}, window.origin);
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
var getToolbarPlaceholder = function getToolbarPlaceholder() {
|
|
219
|
+
var placeholder = queryPlaceholder();
|
|
220
|
+
|
|
221
|
+
if (placeholder) {
|
|
222
|
+
if (document.body.contains(placeholder)) {
|
|
223
|
+
return placeholder;
|
|
224
|
+
} // otherwise iframe would not be visible because in <head>
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
console.warn("element with [data-jsenv-toolbar-placeholder] must be inside document.body");
|
|
228
|
+
return createTooolbarPlaceholder();
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
return createTooolbarPlaceholder();
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
var queryPlaceholder = function queryPlaceholder() {
|
|
235
|
+
return document.querySelector("[data-jsenv-toolbar-placeholder]");
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
var createTooolbarPlaceholder = function createTooolbarPlaceholder() {
|
|
239
|
+
var placeholder = document.createElement("span");
|
|
240
|
+
document.body.appendChild(placeholder);
|
|
241
|
+
return placeholder;
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
var iframeToLoadedPromise = function iframeToLoadedPromise(iframe) {
|
|
245
|
+
return new Promise(function (resolve) {
|
|
246
|
+
var onload = function onload() {
|
|
247
|
+
iframe.removeEventListener("load", onload, true);
|
|
248
|
+
resolve();
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
iframe.addEventListener("load", onload, true);
|
|
252
|
+
});
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
if (document.readyState === "complete") {
|
|
256
|
+
injectToolbar();
|
|
257
|
+
} else {
|
|
258
|
+
window.addEventListener("load", injectToolbar); // document.addEventListener("readystatechange", () => {
|
|
259
|
+
// if (document.readyState === "complete") {
|
|
260
|
+
// injectToolbar()
|
|
261
|
+
// }
|
|
262
|
+
// })
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
})();
|
|
266
|
+
|
|
267
|
+
//# sourceMappingURL=toolbar_injector_978bbd14.js.map
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"file": "toolbar_injector_978bbd14.js",
|
|
4
|
+
"sources": [
|
|
5
|
+
"../../helpers/babel/typeof/typeof.js",
|
|
6
|
+
"../../src/internal/dev_server/toolbar/util/dom.js",
|
|
7
|
+
"../../src/internal/dev_server/toolbar/toolbar.injector.js"
|
|
8
|
+
],
|
|
9
|
+
"sourcesContent": [
|
|
10
|
+
"const nativeTypeOf = (obj) => typeof obj\n\nconst customTypeOf = (obj) => {\n return obj &&\n typeof Symbol === \"function\" &&\n obj.constructor === Symbol &&\n obj !== Symbol.prototype\n ? \"symbol\"\n : typeof obj\n}\n\nexport default typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\"\n ? nativeTypeOf\n : customTypeOf\n",
|
|
11
|
+
"export const updateIframeOverflowOnParentWindow = () => {\n if (!window.parent) {\n // can happen while parent iframe reloads\n return\n }\n\n const aTooltipIsOpened =\n document.querySelector(\"[data-tooltip-visible]\") ||\n document.querySelector(\"[data-tooltip-auto-visible]\")\n const settingsAreOpened = document.querySelector(\"#settings[data-active]\")\n\n if (aTooltipIsOpened || settingsAreOpened) {\n enableIframeOverflowOnParentWindow()\n } else {\n disableIframeOverflowOnParentWindow()\n }\n}\n\nlet iframeOverflowEnabled = false\nconst enableIframeOverflowOnParentWindow = () => {\n if (iframeOverflowEnabled) return\n iframeOverflowEnabled = true\n\n const iframe = getToolbarIframe()\n const transitionDuration = iframe.style.transitionDuration\n setStyles(iframe, { \"height\": \"100%\", \"transition-duration\": \"0ms\" })\n if (transitionDuration) {\n setTimeout(() => {\n setStyles(iframe, { \"transition-duration\": transitionDuration })\n })\n }\n}\n\nconst disableIframeOverflowOnParentWindow = () => {\n if (!iframeOverflowEnabled) return\n iframeOverflowEnabled = false\n\n const iframe = getToolbarIframe()\n const transitionDuration = iframe.style.transitionDuration\n setStyles(iframe, { \"height\": \"40px\", \"transition-duration\": \"0ms\" })\n if (transitionDuration) {\n setTimeout(() => {\n setStyles(iframe, { \"transition-duration\": transitionDuration })\n })\n }\n}\n\nexport const getToolbarIframe = () => {\n const iframes = Array.from(window.parent.document.querySelectorAll(\"iframe\"))\n return iframes.find((iframe) => iframe.contentWindow === window)\n}\n\nexport const forceHideElement = (element) => {\n element.setAttribute(\"data-force-hide\", \"\")\n}\n\nexport const removeForceHideElement = (element) => {\n element.removeAttribute(\"data-force-hide\")\n}\n\nexport const setStyles = (element, styles) => {\n const elementStyle = element.style\n const restoreStyles = Object.keys(styles).map((styleName) => {\n let restore\n if (styleName in elementStyle) {\n const currentStyle = elementStyle[styleName]\n restore = () => {\n elementStyle[styleName] = currentStyle\n }\n } else {\n restore = () => {\n delete elementStyle[styleName]\n }\n }\n\n elementStyle[styleName] = styles[styleName]\n\n return restore\n })\n return () => {\n restoreStyles.forEach((restore) => restore())\n }\n}\n\nexport const setAttributes = (element, attributes) => {\n Object.keys(attributes).forEach((name) => {\n element.setAttribute(name, attributes[name])\n })\n}\n\nexport const getDocumentScroll = () => {\n return {\n x: document.documentElement.scrollLeft,\n y: document.documentElement.scrollTop,\n }\n}\n\nexport const toolbarSectionIsActive = (element) => {\n return element.hasAttribute(\"data-active\")\n}\n\nexport const activateToolbarSection = (element) => {\n element.setAttribute(\"data-active\", \"\")\n}\n\nexport const deactivateToolbarSection = (element) => {\n element.removeAttribute(\"data-active\")\n}\n",
|
|
12
|
+
"import { setAttributes, setStyles } from \"./util/dom.js\"\n\n// eslint-disable-next-line no-undef\nconst TOOLBAR_BUILD_RELATIVE_URL = \"dist/toolbar/toolbar_d3a918a4.html\"\nconst jsenvLogoSvgUrl = new URL(\"./jsenv-logo.svg\", import.meta.url)\n\nconst injectToolbar = async () => {\n await new Promise((resolve) => {\n if (window.requestIdleCallback) {\n window.requestIdleCallback(resolve, { timeout: 400 })\n } else {\n window.requestAnimationFrame(resolve)\n }\n })\n\n const placeholder = getToolbarPlaceholder()\n\n const iframe = document.createElement(\"iframe\")\n setAttributes(iframe, {\n tabindex: -1,\n // sandbox: \"allow-forms allow-modals allow-pointer-lock allow-popups allow-presentation allow-same-origin allow-scripts allow-top-navigation-by-user-activation\",\n // allow: \"accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; microphone; midi; payment; vr\",\n allowtransparency: true,\n })\n setStyles(iframe, {\n \"position\": \"fixed\",\n \"zIndex\": 1000,\n \"bottom\": 0,\n \"left\": 0,\n \"width\": \"100%\",\n \"height\": 0,\n /* ensure toolbar children are not focusable when hidden */\n \"visibility\": \"hidden\",\n \"transition-duration\": \"300ms\",\n \"transition-property\": \"height, visibility\",\n \"border\": \"none\",\n })\n const iframeLoadedPromise = iframeToLoadedPromise(iframe)\n const jsenvToolbarHtmlServerUrl = `/${TOOLBAR_BUILD_RELATIVE_URL}`\n // set iframe src BEFORE putting it into the DOM (prevent firefox adding an history entry)\n iframe.setAttribute(\"src\", jsenvToolbarHtmlServerUrl)\n placeholder.parentNode.replaceChild(iframe, placeholder)\n\n addToolbarEventCallback(iframe, \"toolbar_ready\", () => {\n sendCommandToToolbar(iframe, \"renderToolbar\")\n })\n\n await iframeLoadedPromise\n iframe.removeAttribute(\"tabindex\")\n\n const div = document.createElement(\"div\")\n div.innerHTML = `\n<div id=\"jsenv-toolbar-trigger\">\n <svg id=\"jsenv-toolbar-trigger-icon\">\n <use xlink:href=\"${jsenvLogoSvgUrl}#jsenv-logo\"></use>\n </svg>\n <style>\n #jsenv-toolbar-trigger {\n display: block;\n overflow: hidden;\n position: fixed;\n z-index: 1000;\n bottom: -32px;\n right: 20px;\n height: 40px;\n width: 40px;\n padding: 0;\n margin: 0;\n border-radius: 5px 5px 0 0;\n border: 1px solid rgba(0, 0, 0, 0.33);\n border-bottom: none;\n box-shadow: 0px 0px 6px 2px rgba(0, 0, 0, 0.46);\n background: transparent;\n text-align: center;\n transition: 600ms;\n }\n\n #jsenv-toolbar-trigger:hover {\n cursor: pointer;\n }\n\n #jsenv-toolbar-trigger[data-expanded] {\n bottom: 0;\n }\n\n #jsenv-toolbar-trigger-icon {\n width: 35px;\n height: 35px;\n opacity: 0;\n transition: 600ms;\n }\n\n #jsenv-toolbar-trigger[data-expanded] #jsenv-toolbar-trigger-icon {\n opacity: 1;\n }\n </style>\n</div>`\n const toolbarTrigger = div.firstElementChild\n iframe.parentNode.appendChild(toolbarTrigger)\n\n let timer\n toolbarTrigger.onmouseenter = () => {\n toolbarTrigger.setAttribute(\"data-animate\", \"\")\n timer = setTimeout(expandToolbarTrigger, 500)\n }\n toolbarTrigger.onmouseleave = () => {\n clearTimeout(timer)\n collapseToolbarTrigger()\n }\n toolbarTrigger.onfocus = () => {\n toolbarTrigger.removeAttribute(\"data-animate\")\n expandToolbarTrigger()\n }\n toolbarTrigger.onblur = () => {\n toolbarTrigger.removeAttribute(\"data-animate\")\n clearTimeout(timer)\n collapseToolbarTrigger()\n }\n toolbarTrigger.onclick = () => {\n sendCommandToToolbar(iframe, \"showToolbar\")\n }\n\n const showToolbarTrigger = () => {\n toolbarTrigger.style.display = \"block\"\n }\n\n const hideToolbarTrigger = () => {\n toolbarTrigger.style.display = \"none\"\n }\n\n const expandToolbarTrigger = () => {\n toolbarTrigger.setAttribute(\"data-expanded\", \"\")\n }\n\n const collapseToolbarTrigger = () => {\n toolbarTrigger.removeAttribute(\"data-expanded\", \"\")\n }\n\n hideToolbarTrigger()\n addToolbarEventCallback(iframe, \"toolbar-visibility-change\", (visible) => {\n if (visible) {\n hideToolbarTrigger()\n } else {\n showToolbarTrigger()\n }\n })\n\n return iframe\n}\n\nconst addToolbarEventCallback = (iframe, eventName, callback) => {\n const messageEventCallback = (messageEvent) => {\n const { data } = messageEvent\n if (typeof data !== \"object\") {\n return\n }\n const { __jsenv__ } = data\n if (!__jsenv__) {\n return\n }\n if (__jsenv__.event !== eventName) {\n return\n }\n callback(__jsenv__.data)\n }\n\n window.addEventListener(\"message\", messageEventCallback, false)\n return () => {\n window.removeEventListener(\"message\", messageEventCallback, false)\n }\n}\n\nconst sendCommandToToolbar = (iframe, command, ...args) => {\n iframe.contentWindow.postMessage(\n {\n __jsenv__: {\n command,\n args,\n },\n },\n window.origin,\n )\n}\n\nconst getToolbarPlaceholder = () => {\n const placeholder = queryPlaceholder()\n if (placeholder) {\n if (document.body.contains(placeholder)) {\n return placeholder\n }\n // otherwise iframe would not be visible because in <head>\n console.warn(\n \"element with [data-jsenv-toolbar-placeholder] must be inside document.body\",\n )\n return createTooolbarPlaceholder()\n }\n return createTooolbarPlaceholder()\n}\n\nconst queryPlaceholder = () => {\n return document.querySelector(\"[data-jsenv-toolbar-placeholder]\")\n}\n\nconst createTooolbarPlaceholder = () => {\n const placeholder = document.createElement(\"span\")\n document.body.appendChild(placeholder)\n return placeholder\n}\n\nconst iframeToLoadedPromise = (iframe) => {\n return new Promise((resolve) => {\n const onload = () => {\n iframe.removeEventListener(\"load\", onload, true)\n resolve()\n }\n iframe.addEventListener(\"load\", onload, true)\n })\n}\n\nif (document.readyState === \"complete\") {\n injectToolbar()\n} else {\n window.addEventListener(\"load\", injectToolbar)\n // document.addEventListener(\"readystatechange\", () => {\n // if (document.readyState === \"complete\") {\n // injectToolbar()\n // }\n // })\n}\n"
|
|
13
|
+
],
|
|
14
|
+
"names": [
|
|
15
|
+
"nativeTypeOf",
|
|
16
|
+
"obj",
|
|
17
|
+
"customTypeOf",
|
|
18
|
+
"Symbol",
|
|
19
|
+
"constructor",
|
|
20
|
+
"prototype",
|
|
21
|
+
"iterator",
|
|
22
|
+
"setStyles",
|
|
23
|
+
"element",
|
|
24
|
+
"styles",
|
|
25
|
+
"elementStyle",
|
|
26
|
+
"style",
|
|
27
|
+
"restoreStyles",
|
|
28
|
+
"Object",
|
|
29
|
+
"keys",
|
|
30
|
+
"map",
|
|
31
|
+
"styleName",
|
|
32
|
+
"restore",
|
|
33
|
+
"currentStyle",
|
|
34
|
+
"forEach",
|
|
35
|
+
"setAttributes",
|
|
36
|
+
"attributes",
|
|
37
|
+
"name",
|
|
38
|
+
"setAttribute",
|
|
39
|
+
"_await",
|
|
40
|
+
"value",
|
|
41
|
+
"then",
|
|
42
|
+
"direct",
|
|
43
|
+
"Promise",
|
|
44
|
+
"resolve",
|
|
45
|
+
"TOOLBAR_BUILD_RELATIVE_URL",
|
|
46
|
+
"_async",
|
|
47
|
+
"f",
|
|
48
|
+
"args",
|
|
49
|
+
"i",
|
|
50
|
+
"arguments",
|
|
51
|
+
"length",
|
|
52
|
+
"apply",
|
|
53
|
+
"e",
|
|
54
|
+
"reject",
|
|
55
|
+
"jsenvLogoSvgUrl",
|
|
56
|
+
"injectToolbar",
|
|
57
|
+
"window",
|
|
58
|
+
"requestIdleCallback",
|
|
59
|
+
"timeout",
|
|
60
|
+
"requestAnimationFrame",
|
|
61
|
+
"placeholder",
|
|
62
|
+
"getToolbarPlaceholder",
|
|
63
|
+
"iframe",
|
|
64
|
+
"document",
|
|
65
|
+
"createElement",
|
|
66
|
+
"tabindex",
|
|
67
|
+
"allowtransparency",
|
|
68
|
+
"iframeLoadedPromise",
|
|
69
|
+
"iframeToLoadedPromise",
|
|
70
|
+
"jsenvToolbarHtmlServerUrl",
|
|
71
|
+
"parentNode",
|
|
72
|
+
"replaceChild",
|
|
73
|
+
"addToolbarEventCallback",
|
|
74
|
+
"sendCommandToToolbar",
|
|
75
|
+
"removeAttribute",
|
|
76
|
+
"div",
|
|
77
|
+
"innerHTML",
|
|
78
|
+
"toolbarTrigger",
|
|
79
|
+
"firstElementChild",
|
|
80
|
+
"appendChild",
|
|
81
|
+
"timer",
|
|
82
|
+
"onmouseenter",
|
|
83
|
+
"setTimeout",
|
|
84
|
+
"expandToolbarTrigger",
|
|
85
|
+
"onmouseleave",
|
|
86
|
+
"clearTimeout",
|
|
87
|
+
"collapseToolbarTrigger",
|
|
88
|
+
"onfocus",
|
|
89
|
+
"onblur",
|
|
90
|
+
"onclick",
|
|
91
|
+
"showToolbarTrigger",
|
|
92
|
+
"display",
|
|
93
|
+
"hideToolbarTrigger",
|
|
94
|
+
"visible",
|
|
95
|
+
"eventName",
|
|
96
|
+
"callback",
|
|
97
|
+
"messageEventCallback",
|
|
98
|
+
"messageEvent",
|
|
99
|
+
"data",
|
|
100
|
+
"__jsenv__",
|
|
101
|
+
"event",
|
|
102
|
+
"addEventListener",
|
|
103
|
+
"removeEventListener",
|
|
104
|
+
"command",
|
|
105
|
+
"contentWindow",
|
|
106
|
+
"postMessage",
|
|
107
|
+
"origin",
|
|
108
|
+
"queryPlaceholder",
|
|
109
|
+
"body",
|
|
110
|
+
"contains",
|
|
111
|
+
"console",
|
|
112
|
+
"warn",
|
|
113
|
+
"createTooolbarPlaceholder",
|
|
114
|
+
"querySelector",
|
|
115
|
+
"onload",
|
|
116
|
+
"readyState"
|
|
117
|
+
],
|
|
118
|
+
"mappings": "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"
|
|
119
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jsenv/core",
|
|
3
|
-
"version": "25.
|
|
3
|
+
"version": "25.4.0",
|
|
4
4
|
"description": "Tool to develop, test and build js projects",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
"node": ">=16.13.0"
|
|
12
12
|
},
|
|
13
13
|
"publishConfig": {
|
|
14
|
-
"access": "public"
|
|
14
|
+
"access": "public",
|
|
15
|
+
"registry": "https://registry.npmjs.org"
|
|
15
16
|
},
|
|
16
17
|
"type": "module",
|
|
17
18
|
"exports": {
|
|
@@ -62,12 +63,12 @@
|
|
|
62
63
|
"@babel/plugin-transform-modules-systemjs": "7.16.5",
|
|
63
64
|
"@c88/v8-coverage": "0.1.1",
|
|
64
65
|
"@jsenv/abort": "4.1.2",
|
|
65
|
-
"@jsenv/filesystem": "2.7.
|
|
66
|
+
"@jsenv/filesystem": "2.7.1",
|
|
66
67
|
"@jsenv/importmap": "1.2.0",
|
|
67
68
|
"@jsenv/integrity": "0.0.1",
|
|
68
69
|
"@jsenv/log": "1.5.0",
|
|
69
70
|
"@jsenv/logger": "4.0.1",
|
|
70
|
-
"@jsenv/server": "12.
|
|
71
|
+
"@jsenv/server": "12.4.1",
|
|
71
72
|
"@jsenv/uneval": "1.6.0",
|
|
72
73
|
"@rollup/plugin-commonjs": "21.0.1",
|
|
73
74
|
"@rollup/plugin-json": "4.1.0",
|
|
@@ -118,13 +119,13 @@
|
|
|
118
119
|
"@jsenv/assert": "2.4.1",
|
|
119
120
|
"@jsenv/babel-preset": "1.1.2",
|
|
120
121
|
"@jsenv/eslint-config": "16.0.9",
|
|
121
|
-
"@jsenv/file-size-impact": "12.1.
|
|
122
|
-
"@jsenv/github-release-package": "1.
|
|
123
|
-
"@jsenv/https-local": "1.0.
|
|
122
|
+
"@jsenv/file-size-impact": "12.1.6",
|
|
123
|
+
"@jsenv/github-release-package": "1.3.4",
|
|
124
|
+
"@jsenv/https-local": "1.0.7",
|
|
124
125
|
"@jsenv/importmap-eslint-resolver": "5.2.5",
|
|
125
|
-
"@jsenv/importmap-node-module": "5.1.
|
|
126
|
-
"@jsenv/package-publish": "1.
|
|
127
|
-
"@jsenv/performance-impact": "2.2.
|
|
126
|
+
"@jsenv/importmap-node-module": "5.1.3",
|
|
127
|
+
"@jsenv/package-publish": "1.7.2",
|
|
128
|
+
"@jsenv/performance-impact": "2.2.6",
|
|
128
129
|
"@jsenv/pwa": "4.0.1",
|
|
129
130
|
"babel-plugin-transform-async-to-promises": "0.8.17",
|
|
130
131
|
"eslint": "7.32.0",
|
|
@@ -141,4 +142,4 @@
|
|
|
141
142
|
"redux": "4.1.2",
|
|
142
143
|
"rollup-plugin-import-assert": "1.1.1"
|
|
143
144
|
}
|
|
144
|
-
}
|
|
145
|
+
}
|
package/src/buildProject.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { createLogger, createDetailedMessage } from "@jsenv/logger"
|
|
2
1
|
import { resolveDirectoryUrl } from "@jsenv/filesystem"
|
|
2
|
+
import { createLogger, createDetailedMessage } from "@jsenv/logger"
|
|
3
3
|
import { Abort, raceProcessTeardownEvents } from "@jsenv/abort"
|
|
4
4
|
|
|
5
|
-
import { shakeBabelPluginMap } from "@jsenv/core/src/internal/generateGroupMap/shake_babel_plugin_map.js"
|
|
6
|
-
import { COMPILE_ID_BEST } from "@jsenv/core/src/internal/CONSTANTS.js"
|
|
7
5
|
import {
|
|
8
6
|
assertProjectDirectoryUrl,
|
|
9
7
|
assertProjectDirectoryExists,
|
|
@@ -13,7 +11,11 @@ import { buildUsingRollup } from "@jsenv/core/src/internal/building/buildUsingRo
|
|
|
13
11
|
import {
|
|
14
12
|
jsenvBrowserRuntimeSupport,
|
|
15
13
|
jsenvNodeRuntimeSupport,
|
|
16
|
-
} from "@jsenv/core/src/internal/
|
|
14
|
+
} from "@jsenv/core/src/internal/runtime_support/jsenv_runtime_support.js"
|
|
15
|
+
import {
|
|
16
|
+
isNodePartOfSupportedRuntimes,
|
|
17
|
+
isBrowserPartOfSupportedRuntimes,
|
|
18
|
+
} from "@jsenv/core/src/internal/runtime_support/runtime_support.js"
|
|
17
19
|
|
|
18
20
|
/**
|
|
19
21
|
* Generate optimized version of source files into a directory
|
|
@@ -126,19 +128,15 @@ export const buildProject = async ({
|
|
|
126
128
|
`format must be "systemjs" when importMapInWebWorkers is enabled`,
|
|
127
129
|
)
|
|
128
130
|
}
|
|
129
|
-
|
|
130
131
|
projectDirectoryUrl = assertProjectDirectoryUrl({ projectDirectoryUrl })
|
|
131
132
|
await assertProjectDirectoryExists({ projectDirectoryUrl })
|
|
132
|
-
|
|
133
|
-
assertentryPoints({ entryPoints })
|
|
134
|
-
|
|
133
|
+
assertEntryPoints({ entryPoints })
|
|
135
134
|
if (Object.keys(entryPoints).length === 0) {
|
|
136
135
|
logger.error(`entryPoints is an empty object`)
|
|
137
136
|
return {
|
|
138
137
|
rollupBuilds: {},
|
|
139
138
|
}
|
|
140
139
|
}
|
|
141
|
-
|
|
142
140
|
assertBuildDirectoryRelativeUrl({ buildDirectoryRelativeUrl })
|
|
143
141
|
const buildDirectoryUrl = resolveDirectoryUrl(
|
|
144
142
|
buildDirectoryRelativeUrl,
|
|
@@ -151,7 +149,6 @@ export const buildProject = async ({
|
|
|
151
149
|
|
|
152
150
|
const buildOperation = Abort.startOperation()
|
|
153
151
|
buildOperation.addAbortSignal(signal)
|
|
154
|
-
|
|
155
152
|
if (handleSIGINT) {
|
|
156
153
|
buildOperation.addAbortSource((abort) => {
|
|
157
154
|
return raceProcessTeardownEvents(
|
|
@@ -162,7 +159,6 @@ export const buildProject = async ({
|
|
|
162
159
|
)
|
|
163
160
|
})
|
|
164
161
|
}
|
|
165
|
-
|
|
166
162
|
const compileServer = await startCompileServer({
|
|
167
163
|
signal: buildOperation.signal,
|
|
168
164
|
logLevel: compileServerLogLevel,
|
|
@@ -210,12 +206,26 @@ export const buildProject = async ({
|
|
|
210
206
|
compileServerCanReadFromFilesystem: filesystemCache,
|
|
211
207
|
compileServerCanWriteOnFilesystem: filesystemCache,
|
|
212
208
|
})
|
|
213
|
-
|
|
214
209
|
buildOperation.addEndCallback(async () => {
|
|
215
210
|
await compileServer.stop(`build cleanup`)
|
|
216
211
|
})
|
|
217
|
-
|
|
218
|
-
const
|
|
212
|
+
const node = isNodePartOfSupportedRuntimes(runtimeSupport)
|
|
213
|
+
const browser = isBrowserPartOfSupportedRuntimes(runtimeSupport)
|
|
214
|
+
const { compileId, compileProfile } =
|
|
215
|
+
await compileServer.createCompileIdFromRuntimeReport({
|
|
216
|
+
env: {
|
|
217
|
+
browser,
|
|
218
|
+
node,
|
|
219
|
+
},
|
|
220
|
+
name: "jsenv_build",
|
|
221
|
+
version: "1",
|
|
222
|
+
runtimeSupport,
|
|
223
|
+
// "rollup_plugin_jsenv.js" expects to hit the compile server
|
|
224
|
+
// so we force compilation by adding a fake feature called "force_compilation"
|
|
225
|
+
// one day we'll test how code behaves if zero transformations is required during
|
|
226
|
+
// the build and update code as needed
|
|
227
|
+
forceCompilation: true,
|
|
228
|
+
})
|
|
219
229
|
|
|
220
230
|
try {
|
|
221
231
|
const result = await buildUsingRollup({
|
|
@@ -224,9 +234,6 @@ export const buildProject = async ({
|
|
|
224
234
|
|
|
225
235
|
entryPoints,
|
|
226
236
|
projectDirectoryUrl,
|
|
227
|
-
compileServerOrigin,
|
|
228
|
-
compileDirectoryRelativeUrl: `${outDirectoryRelativeUrl}${COMPILE_ID_BEST}/`,
|
|
229
|
-
jsenvDirectoryRelativeUrl: compileServer.jsenvDirectoryRelativeUrl,
|
|
230
237
|
buildDirectoryUrl,
|
|
231
238
|
buildDirectoryClean,
|
|
232
239
|
assetManifestFile,
|
|
@@ -244,19 +251,17 @@ export const buildProject = async ({
|
|
|
244
251
|
systemJsUrl,
|
|
245
252
|
globalName,
|
|
246
253
|
globals,
|
|
247
|
-
babelPluginMap: shakeBabelPluginMap({
|
|
248
|
-
babelPluginMap: compileServer.babelPluginMap,
|
|
249
|
-
missingFeatureNames:
|
|
250
|
-
compileServer.compileServerGroupMap[COMPILE_ID_BEST]
|
|
251
|
-
.missingFeatureNames,
|
|
252
|
-
}),
|
|
253
|
-
runtimeSupport,
|
|
254
254
|
workers,
|
|
255
255
|
serviceWorkers,
|
|
256
256
|
serviceWorkerFinalizer,
|
|
257
257
|
classicWorkers,
|
|
258
258
|
classicServiceWorkers,
|
|
259
|
-
|
|
259
|
+
|
|
260
|
+
node,
|
|
261
|
+
browser,
|
|
262
|
+
compileServer,
|
|
263
|
+
compileProfile,
|
|
264
|
+
compileId,
|
|
260
265
|
|
|
261
266
|
urlVersioning,
|
|
262
267
|
lineBreakNormalization,
|
|
@@ -287,7 +292,7 @@ export const buildProject = async ({
|
|
|
287
292
|
}
|
|
288
293
|
}
|
|
289
294
|
|
|
290
|
-
const
|
|
295
|
+
const assertEntryPoints = ({ entryPoints }) => {
|
|
291
296
|
if (typeof entryPoints !== "object") {
|
|
292
297
|
throw new TypeError(`entryPoints must be an object, got ${entryPoints}`)
|
|
293
298
|
}
|