@jsenv/core 24.2.2 → 24.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.
Files changed (156) hide show
  1. package/dist/browser_runtime/browser_runtime-fbd309a1.js +5137 -0
  2. package/dist/browser_runtime/browser_runtime-fbd309a1.js.map +1064 -0
  3. package/dist/{jsenv_browser_system.js → browser_system/browser_system-29eda202.js} +12 -12
  4. package/dist/{jsenv_browser_system.js.map → browser_system/browser_system-29eda202.js.map} +64 -64
  5. package/dist/build_manifest.js +12 -0
  6. package/dist/compile_proxy/assets/s.js-749702e8.map +242 -0
  7. package/dist/compile_proxy/compile_proxy-405777e6.html +2074 -0
  8. package/dist/compile_proxy/compile_proxy.html__inline__20-39c0801c.js.map +385 -0
  9. package/dist/{jsenv_event_source_client.js → event_source_client/event_source_client-9f14c8b9.js} +39 -21
  10. package/dist/event_source_client/event_source_client-9f14c8b9.js.map +127 -0
  11. package/dist/redirector/assets/s.js-749702e8.map +242 -0
  12. package/dist/redirector/redirector-237cd168.html +2118 -0
  13. package/dist/redirector/redirector.html__inline__15-33acb0b9.js.map +390 -0
  14. package/dist/toolbar/assets/compilation.css-209d68b4.map +12 -0
  15. package/dist/toolbar/assets/eventsource.css-38cd0a36.map +12 -0
  16. package/dist/toolbar/assets/execution.css-0ebe522f.map +12 -0
  17. package/dist/toolbar/assets/focus.css-3f9c156d.map +12 -0
  18. package/dist/toolbar/assets/light-theme.css-78b19a80.map +12 -0
  19. package/dist/toolbar/assets/overflow-menu.css-d9688a1c.map +12 -0
  20. package/dist/toolbar/assets/s.js-749702e8.map +242 -0
  21. package/dist/toolbar/assets/settings.css-2b81b245.map +12 -0
  22. package/dist/toolbar/assets/toolbar.main.css-846920e9.map +28 -0
  23. package/dist/toolbar/assets/tooltip.css-03395ee6.map +12 -0
  24. package/dist/toolbar/toolbar-29e91dcd.html +4779 -0
  25. package/dist/toolbar/toolbar.main-53e1ab2b.js.map +795 -0
  26. package/dist/toolbar_injector/assets/jsenv-logo-188b9ca6.svg +95 -0
  27. package/dist/{jsenv_toolbar_injector.js → toolbar_injector/toolbar_injector-0af91b43.js} +87 -65
  28. package/dist/toolbar_injector/toolbar_injector-0af91b43.js.map +294 -0
  29. package/main.js +0 -1
  30. package/package.json +2 -1
  31. package/readme.md +10 -7
  32. package/src/buildProject.js +6 -2
  33. package/src/dev_server.js +22 -130
  34. package/src/execute.js +7 -10
  35. package/src/executeTestPlan.js +7 -1
  36. package/src/importUsingChildProcess.js +1 -1
  37. package/src/internal/{runtime/detectBrowser/detectBrowser.js → browser_detection/browser_detection.js} +0 -0
  38. package/src/internal/{runtime/detectBrowser → browser_detection}/detectAndroid.js +0 -0
  39. package/src/internal/{runtime/detectBrowser → browser_detection}/detectChrome.js +0 -0
  40. package/src/internal/{runtime/detectBrowser → browser_detection}/detectEdge.js +0 -0
  41. package/src/internal/{runtime/detectBrowser → browser_detection}/detectElectron.js +0 -0
  42. package/src/internal/{runtime/detectBrowser → browser_detection}/detectFirefox.js +0 -0
  43. package/src/internal/{runtime/detectBrowser → browser_detection}/detectIOS.js +0 -0
  44. package/src/internal/{runtime/detectBrowser → browser_detection}/detectInternetExplorer.js +0 -0
  45. package/src/internal/{runtime/detectBrowser → browser_detection}/detectOpera.js +0 -0
  46. package/src/internal/{runtime/detectBrowser → browser_detection}/detectSafari.js +0 -0
  47. package/src/internal/{runtime/detectBrowser → browser_detection}/util.js +0 -0
  48. package/src/internal/{runtime/createBrowserRuntime/scanBrowserRuntimeFeatures.js → browser_feature_detection/browser_feature_detection.js} +116 -81
  49. package/src/internal/browser_feature_detection/compile_proxy.html +27 -0
  50. package/src/internal/browser_launcher/browser_runtime_report.js +75 -0
  51. package/src/internal/{browser-launcher → browser_launcher}/executeHtmlFile.js +13 -16
  52. package/src/internal/browser_launcher/from_playwright.js +314 -0
  53. package/src/internal/{browser-launcher → browser_launcher}/trackPageToNotify.js +0 -0
  54. package/src/internal/{browser-launcher/jsenv-browser-system.js → browser_runtime/browser_runtime.js} +4 -4
  55. package/src/internal/{runtime/createBrowserRuntime/createBrowserSystem.js → browser_runtime/browser_system.js} +3 -2
  56. package/src/internal/{runtime/createBrowserRuntime → browser_runtime}/createBrowserRuntime.js +7 -5
  57. package/src/internal/{browser-launcher → browser_runtime}/displayErrorInDocument.js +0 -0
  58. package/src/internal/{browser-launcher → browser_runtime}/displayErrorNotification.js +2 -4
  59. package/src/internal/{runtime/createBrowserRuntime → browser_runtime}/evalSource.js +2 -0
  60. package/src/internal/{runtime/createBrowserRuntime → browser_runtime}/makeNamespaceTransferable.js +0 -0
  61. package/src/internal/{browser-utils → browser_utils}/fetch-browser.js +2 -0
  62. package/src/internal/{browser-utils → browser_utils}/fetchAndEvalUsingFetch.js +3 -0
  63. package/src/internal/{browser-utils → browser_utils}/fetchAndEvalUsingScript.js +2 -0
  64. package/src/internal/{browser-utils → browser_utils}/fetchJson.js +0 -0
  65. package/src/internal/{browser-utils → browser_utils}/fetchUsingXHR.js +4 -4
  66. package/src/internal/building/buildUsingRollup.js +4 -0
  67. package/src/internal/building/createJsenvRollupPlugin.js +19 -9
  68. package/src/internal/building/css/applyPostCss.js +19 -8
  69. package/src/internal/building/css/moveCssUrls.js +44 -0
  70. package/src/internal/building/css/parseCssRessource.js +67 -17
  71. package/src/internal/building/css/parseCssUrls.js +29 -23
  72. package/src/internal/building/css/postcss_plugin_url_visitor.js +11 -20
  73. package/src/internal/building/css/replaceCssUrls.js +38 -19
  74. package/src/internal/building/css_module.js +6 -10
  75. package/src/internal/building/html/parseHtmlRessource.js +37 -11
  76. package/src/internal/building/parseRessource.js +3 -0
  77. package/src/internal/building/ressource_builder.js +12 -3
  78. package/src/internal/compiling/babel_plugin_import_assertions.js +1 -2
  79. package/src/internal/compiling/html_source_file_service.js +23 -21
  80. package/src/internal/compiling/jsenvCompilerForHtml.js +15 -22
  81. package/src/internal/compiling/startCompileServer.js +37 -32
  82. package/src/internal/dev_server/event_source_client/event_source_connection.js +28 -19
  83. package/src/internal/dev_server/exploring/exploring.html +7 -2
  84. package/src/internal/dev_server/exploring/fetchExploringJson.js +4 -9
  85. package/src/internal/dev_server/redirector/redirector.html +37 -2
  86. package/src/internal/dev_server/toolbar/compilation/toolbar.compilation.js +4 -7
  87. package/src/internal/dev_server/toolbar/eventsource/toolbar.eventsource.js +2 -2
  88. package/src/internal/dev_server/toolbar/notification/toolbar.notification.js +75 -44
  89. package/src/internal/dev_server/toolbar/toolbar.html +31 -5
  90. package/src/internal/dev_server/toolbar/toolbar.injector.js +55 -36
  91. package/src/internal/dev_server/toolbar/toolbar.main.js +45 -31
  92. package/src/internal/dev_server/toolbar/util/fetching.js +1 -1
  93. package/src/internal/executing/executeConcurrently.js +15 -11
  94. package/src/internal/executing/executePlan.js +3 -2
  95. package/src/internal/generateGroupMap/one_runtime_compat.js +1 -1
  96. package/src/internal/generateGroupMap/runtime_compat_composition.js +1 -1
  97. package/src/internal/generateGroupMap/runtime_support.js +1 -1
  98. package/src/internal/jsenvInternalFiles.js +0 -26
  99. package/src/internal/jsenv_builds.js +19 -0
  100. package/src/internal/{runtime/node-feature-detect/feature-detect-dynamic-import.mjs → node_feature_detection/feature_detect_dynamic_import.mjs} +0 -0
  101. package/src/internal/{runtime/node-feature-detect/feature-detect-top-level-await.mjs → node_feature_detection/feature_detect_top_level_await.mjs} +0 -0
  102. package/src/internal/{runtime/node-feature-detect → node_feature_detection}/nodeSupportsDynamicImport.js +0 -0
  103. package/src/internal/node_feature_detection/nodeSupportsTopLevelAwait.js +16 -0
  104. package/src/internal/{runtime/createNodeRuntime/scanNodeRuntimeFeatures.js → node_feature_detection/node_feature_detection.js} +12 -13
  105. package/src/internal/{node-launcher → node_launcher}/createChildProcessOptions.js +0 -0
  106. package/src/internal/{node-launcher → node_launcher}/createControllableNodeProcess.js +9 -14
  107. package/src/internal/{node-launcher → node_launcher}/kill_process_tree.js +0 -0
  108. package/src/internal/node_launcher/node_runtime_report.js +71 -0
  109. package/src/internal/{node-launcher → node_launcher}/processOptions.js +0 -0
  110. package/src/internal/{runtime/detectNode → node_runtime}/detectNode.js +0 -0
  111. package/src/internal/{runtime/createNodeRuntime → node_runtime}/evalSource.js +1 -1
  112. package/src/internal/{runtime/createNodeRuntime → node_runtime}/fetchSource.js +1 -1
  113. package/src/internal/{node-launcher → node_runtime}/nodeControllableFile.mjs +14 -11
  114. package/src/internal/{runtime/createNodeRuntime/createNodeExecutionWithDynamicImport.js → node_runtime/node_execution_dynamic_import.js} +34 -6
  115. package/src/internal/node_runtime/node_execution_performance.js +67 -0
  116. package/src/internal/{runtime/createNodeRuntime/createNodeExecutionWithSystemJs.js → node_runtime/node_execution_systemjs.js} +38 -24
  117. package/src/internal/{runtime/createNodeRuntime/createNodeSystem.js → node_runtime/node_system.js} +4 -4
  118. package/src/internal/runtime/computeCompileIdFromGroupId.js +1 -0
  119. package/src/internal/runtime/resolveGroup.js +1 -1
  120. package/src/internal/runtime/resolveRuntimeGroup.js +2 -2
  121. package/src/internal/{semantic-versioning → semantic_versioning}/findHighestVersion.js +0 -0
  122. package/src/internal/{semantic-versioning → semantic_versioning}/findLowestVersion.js +0 -0
  123. package/src/internal/{semantic-versioning → semantic_versioning}/index.js +0 -0
  124. package/src/internal/{semantic-versioning → semantic_versioning}/valueToVersion.js +0 -0
  125. package/src/internal/{semantic-versioning → semantic_versioning}/versionCompare.js +0 -0
  126. package/src/internal/{semantic-versioning → semantic_versioning}/versionIsAbove.js +0 -0
  127. package/src/internal/{semantic-versioning → semantic_versioning}/versionIsBelow.js +0 -0
  128. package/src/internal/{semantic-versioning → semantic_versioning}/versionIsEqual.js +0 -0
  129. package/src/launchBrowser.js +33 -492
  130. package/src/launchNode.js +36 -7
  131. package/src/requireUsingChildProcess.js +1 -1
  132. package/dist/jsenv_compile_proxy.js +0 -1339
  133. package/dist/jsenv_compile_proxy.js.map +0 -378
  134. package/dist/jsenv_event_source_client.js.map +0 -126
  135. package/dist/jsenv_exploring_index.js +0 -1092
  136. package/dist/jsenv_exploring_index.js.map +0 -353
  137. package/dist/jsenv_exploring_redirector.js +0 -1386
  138. package/dist/jsenv_exploring_redirector.js.map +0 -384
  139. package/dist/jsenv_redirector.js +0 -1388
  140. package/dist/jsenv_redirector.js.map +0 -384
  141. package/dist/jsenv_toolbar.js +0 -2880
  142. package/dist/jsenv_toolbar.js.map +0 -771
  143. package/dist/jsenv_toolbar_injector.js.map +0 -301
  144. package/src/internal/browser-launcher/createSharing.js +0 -70
  145. package/src/internal/browser-launcher/jsenv_compile_proxy.html +0 -13
  146. package/src/internal/browser-launcher/jsenv_compile_proxy.js +0 -5
  147. package/src/internal/dev_server/event_source_client/event_source_client_file_info.js +0 -17
  148. package/src/internal/dev_server/exploring/exploring_file_info.js +0 -21
  149. package/src/internal/dev_server/redirector/redirector.js +0 -30
  150. package/src/internal/dev_server/redirector/redirector_file_info.js +0 -24
  151. package/src/internal/dev_server/toolbar/backtolist/toolbar.backtolist.js +0 -33
  152. package/src/internal/dev_server/toolbar/toolbar_file_info.js +0 -37
  153. package/src/internal/node-launcher/node-js-file.js +0 -110
  154. package/src/internal/runtime/createNodeRuntime/createNodeRuntime.js +0 -32
  155. package/src/internal/runtime/node-feature-detect/nodeSupportsTopLevelAwait.js +0 -18
  156. package/src/nodeRuntime.js +0 -5
@@ -1,1386 +0,0 @@
1
- (function () {
2
- 'use strict';
3
-
4
- var _defineProperty = (function (obj, key, value) {
5
- // Shortcircuit the slow defineProperty path when possible.
6
- // We are trying to avoid issues where setters defined on the
7
- // prototype cause side effects under the fast path of simple
8
- // assignment. By checking for existence of the property with
9
- // the in operator, we can optimize most of this overhead away.
10
- if (key in obj) {
11
- Object.defineProperty(obj, key, {
12
- value: value,
13
- enumerable: true,
14
- configurable: true,
15
- writable: true
16
- });
17
- } else {
18
- obj[key] = value;
19
- }
20
-
21
- return obj;
22
- });
23
-
24
- function ownKeys(object, enumerableOnly) {
25
- var keys = Object.keys(object);
26
-
27
- if (Object.getOwnPropertySymbols) {
28
- var symbols = Object.getOwnPropertySymbols(object);
29
-
30
- if (enumerableOnly) {
31
- symbols = symbols.filter(function (sym) {
32
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
33
- });
34
- }
35
-
36
- keys.push.apply(keys, symbols);
37
- }
38
-
39
- return keys;
40
- }
41
-
42
- function _objectSpread2(target) {
43
- for (var i = 1; i < arguments.length; i++) {
44
- var source = arguments[i] != null ? arguments[i] : {};
45
-
46
- if (i % 2) {
47
- ownKeys(Object(source), true).forEach(function (key) {
48
- _defineProperty(target, key, source[key]);
49
- });
50
- } else if (Object.getOwnPropertyDescriptors) {
51
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
52
- } else {
53
- ownKeys(Object(source)).forEach(function (key) {
54
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
55
- });
56
- }
57
- }
58
-
59
- return target;
60
- }
61
-
62
- var objectWithoutPropertiesLoose = (function (source, excluded) {
63
- if (source === null) return {};
64
- var target = {};
65
- var sourceKeys = Object.keys(source);
66
- var key;
67
- var i;
68
-
69
- for (i = 0; i < sourceKeys.length; i++) {
70
- key = sourceKeys[i];
71
- if (excluded.indexOf(key) >= 0) continue;
72
- target[key] = source[key];
73
- }
74
-
75
- return target;
76
- });
77
-
78
- var _objectWithoutProperties = (function (source, excluded) {
79
- if (source === null) return {};
80
- var target = objectWithoutPropertiesLoose(source, excluded);
81
- var key;
82
- var i;
83
-
84
- if (Object.getOwnPropertySymbols) {
85
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
86
-
87
- for (i = 0; i < sourceSymbolKeys.length; i++) {
88
- key = sourceSymbolKeys[i];
89
- if (excluded.indexOf(key) >= 0) continue;
90
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
91
- target[key] = source[key];
92
- }
93
- }
94
-
95
- return target;
96
- });
97
-
98
- var nativeTypeOf = function nativeTypeOf(obj) {
99
- return typeof obj;
100
- };
101
-
102
- var customTypeOf = function customTypeOf(obj) {
103
- return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
104
- };
105
-
106
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? nativeTypeOf : customTypeOf;
107
-
108
- var createDetailedMessage = function createDetailedMessage(message) {
109
- var details = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
110
- var string = "".concat(message);
111
- Object.keys(details).forEach(function (key) {
112
- var value = details[key];
113
- string += "\n--- ".concat(key, " ---\n").concat(Array.isArray(value) ? value.join("\n") : value);
114
- });
115
- return string;
116
- };
117
-
118
- function _await$4(value, then, direct) {
119
- if (direct) {
120
- return then ? then(value) : value;
121
- }
122
-
123
- if (!value || !value.then) {
124
- value = Promise.resolve(value);
125
- }
126
-
127
- return then ? value.then(then) : value;
128
- }
129
-
130
- function _async$4(f) {
131
- return function () {
132
- for (var args = [], i = 0; i < arguments.length; i++) {
133
- args[i] = arguments[i];
134
- }
135
-
136
- try {
137
- return Promise.resolve(f.apply(this, args));
138
- } catch (e) {
139
- return Promise.reject(e);
140
- }
141
- };
142
- }
143
-
144
- function _call$1(body, then, direct) {
145
- if (direct) {
146
- return then ? then(body()) : body();
147
- }
148
-
149
- try {
150
- var result = Promise.resolve(body());
151
- return then ? result.then(then) : result;
152
- } catch (e) {
153
- return Promise.reject(e);
154
- }
155
- }
156
-
157
- var fetchUsingXHR = _async$4(function (url) {
158
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
159
- signal = _ref.signal,
160
- _ref$method = _ref.method,
161
- method = _ref$method === void 0 ? "GET" : _ref$method,
162
- _ref$credentials = _ref.credentials,
163
- credentials = _ref$credentials === void 0 ? "same-origin" : _ref$credentials,
164
- _ref$headers = _ref.headers,
165
- headers = _ref$headers === void 0 ? {} : _ref$headers,
166
- _ref$body = _ref.body,
167
- body = _ref$body === void 0 ? null : _ref$body;
168
-
169
- var headersPromise = createPromiseAndHooks();
170
- var bodyPromise = createPromiseAndHooks();
171
- var xhr = new XMLHttpRequest();
172
-
173
- var failure = function failure(error) {
174
- // if it was already resolved, we must reject the body promise
175
- if (headersPromise.settled) {
176
- bodyPromise.reject(error);
177
- } else {
178
- headersPromise.reject(error);
179
- }
180
- };
181
-
182
- var cleanup = function cleanup() {
183
- xhr.ontimeout = null;
184
- xhr.onerror = null;
185
- xhr.onload = null;
186
- xhr.onreadystatechange = null;
187
- };
188
-
189
- xhr.ontimeout = function () {
190
- cleanup();
191
- failure(new Error("xhr request timeout on ".concat(url, ".")));
192
- };
193
-
194
- xhr.onerror = function (error) {
195
- cleanup(); // unfortunately with have no clue why it fails
196
- // might be cors for instance
197
-
198
- failure(createRequestError(error, {
199
- url: url
200
- }));
201
- };
202
-
203
- xhr.onload = function () {
204
- cleanup();
205
- bodyPromise.resolve();
206
- };
207
-
208
- signal.addEventListener("abort", function () {
209
- xhr.abort();
210
- var abortError = new Error("aborted");
211
- abortError.name = "AbortError";
212
- failure(abortError);
213
- });
214
-
215
- xhr.onreadystatechange = function () {
216
- // https://developer.mozilla.org/fr/docs/Web/API/XMLHttpRequest/readyState
217
- var readyState = xhr.readyState;
218
-
219
- if (readyState === 2) {
220
- headersPromise.resolve();
221
- } else if (readyState === 4) {
222
- cleanup();
223
- bodyPromise.resolve();
224
- }
225
- };
226
-
227
- xhr.open(method, url, true);
228
- Object.keys(headers).forEach(function (key) {
229
- xhr.setRequestHeader(key, headers[key]);
230
- });
231
- xhr.withCredentials = computeWithCredentials({
232
- credentials: credentials,
233
- url: url
234
- });
235
-
236
- if ("responseType" in xhr && hasBlob) {
237
- xhr.responseType = "blob";
238
- }
239
-
240
- xhr.send(body);
241
- return _await$4(headersPromise, function () {
242
- // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseURL
243
- var responseUrl = "responseURL" in xhr ? xhr.responseURL : headers["x-request-url"];
244
- var responseStatus = xhr.status;
245
- var responseStatusText = xhr.statusText;
246
- var responseHeaders = getHeadersFromXHR(xhr);
247
-
248
- var readBody = function readBody() {
249
- return _await$4(bodyPromise, function () {
250
- var status = xhr.status; // in Chrome on file:/// URLs, status is 0
251
-
252
- if (status === 0) {
253
- responseStatus = 200;
254
- }
255
-
256
- var body = "response" in xhr ? xhr.response : xhr.responseText;
257
- return {
258
- responseBody: body,
259
- responseBodyType: detectBodyType(body)
260
- };
261
- });
262
- };
263
-
264
- var text = function text() {
265
- return _call$1(readBody, function (_ref2) {
266
- var responseBody = _ref2.responseBody,
267
- responseBodyType = _ref2.responseBodyType;
268
-
269
- if (responseBodyType === "blob") {
270
- return blobToText(responseBody);
271
- }
272
-
273
- if (responseBodyType === "formData") {
274
- throw new Error("could not read FormData body as text");
275
- }
276
-
277
- return responseBodyType === "dataView" ? arrayBufferToText(responseBody.buffer) : responseBodyType === "arrayBuffer" ? arrayBufferToText(responseBody) : String(responseBody);
278
- });
279
- };
280
-
281
- var json = function json() {
282
- return _call$1(text, JSON.parse);
283
- };
284
-
285
- var blob = _async$4(function () {
286
- if (!hasBlob) {
287
- throw new Error("blob not supported");
288
- }
289
-
290
- return _call$1(readBody, function (_ref3) {
291
- var responseBody = _ref3.responseBody,
292
- responseBodyType = _ref3.responseBodyType;
293
-
294
- if (responseBodyType === "blob") {
295
- return responseBody;
296
- }
297
-
298
- if (responseBodyType === "dataView") {
299
- return new Blob([cloneBuffer(responseBody.buffer)]);
300
- }
301
-
302
- if (responseBodyType === "arrayBuffer") {
303
- return new Blob([cloneBuffer(responseBody)]);
304
- }
305
-
306
- if (responseBodyType === "formData") {
307
- throw new Error("could not read FormData body as blob");
308
- }
309
-
310
- return new Blob([String(responseBody)]);
311
- });
312
- });
313
-
314
- var arrayBuffer = function arrayBuffer() {
315
- return _call$1(readBody, function (_ref4) {
316
- var responseBody = _ref4.responseBody,
317
- responseBodyType = _ref4.responseBodyType;
318
- return responseBodyType === "arrayBuffer" ? cloneBuffer(responseBody) : _call$1(blob, blobToArrayBuffer);
319
- });
320
- };
321
-
322
- var formData = _async$4(function () {
323
- if (!hasFormData) {
324
- throw new Error("formData not supported");
325
- }
326
-
327
- return _call$1(text, textToFormData);
328
- });
329
-
330
- return {
331
- url: responseUrl,
332
- status: responseStatus,
333
- statusText: responseStatusText,
334
- headers: responseHeaders,
335
- text: text,
336
- json: json,
337
- blob: blob,
338
- arrayBuffer: arrayBuffer,
339
- formData: formData
340
- };
341
- });
342
- });
343
-
344
- var canUseBlob = function canUseBlob() {
345
- if (typeof window.FileReader !== "function") return false;
346
- if (typeof window.Blob !== "function") return false;
347
-
348
- try {
349
- // eslint-disable-next-line no-new
350
- new Blob();
351
- return true;
352
- } catch (e) {
353
- return false;
354
- }
355
- };
356
-
357
- var hasBlob = canUseBlob();
358
- var hasFormData = typeof window.FormData === "function";
359
- var hasArrayBuffer = typeof window.ArrayBuffer === "function";
360
- var hasSearchParams = typeof window.URLSearchParams === "function";
361
-
362
- var createRequestError = function createRequestError(error, _ref5) {
363
- var url = _ref5.url;
364
- return new Error(createDetailedMessage("error during xhr request on ".concat(url, "."), _defineProperty({}, "error stack", error.stack)));
365
- };
366
-
367
- var createPromiseAndHooks = function createPromiseAndHooks() {
368
- var resolve;
369
- var reject;
370
- var promise = new Promise(function (res, rej) {
371
- resolve = function resolve(value) {
372
- promise.settled = true;
373
- res(value);
374
- };
375
-
376
- reject = function reject(value) {
377
- promise.settled = true;
378
- rej(value);
379
- };
380
- });
381
- promise.resolve = resolve;
382
- promise.reject = reject;
383
- return promise;
384
- }; // https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
385
-
386
-
387
- var computeWithCredentials = function computeWithCredentials(_ref6) {
388
- var credentials = _ref6.credentials,
389
- url = _ref6.url;
390
-
391
- if (credentials === "same-origin") {
392
- return originSameAsGlobalOrigin(url);
393
- }
394
-
395
- return credentials === "include";
396
- };
397
-
398
- var originSameAsGlobalOrigin = function originSameAsGlobalOrigin(url) {
399
- // if we cannot read globalOrigin from window.location.origin, let's consider it's ok
400
- if ((typeof window === "undefined" ? "undefined" : _typeof(window)) !== "object") return true;
401
- if (_typeof(window.location) !== "object") return true;
402
- var globalOrigin = window.location.origin;
403
- if (globalOrigin === "null") return true;
404
- return hrefToOrigin(url) === globalOrigin;
405
- };
406
-
407
- var detectBodyType = function detectBodyType(body) {
408
- if (!body) {
409
- return "";
410
- }
411
-
412
- if (typeof body === "string") {
413
- return "text";
414
- }
415
-
416
- if (hasBlob && Blob.prototype.isPrototypeOf(body)) {
417
- return "blob";
418
- }
419
-
420
- if (hasFormData && FormData.prototype.isPrototypeOf(body)) {
421
- return "formData";
422
- }
423
-
424
- if (hasArrayBuffer) {
425
- if (hasBlob && isDataView(body)) {
426
- return "dataView";
427
- }
428
-
429
- if (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body)) {
430
- return "arrayBuffer";
431
- }
432
- }
433
-
434
- if (hasSearchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
435
- return "searchParams";
436
- }
437
-
438
- return "";
439
- }; // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders#Example
440
-
441
-
442
- var getHeadersFromXHR = function getHeadersFromXHR(xhr) {
443
- var headerMap = {};
444
- var headersString = xhr.getAllResponseHeaders();
445
- if (headersString === "") return headerMap;
446
- var lines = headersString.trim().split(/[\r\n]+/);
447
- lines.forEach(function (line) {
448
- var parts = line.split(": ");
449
- var name = parts.shift();
450
- var value = parts.join(": ");
451
- headerMap[name.toLowerCase()] = value;
452
- });
453
- return headerMap;
454
- };
455
-
456
- var hrefToOrigin = function hrefToOrigin(href) {
457
- var scheme = hrefToScheme(href);
458
-
459
- if (scheme === "file") {
460
- return "file://";
461
- }
462
-
463
- if (scheme === "http" || scheme === "https") {
464
- var secondProtocolSlashIndex = scheme.length + "://".length;
465
- var pathnameSlashIndex = href.indexOf("/", secondProtocolSlashIndex);
466
- if (pathnameSlashIndex === -1) return href;
467
- return href.slice(0, pathnameSlashIndex);
468
- }
469
-
470
- return href.slice(0, scheme.length + 1);
471
- };
472
-
473
- var hrefToScheme = function hrefToScheme(href) {
474
- var colonIndex = href.indexOf(":");
475
- if (colonIndex === -1) return "";
476
- return href.slice(0, colonIndex);
477
- };
478
-
479
- var isDataView = function isDataView(obj) {
480
- return obj && DataView.prototype.isPrototypeOf(obj);
481
- };
482
-
483
- var isArrayBufferView = ArrayBuffer.isView || function () {
484
- var viewClasses = ["[object Int8Array]", "[object Uint8Array]", "[object Uint8ClampedArray]", "[object Int16Array]", "[object Uint16Array]", "[object Int32Array]", "[object Uint32Array]", "[object Float32Array]", "[object Float64Array]"];
485
- return function (value) {
486
- return value && viewClasses.includes(Object.prototype.toString.call(value));
487
- };
488
- }();
489
-
490
- var textToFormData = function textToFormData(text) {
491
- var form = new FormData();
492
- text.trim().split("&").forEach(function (bytes) {
493
- if (bytes) {
494
- var split = bytes.split("=");
495
- var name = split.shift().replace(/\+/g, " ");
496
- var value = split.join("=").replace(/\+/g, " ");
497
- form.append(decodeURIComponent(name), decodeURIComponent(value));
498
- }
499
- });
500
- return form;
501
- };
502
-
503
- var blobToArrayBuffer = _async$4(function (blob) {
504
- var reader = new FileReader();
505
- var promise = fileReaderReady(reader);
506
- reader.readAsArrayBuffer(blob);
507
- return promise;
508
- });
509
-
510
- var blobToText = function blobToText(blob) {
511
- var reader = new FileReader();
512
- var promise = fileReaderReady(reader);
513
- reader.readAsText(blob);
514
- return promise;
515
- };
516
-
517
- var arrayBufferToText = function arrayBufferToText(arrayBuffer) {
518
- var view = new Uint8Array(arrayBuffer);
519
- var chars = new Array(view.length);
520
- var i = 0;
521
-
522
- while (i < view.length) {
523
- chars[i] = String.fromCharCode(view[i]);
524
- i++;
525
- }
526
-
527
- return chars.join("");
528
- };
529
-
530
- var fileReaderReady = function fileReaderReady(reader) {
531
- return new Promise(function (resolve, reject) {
532
- reader.onload = function () {
533
- resolve(reader.result);
534
- };
535
-
536
- reader.onerror = function () {
537
- reject(reader.error);
538
- };
539
- });
540
- };
541
-
542
- var cloneBuffer = function cloneBuffer(buffer) {
543
- if (buffer.slice) {
544
- return buffer.slice(0);
545
- }
546
-
547
- var view = new Uint8Array(buffer.byteLength);
548
- view.set(new Uint8Array(buffer));
549
- return view.buffer;
550
- };
551
-
552
- var _excluded = ["mode"];
553
-
554
- function _await$3(value, then, direct) {
555
- if (direct) {
556
- return then ? then(value) : value;
557
- }
558
-
559
- if (!value || !value.then) {
560
- value = Promise.resolve(value);
561
- }
562
-
563
- return then ? value.then(then) : value;
564
- }
565
-
566
- var fetchNative = _async$3(function (url) {
567
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
568
-
569
- var _ref$mode = _ref.mode,
570
- mode = _ref$mode === void 0 ? "cors" : _ref$mode,
571
- options = _objectWithoutProperties(_ref, _excluded);
572
-
573
- return _await$3(window.fetch(url, _objectSpread2({
574
- mode: mode
575
- }, options)), function (response) {
576
- return {
577
- url: response.url,
578
- status: response.status,
579
- statusText: "",
580
- headers: responseToHeaders(response),
581
- text: function text() {
582
- return response.text();
583
- },
584
- json: function json() {
585
- return response.json();
586
- },
587
- blob: function blob() {
588
- return response.blob();
589
- },
590
- arrayBuffer: function arrayBuffer() {
591
- return response.arrayBuffer();
592
- },
593
- formData: function formData() {
594
- return response.formData();
595
- }
596
- };
597
- });
598
- });
599
-
600
- function _async$3(f) {
601
- return function () {
602
- for (var args = [], i = 0; i < arguments.length; i++) {
603
- args[i] = arguments[i];
604
- }
605
-
606
- try {
607
- return Promise.resolve(f.apply(this, args));
608
- } catch (e) {
609
- return Promise.reject(e);
610
- }
611
- };
612
- }
613
-
614
- var responseToHeaders = function responseToHeaders(response) {
615
- var headers = {};
616
- response.headers.forEach(function (value, name) {
617
- headers[name] = value;
618
- });
619
- return headers;
620
- };
621
-
622
- var fetchUrl = typeof window.fetch === "function" && typeof window.AbortController === "function" ? fetchNative : fetchUsingXHR;
623
-
624
- function _await$2(value, then, direct) {
625
- if (direct) {
626
- return then ? then(value) : value;
627
- }
628
-
629
- if (!value || !value.then) {
630
- value = Promise.resolve(value);
631
- }
632
-
633
- return then ? value.then(then) : value;
634
- }
635
-
636
- function _async$2(f) {
637
- return function () {
638
- for (var args = [], i = 0; i < arguments.length; i++) {
639
- args[i] = arguments[i];
640
- }
641
-
642
- try {
643
- return Promise.resolve(f.apply(this, args));
644
- } catch (e) {
645
- return Promise.reject(e);
646
- }
647
- };
648
- }
649
-
650
- var fetchJson = _async$2(function (url) {
651
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
652
- return _await$2(fetchUrl(url, options), function (response) {
653
- return _await$2(response.json());
654
- });
655
- });
656
-
657
- var COMPILE_ID_OTHERWISE = "otherwise";
658
-
659
- var computeCompileIdFromGroupId = function computeCompileIdFromGroupId(_ref) {
660
- var groupId = _ref.groupId,
661
- groupMap = _ref.groupMap;
662
-
663
- if (typeof groupId === "undefined") {
664
- if (COMPILE_ID_OTHERWISE in groupMap) {
665
- return COMPILE_ID_OTHERWISE;
666
- }
667
-
668
- var keys = Object.keys(groupMap);
669
-
670
- if (keys.length === 1) {
671
- return keys[0];
672
- }
673
-
674
- throw new Error(createUnexpectedGroupIdMessage({
675
- groupMap: groupMap
676
- }));
677
- }
678
-
679
- if (groupId in groupMap === false) {
680
- throw new Error(createUnexpectedGroupIdMessage({
681
- groupId: groupId,
682
- groupMap: groupMap
683
- }));
684
- }
685
-
686
- return groupId;
687
- };
688
-
689
- var createUnexpectedGroupIdMessage = function createUnexpectedGroupIdMessage(_ref2) {
690
- var _createDetailedMessag;
691
-
692
- var compileId = _ref2.compileId,
693
- groupMap = _ref2.groupMap;
694
- return createDetailedMessage("unexpected groupId.", (_createDetailedMessag = {}, _defineProperty(_createDetailedMessag, "expected compiled id", Object.keys(groupMap)), _defineProperty(_createDetailedMessag, "received compile id", compileId), _createDetailedMessag));
695
- };
696
-
697
- var firstMatch = function firstMatch(regexp, string) {
698
- var match = string.match(regexp);
699
- return match && match.length > 0 ? match[1] || undefined : undefined;
700
- };
701
- var secondMatch = function secondMatch(regexp, string) {
702
- var match = string.match(regexp);
703
- return match && match.length > 1 ? match[2] || undefined : undefined;
704
- };
705
- var userAgentToVersion = function userAgentToVersion(userAgent) {
706
- return firstMatch(/version\/(\d+(\.?_?\d+)+)/i, userAgent) || undefined;
707
- };
708
-
709
- var detectAndroid = function detectAndroid() {
710
- return navigatorToBrowser$1(window.navigator);
711
- };
712
-
713
- var navigatorToBrowser$1 = function navigatorToBrowser(_ref) {
714
- var userAgent = _ref.userAgent,
715
- appVersion = _ref.appVersion;
716
-
717
- if (/(android)/i.test(userAgent)) {
718
- return {
719
- name: "android",
720
- version: firstMatch(/Android (\d+(\.?_?\d+)+)/i, appVersion)
721
- };
722
- }
723
-
724
- return null;
725
- };
726
-
727
- var detectInternetExplorer = function detectInternetExplorer() {
728
- return userAgentToBrowser$5(window.navigator.userAgent);
729
- };
730
-
731
- var userAgentToBrowser$5 = function userAgentToBrowser(userAgent) {
732
- if (/msie|trident/i.test(userAgent)) {
733
- return {
734
- name: "ie",
735
- version: firstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i, userAgent)
736
- };
737
- }
738
-
739
- return null;
740
- };
741
-
742
- var detectOpera = function detectOpera() {
743
- return userAgentToBrowser$4(window.navigator.userAgent);
744
- };
745
-
746
- var userAgentToBrowser$4 = function userAgentToBrowser(userAgent) {
747
- // opera below 13
748
- if (/opera/i.test(userAgent)) {
749
- return {
750
- name: "opera",
751
- version: userAgentToVersion(userAgent) || firstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i, userAgent)
752
- };
753
- } // opera above 13
754
-
755
-
756
- if (/opr\/|opios/i.test(userAgent)) {
757
- return {
758
- name: "opera",
759
- version: firstMatch(/(?:opr|opios)[\s/](\S+)/i, userAgent) || userAgentToVersion(userAgent)
760
- };
761
- }
762
-
763
- return null;
764
- };
765
-
766
- var detectEdge = function detectEdge() {
767
- return userAgentToBrowser$3(window.navigator.userAgent);
768
- };
769
-
770
- var userAgentToBrowser$3 = function userAgentToBrowser(userAgent) {
771
- if (/edg([ea]|ios)/i.test(userAgent)) {
772
- return {
773
- name: "edge",
774
- version: secondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i, userAgent)
775
- };
776
- }
777
-
778
- return null;
779
- };
780
-
781
- var detectFirefox = function detectFirefox() {
782
- return userAgentToBrowser$2(window.navigator.userAgent);
783
- };
784
-
785
- var userAgentToBrowser$2 = function userAgentToBrowser(userAgent) {
786
- if (/firefox|iceweasel|fxios/i.test(userAgent)) {
787
- return {
788
- name: "firefox",
789
- version: firstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i, userAgent)
790
- };
791
- }
792
-
793
- return null;
794
- };
795
-
796
- var detectChrome = function detectChrome() {
797
- return userAgentToBrowser$1(window.navigator.userAgent);
798
- };
799
-
800
- var userAgentToBrowser$1 = function userAgentToBrowser(userAgent) {
801
- if (/chromium/i.test(userAgent)) {
802
- return {
803
- name: "chrome",
804
- version: firstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i, userAgent) || userAgentToVersion(userAgent)
805
- };
806
- }
807
-
808
- if (/chrome|crios|crmo/i.test(userAgent)) {
809
- return {
810
- name: "chrome",
811
- version: firstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i, userAgent)
812
- };
813
- }
814
-
815
- return null;
816
- };
817
-
818
- var detectSafari = function detectSafari() {
819
- return userAgentToBrowser(window.navigator.userAgent);
820
- };
821
-
822
- var userAgentToBrowser = function userAgentToBrowser(userAgent) {
823
- if (/safari|applewebkit/i.test(userAgent)) {
824
- return {
825
- name: "safari",
826
- version: userAgentToVersion(userAgent)
827
- };
828
- }
829
-
830
- return null;
831
- };
832
-
833
- var detectElectron = function detectElectron() {
834
- return null;
835
- }; // TODO
836
-
837
- var detectIOS = function detectIOS() {
838
- return navigatorToBrowser(window.navigator);
839
- };
840
-
841
- var navigatorToBrowser = function navigatorToBrowser(_ref) {
842
- var userAgent = _ref.userAgent,
843
- appVersion = _ref.appVersion;
844
-
845
- if (/iPhone;/.test(userAgent)) {
846
- return {
847
- name: "ios",
848
- version: firstMatch(/OS (\d+(\.?_?\d+)+)/i, appVersion)
849
- };
850
- }
851
-
852
- if (/iPad;/.test(userAgent)) {
853
- return {
854
- name: "ios",
855
- version: firstMatch(/OS (\d+(\.?_?\d+)+)/i, appVersion)
856
- };
857
- }
858
-
859
- return null;
860
- };
861
-
862
- // https://github.com/Ahmdrza/detect-browser/blob/26254f85cf92795655a983bfd759d85f3de850c6/detect-browser.js#L1
863
-
864
- var detectorCompose = function detectorCompose(detectors) {
865
- return function () {
866
- var i = 0;
867
-
868
- while (i < detectors.length) {
869
- var _detector = detectors[i];
870
- i++;
871
-
872
- var result = _detector();
873
-
874
- if (result) {
875
- return result;
876
- }
877
- }
878
-
879
- return null;
880
- };
881
- };
882
-
883
- var detector = detectorCompose([detectOpera, detectInternetExplorer, detectEdge, detectFirefox, detectChrome, detectSafari, detectElectron, detectIOS, detectAndroid]);
884
- var detectBrowser = function detectBrowser() {
885
- var _ref = detector() || {},
886
- _ref$name = _ref.name,
887
- name = _ref$name === void 0 ? "other" : _ref$name,
888
- _ref$version = _ref.version,
889
- version = _ref$version === void 0 ? "unknown" : _ref$version;
890
-
891
- return {
892
- name: normalizeName(name),
893
- version: normalizeVersion(version)
894
- };
895
- };
896
-
897
- var normalizeName = function normalizeName(name) {
898
- return name.toLowerCase();
899
- };
900
-
901
- var normalizeVersion = function normalizeVersion(version) {
902
- if (version.indexOf(".") > -1) {
903
- var parts = version.split("."); // remove extraneous .
904
-
905
- return parts.slice(0, 3).join(".");
906
- }
907
-
908
- if (version.indexOf("_") > -1) {
909
- var _parts = version.split("_"); // remove extraneous _
910
-
911
-
912
- return _parts.slice(0, 3).join("_");
913
- }
914
-
915
- return version;
916
- };
917
-
918
- var valueToVersion = function valueToVersion(value) {
919
- if (typeof value === "number") {
920
- return numberToVersion(value);
921
- }
922
-
923
- if (typeof value === "string") {
924
- return stringToVersion(value);
925
- }
926
-
927
- throw new TypeError("version must be a number or a string, got ".concat(value));
928
- };
929
-
930
- var numberToVersion = function numberToVersion(number) {
931
- return {
932
- major: number,
933
- minor: 0,
934
- patch: 0
935
- };
936
- };
937
-
938
- var stringToVersion = function stringToVersion(string) {
939
- if (string.indexOf(".") > -1) {
940
- var parts = string.split(".");
941
- return {
942
- major: Number(parts[0]),
943
- minor: parts[1] ? Number(parts[1]) : 0,
944
- patch: parts[2] ? Number(parts[2]) : 0
945
- };
946
- }
947
-
948
- if (isNaN(string)) {
949
- return {
950
- major: 0,
951
- minor: 0,
952
- patch: 0
953
- };
954
- }
955
-
956
- return {
957
- major: Number(string),
958
- minor: 0,
959
- patch: 0
960
- };
961
- };
962
-
963
- var versionCompare = function versionCompare(versionA, versionB) {
964
- var semanticVersionA = valueToVersion(versionA);
965
- var semanticVersionB = valueToVersion(versionB);
966
- var majorDiff = semanticVersionA.major - semanticVersionB.major;
967
-
968
- if (majorDiff > 0) {
969
- return majorDiff;
970
- }
971
-
972
- if (majorDiff < 0) {
973
- return majorDiff;
974
- }
975
-
976
- var minorDiff = semanticVersionA.minor - semanticVersionB.minor;
977
-
978
- if (minorDiff > 0) {
979
- return minorDiff;
980
- }
981
-
982
- if (minorDiff < 0) {
983
- return minorDiff;
984
- }
985
-
986
- var patchDiff = semanticVersionA.patch - semanticVersionB.patch;
987
-
988
- if (patchDiff > 0) {
989
- return patchDiff;
990
- }
991
-
992
- if (patchDiff < 0) {
993
- return patchDiff;
994
- }
995
-
996
- return 0;
997
- };
998
-
999
- var versionIsBelow = function versionIsBelow(versionSupposedBelow, versionSupposedAbove) {
1000
- return versionCompare(versionSupposedBelow, versionSupposedAbove) < 0;
1001
- };
1002
-
1003
- var findHighestVersion = function findHighestVersion() {
1004
- for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {
1005
- values[_key] = arguments[_key];
1006
- }
1007
-
1008
- if (values.length === 0) throw new Error("missing argument");
1009
- return values.reduce(function (highestVersion, value) {
1010
- if (versionIsBelow(highestVersion, value)) {
1011
- return value;
1012
- }
1013
-
1014
- return highestVersion;
1015
- });
1016
- };
1017
-
1018
- var resolveGroup = function resolveGroup(_ref, groupMap) {
1019
- var name = _ref.name,
1020
- version = _ref.version;
1021
- return Object.keys(groupMap).find(function (compileIdCandidate) {
1022
- var minRuntimeVersions = groupMap[compileIdCandidate].minRuntimeVersions;
1023
- var versionForGroup = minRuntimeVersions[name];
1024
-
1025
- if (!versionForGroup) {
1026
- return false;
1027
- }
1028
-
1029
- var highestVersion = findHighestVersion(version, versionForGroup);
1030
- return highestVersion === version;
1031
- });
1032
- };
1033
-
1034
- function _await$1(value, then, direct) {
1035
- if (direct) {
1036
- return then ? then(value) : value;
1037
- }
1038
-
1039
- if (!value || !value.then) {
1040
- value = Promise.resolve(value);
1041
- }
1042
-
1043
- return then ? value.then(then) : value;
1044
- }
1045
-
1046
- function _async$1(f) {
1047
- return function () {
1048
- for (var args = [], i = 0; i < arguments.length; i++) {
1049
- args[i] = arguments[i];
1050
- }
1051
-
1052
- try {
1053
- return Promise.resolve(f.apply(this, args));
1054
- } catch (e) {
1055
- return Promise.reject(e);
1056
- }
1057
- };
1058
- }
1059
-
1060
- function _call(body, then, direct) {
1061
- if (direct) {
1062
- return then ? then(body()) : body();
1063
- }
1064
-
1065
- try {
1066
- var result = Promise.resolve(body());
1067
- return then ? result.then(then) : result;
1068
- } catch (e) {
1069
- return Promise.reject(e);
1070
- }
1071
- }
1072
-
1073
- function _invoke(body, then) {
1074
- var result = body();
1075
-
1076
- if (result && result.then) {
1077
- return result.then(then);
1078
- }
1079
-
1080
- return then(result);
1081
- }
1082
-
1083
- function _catch(body, recover) {
1084
- try {
1085
- var result = body();
1086
- } catch (e) {
1087
- return recover(e);
1088
- }
1089
-
1090
- if (result && result.then) {
1091
- return result.then(void 0, recover);
1092
- }
1093
-
1094
- return result;
1095
- }
1096
-
1097
- var scanBrowserRuntimeFeatures = _async$1(function () {
1098
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1099
- _ref$coverageHandledF = _ref.coverageHandledFromOutside,
1100
- coverageHandledFromOutside = _ref$coverageHandledF === void 0 ? false : _ref$coverageHandledF,
1101
- _ref$failFastOnFeatur = _ref.failFastOnFeatureDetection,
1102
- failFastOnFeatureDetection = _ref$failFastOnFeatur === void 0 ? false : _ref$failFastOnFeatur;
1103
-
1104
- return _await$1(fetchJson("/.jsenv/__compile_server_meta__.json"), function (_ref2) {
1105
- var outDirectoryRelativeUrl = _ref2.outDirectoryRelativeUrl,
1106
- inlineImportMapIntoHTML = _ref2.inlineImportMapIntoHTML,
1107
- customCompilerPatterns = _ref2.customCompilerPatterns,
1108
- compileServerGroupMap = _ref2.compileServerGroupMap;
1109
- var browser = detectBrowser();
1110
- var compileId = computeCompileIdFromGroupId({
1111
- groupId: resolveGroup(browser, compileServerGroupMap),
1112
- groupMap: compileServerGroupMap
1113
- });
1114
- var groupInfo = compileServerGroupMap[compileId];
1115
- var featuresReport = {
1116
- importmap: undefined,
1117
- dynamicImport: undefined,
1118
- topLevelAwait: undefined,
1119
- jsonImportAssertions: undefined,
1120
- cssImportAssertions: undefined,
1121
- newStylesheet: undefined
1122
- };
1123
- return _await$1(detectSupportedFeatures({
1124
- featuresReport: featuresReport,
1125
- failFastOnFeatureDetection: failFastOnFeatureDetection,
1126
- inlineImportMapIntoHTML: inlineImportMapIntoHTML
1127
- }), function () {
1128
- return _await$1(pluginRequiredNamesFromGroupInfo(groupInfo, {
1129
- featuresReport: featuresReport,
1130
- coverageHandledFromOutside: coverageHandledFromOutside
1131
- }), function (pluginRequiredNameArray) {
1132
- var canAvoidCompilation = customCompilerPatterns.length === 0 && pluginRequiredNameArray.length === 0 && featuresReport.importmap && featuresReport.dynamicImport && featuresReport.topLevelAwait;
1133
- return {
1134
- canAvoidCompilation: canAvoidCompilation,
1135
- featuresReport: featuresReport,
1136
- customCompilerPatterns: customCompilerPatterns,
1137
- pluginRequiredNameArray: pluginRequiredNameArray,
1138
- inlineImportMapIntoHTML: inlineImportMapIntoHTML,
1139
- outDirectoryRelativeUrl: outDirectoryRelativeUrl,
1140
- compileId: compileId,
1141
- browser: browser
1142
- };
1143
- });
1144
- });
1145
- });
1146
- });
1147
-
1148
- var detectSupportedFeatures = _async$1(function (_ref3) {
1149
- var featuresReport = _ref3.featuresReport,
1150
- failFastOnFeatureDetection = _ref3.failFastOnFeatureDetection,
1151
- inlineImportMapIntoHTML = _ref3.inlineImportMapIntoHTML;
1152
- // start testing importmap support first and not in paralell
1153
- // so that there is not module script loaded beore importmap is injected
1154
- // it would log an error in chrome console and return undefined
1155
- return _await$1(supportsImportmap({
1156
- // chrome supports inline but not remote importmap
1157
- // https://github.com/WICG/import-maps/issues/235
1158
- // at this stage we won't know if the html file will use
1159
- // an importmap or not and if that importmap is inline or specified with an src
1160
- // so we should test if browser support local and remote importmap.
1161
- // But there exploring server can inline importmap by transforming html
1162
- // and in that case we can test only the local importmap support
1163
- // so we test importmap support and the remote one
1164
- remote: !inlineImportMapIntoHTML
1165
- }), function (importmap) {
1166
- featuresReport.importmap = importmap;
1167
-
1168
- if (!importmap && failFastOnFeatureDetection) {
1169
- return;
1170
- }
1171
-
1172
- return _call(supportsDynamicImport, function (dynamicImport) {
1173
- featuresReport.dynamicImport = dynamicImport;
1174
-
1175
- if (!dynamicImport && failFastOnFeatureDetection) {
1176
- return;
1177
- }
1178
-
1179
- return _call(supportsTopLevelAwait, function (topLevelAwait) {
1180
- featuresReport.topLevelAwait = topLevelAwait;
1181
- });
1182
- });
1183
- });
1184
- });
1185
-
1186
- var pluginRequiredNamesFromGroupInfo = _async$1(function (groupInfo, _ref4) {
1187
- var featuresReport = _ref4.featuresReport,
1188
- coverageHandledFromOutside = _ref4.coverageHandledFromOutside;
1189
- var pluginRequiredNameArray = groupInfo.pluginRequiredNameArray;
1190
- var requiredPluginNames = pluginRequiredNameArray.slice();
1191
-
1192
- var markPluginAsSupported = function markPluginAsSupported(name) {
1193
- var index = requiredPluginNames.indexOf(name);
1194
-
1195
- if (index > -1) {
1196
- requiredPluginNames.splice(index, 1);
1197
- }
1198
- }; // When instrumentation CAN be handed by playwright
1199
- // https://playwright.dev/docs/api/class-chromiumcoverage#chromiumcoveragestartjscoverageoptions
1200
- // coverageHandledFromOutside is true and "transform-instrument" becomes non mandatory
1201
-
1202
-
1203
- if (coverageHandledFromOutside) {
1204
- markPluginAsSupported("transform-instrument");
1205
- }
1206
-
1207
- return _invoke(function () {
1208
- if (pluginRequiredNameArray.includes("transform-import-assertions")) {
1209
- return _call(supportsJsonImportAssertions, function (jsonImportAssertions) {
1210
- featuresReport.jsonImportAssertions = jsonImportAssertions;
1211
- return _call(supportsCssImportAssertions, function (cssImportAssertions) {
1212
- featuresReport.cssImportAssertions = cssImportAssertions;
1213
-
1214
- if (jsonImportAssertions && cssImportAssertions) {
1215
- markPluginAsSupported("transform-import-assertions");
1216
- }
1217
- });
1218
- });
1219
- }
1220
- }, function () {
1221
- if (pluginRequiredNameArray.includes("new-stylesheet-as-jsenv-import")) {
1222
- var newStylesheet = supportsNewStylesheet();
1223
- featuresReport.newStylesheet = newStylesheet;
1224
- markPluginAsSupported("new-stylesheet-as-jsenv-import");
1225
- }
1226
-
1227
- return requiredPluginNames;
1228
- });
1229
- });
1230
-
1231
- var supportsNewStylesheet = function supportsNewStylesheet() {
1232
- try {
1233
- // eslint-disable-next-line no-new
1234
- new CSSStyleSheet();
1235
- return true;
1236
- } catch (e) {
1237
- return false;
1238
- }
1239
- };
1240
-
1241
- var supportsImportmap = _async$1(function () {
1242
- var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1243
- _ref5$remote = _ref5.remote,
1244
- remote = _ref5$remote === void 0 ? true : _ref5$remote;
1245
-
1246
- var specifier = asBase64Url("export default false");
1247
- var importMap = {
1248
- imports: _defineProperty({}, specifier, asBase64Url("export default true"))
1249
- };
1250
- var importmapScript = document.createElement("script");
1251
- var importmapString = JSON.stringify(importMap, null, " ");
1252
- importmapScript.type = "importmap";
1253
-
1254
- if (remote) {
1255
- importmapScript.src = "data:application/json;base64,".concat(window.btoa(importmapString));
1256
- } else {
1257
- importmapScript.textContent = importmapString;
1258
- }
1259
-
1260
- document.body.appendChild(importmapScript);
1261
- var scriptModule = document.createElement("script");
1262
- scriptModule.type = "module";
1263
- scriptModule.src = asBase64Url("import supported from \"".concat(specifier, "\"; window.__importmap_supported = supported"));
1264
- return new Promise(function (resolve, reject) {
1265
- scriptModule.onload = function () {
1266
- var supported = window.__importmap_supported;
1267
- delete window.__importmap_supported;
1268
- document.body.removeChild(scriptModule);
1269
- document.body.removeChild(importmapScript);
1270
- resolve(supported);
1271
- };
1272
-
1273
- scriptModule.onerror = function () {
1274
- document.body.removeChild(scriptModule);
1275
- document.body.removeChild(importmapScript);
1276
- reject();
1277
- };
1278
-
1279
- document.body.appendChild(scriptModule);
1280
- });
1281
- });
1282
-
1283
- var supportsDynamicImport = _async$1(function () {
1284
- var moduleSource = asBase64Url("export default 42");
1285
- return _catch(function () {
1286
- return _await$1(import(moduleSource), function (namespace) {
1287
- return namespace.default === 42;
1288
- });
1289
- }, function () {
1290
- return false;
1291
- });
1292
- });
1293
-
1294
- var supportsTopLevelAwait = _async$1(function () {
1295
- var moduleSource = asBase64Url("export default await Promise.resolve(42)");
1296
- return _catch(function () {
1297
- return _await$1(import(moduleSource), function (namespace) {
1298
- return namespace.default === 42;
1299
- });
1300
- }, function () {
1301
- return false;
1302
- });
1303
- });
1304
-
1305
- var supportsJsonImportAssertions = _async$1(function () {
1306
- var jsonBase64Url = asBase64Url("42", "application/json");
1307
- var moduleSource = asBase64Url("export { default } from \"".concat(jsonBase64Url, "\" assert { type: \"json\" }"));
1308
- return _catch(function () {
1309
- return _await$1(import(moduleSource), function (namespace) {
1310
- return namespace.default === 42;
1311
- });
1312
- }, function () {
1313
- return false;
1314
- });
1315
- });
1316
-
1317
- var supportsCssImportAssertions = _async$1(function () {
1318
- var cssBase64Url = asBase64Url("p { color: red; }", "text/css");
1319
- var moduleSource = asBase64Url("export { default } from \"".concat(cssBase64Url, "\" assert { type: \"css\" }"));
1320
- return _catch(function () {
1321
- return _await$1(import(moduleSource), function (namespace) {
1322
- return namespace.default instanceof CSSStyleSheet;
1323
- });
1324
- }, function () {
1325
- return false;
1326
- });
1327
- });
1328
-
1329
- var asBase64Url = function asBase64Url(text) {
1330
- var mimeType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "application/javascript";
1331
- return "data:".concat(mimeType, ";base64,").concat(window.btoa(text));
1332
- };
1333
-
1334
- function _await(value, then, direct) {
1335
- if (direct) {
1336
- return then ? then(value) : value;
1337
- }
1338
-
1339
- if (!value || !value.then) {
1340
- value = Promise.resolve(value);
1341
- }
1342
-
1343
- return then ? value.then(then) : value;
1344
- }
1345
-
1346
- var redirect = _async(function () {
1347
- var redirectTarget = new URLSearchParams(window.location.search).get("redirect");
1348
- return _await(scanBrowserRuntimeFeatures({
1349
- failFastOnFeatureDetection: true
1350
- }), function (browserRuntimeFeaturesReport) {
1351
- var href = "".concat(getDirectoryUrl(browserRuntimeFeaturesReport)).concat(redirectTarget);
1352
- window.location.href = href;
1353
- });
1354
- });
1355
-
1356
- function _async(f) {
1357
- return function () {
1358
- for (var args = [], i = 0; i < arguments.length; i++) {
1359
- args[i] = arguments[i];
1360
- }
1361
-
1362
- try {
1363
- return Promise.resolve(f.apply(this, args));
1364
- } catch (e) {
1365
- return Promise.reject(e);
1366
- }
1367
- };
1368
- }
1369
-
1370
- var getDirectoryUrl = function getDirectoryUrl(_ref) {
1371
- var canAvoidCompilation = _ref.canAvoidCompilation,
1372
- outDirectoryRelativeUrl = _ref.outDirectoryRelativeUrl,
1373
- compileId = _ref.compileId;
1374
-
1375
- if (canAvoidCompilation) {
1376
- return "/";
1377
- }
1378
-
1379
- return "/".concat(outDirectoryRelativeUrl).concat(compileId, "/");
1380
- };
1381
-
1382
- redirect();
1383
-
1384
- })();
1385
-
1386
- //# sourceMappingURL=jsenv_exploring_redirector.js.map