@jsenv/core 23.1.3 → 23.2.2

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 (82) hide show
  1. package/dist/jsenv_browser_system.js +36 -99
  2. package/dist/jsenv_browser_system.js.map +12 -21
  3. package/dist/jsenv_compile_proxy.js +18 -82
  4. package/dist/jsenv_compile_proxy.js.map +11 -21
  5. package/dist/jsenv_exploring_index.js +127 -274
  6. package/dist/jsenv_exploring_index.js.map +76 -90
  7. package/dist/jsenv_exploring_redirector.js +21 -89
  8. package/dist/jsenv_exploring_redirector.js.map +13 -25
  9. package/dist/jsenv_toolbar.js +81 -149
  10. package/dist/jsenv_toolbar.js.map +50 -61
  11. package/dist/jsenv_toolbar_injector.js +185 -231
  12. package/dist/jsenv_toolbar_injector.js.map +30 -42
  13. package/package.json +8 -9
  14. package/src/abort/abortable.js +172 -0
  15. package/src/abort/callback_list.js +64 -0
  16. package/src/abort/callback_race.js +34 -0
  17. package/src/abort/cleaner.js +22 -0
  18. package/src/abort/main.js +32 -0
  19. package/src/abort/process_teardown_events.js +59 -0
  20. package/src/buildProject.js +132 -123
  21. package/src/execute.js +108 -107
  22. package/src/executeTestPlan.js +107 -125
  23. package/src/importUsingChildProcess.js +2 -1
  24. package/src/internal/browser-launcher/executeHtmlFile.js +33 -12
  25. package/src/internal/browser-utils/fetch-browser.js +4 -29
  26. package/src/internal/browser-utils/fetchUsingXHR.js +5 -7
  27. package/src/internal/building/buildUsingRollup.js +60 -24
  28. package/src/internal/building/createJsenvRollupPlugin.js +13 -31
  29. package/src/internal/building/ressource_builder.js +3 -6
  30. package/src/internal/building/sourcemap_loader.js +4 -5
  31. package/src/internal/building/url_fetcher.js +2 -5
  32. package/src/internal/building/url_loader.js +3 -6
  33. package/src/internal/compiling/compileFile.js +1 -2
  34. package/src/internal/compiling/createCompiledFileService.js +8 -9
  35. package/src/internal/compiling/startCompileServer.js +74 -135
  36. package/src/internal/executing/coverage/generateCoverageJsonFile.js +20 -3
  37. package/src/internal/executing/coverage/relativeUrlToEmptyCoverage.js +19 -30
  38. package/src/internal/executing/coverage/reportToCoverage.js +44 -24
  39. package/src/internal/executing/coverage/v8CoverageFromNodeV8Directory.js +2 -15
  40. package/src/internal/executing/createSummaryLog.js +50 -37
  41. package/src/internal/executing/executeConcurrently.js +89 -47
  42. package/src/internal/executing/executePlan.js +33 -7
  43. package/src/internal/executing/executionLogs.js +25 -28
  44. package/src/internal/executing/execution_colors.js +15 -0
  45. package/src/internal/executing/generateExecutionSteps.js +3 -2
  46. package/src/internal/executing/launchAndExecute.js +217 -261
  47. package/src/internal/exploring/fetchExploringJson.js +3 -4
  48. package/src/internal/fetchUrl.js +6 -2
  49. package/src/internal/logs/log_style.js +16 -28
  50. package/src/internal/logs/msAsDuration.js +1 -1
  51. package/src/internal/node-launcher/createChildProcessOptions.js +4 -5
  52. package/src/internal/node-launcher/createControllableNodeProcess.js +117 -229
  53. package/src/internal/node-launcher/kill_process_tree.js +76 -0
  54. package/src/internal/node-launcher/nodeControllableFile.mjs +16 -10
  55. package/src/internal/{promise_track_race.js → promise_race.js} +2 -2
  56. package/src/internal/runtime/s.js +25 -24
  57. package/src/internal/toolbar/toolbar.html +157 -61
  58. package/src/internal/toolbar/toolbar.injector.js +8 -0
  59. package/src/internal/toolbar/util/animation.js +3 -7
  60. package/src/internal/toolbar/util/fetching.js +1 -30
  61. package/src/jsenvServiceWorkerFinalizer.js +1 -2
  62. package/src/launchBrowser.js +131 -127
  63. package/src/launchNode.js +29 -17
  64. package/src/playwright_browser_versions.js +3 -3
  65. package/src/requireUsingChildProcess.js +2 -1
  66. package/src/signal/signal.js +65 -0
  67. package/src/startExploring.js +70 -72
  68. package/src/internal/executeJsenvAsyncFunction.js +0 -34
  69. package/src/internal/toolbar/animation/toolbar-movie-icon.svg +0 -15
  70. package/src/internal/toolbar/compilation/flask.svg +0 -7
  71. package/src/internal/toolbar/compilation/info.svg +0 -9
  72. package/src/internal/toolbar/compilation/loupe.svg +0 -11
  73. package/src/internal/toolbar/compilation/toolbar_compilation.svg +0 -11
  74. package/src/internal/toolbar/eventsource/toolbar-power-icon.svg +0 -10
  75. package/src/internal/toolbar/eventsource/toolbar-power-off-icon.svg +0 -10
  76. package/src/internal/toolbar/responsive/toolbar-dots-icon.svg +0 -10
  77. package/src/internal/toolbar/settings/toolbar-settings-icon.svg +0 -9
  78. package/src/internal/toolbar/theme/toolbar-palette-icon.svg +0 -10
  79. package/src/internal/toolbar/toolbar-cross-icon.svg +0 -10
  80. package/src/internal/toolbar/toolbar-loading-icon.svg +0 -102
  81. package/src/internal/toolbar/toolbar-notif-icon.svg +0 -9
  82. package/src/internal/trackRessources.js +0 -23
@@ -5,11 +5,9 @@
5
5
  "../helpers/babel/typeof/typeof.js",
6
6
  "../helpers/babel/defineProperty/defineProperty.js",
7
7
  "../node_modules/@jsenv/logger/src/createDetailedMessage.js",
8
+ "../helpers/babel/objectSpread2/objectSpread2.js",
8
9
  "../helpers/babel/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js",
9
10
  "../helpers/babel/objectWithoutProperties/objectWithoutProperties.js",
10
- "../node_modules/@jsenv/cancellation/src/createCancellationToken.js",
11
- "../node_modules/@jsenv/cancellation/src/cancelError.js",
12
- "../helpers/babel/objectSpread2/objectSpread2.js",
13
11
  "../src/internal/browser-utils/fetchUsingXHR.js",
14
12
  "../src/internal/browser-utils/fetch-browser.js",
15
13
  "../src/internal/browser-utils/fetchJson.js",
@@ -21,17 +19,15 @@
21
19
  "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",
22
20
  "export default (obj, key, value) => {\n // Shortcircuit the slow defineProperty path when possible.\n // We are trying to avoid issues where setters defined on the\n // prototype cause side effects under the fast path of simple\n // assignment. By checking for existence of the property with\n // the in operator, we can optimize most of this overhead away.\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true,\n })\n } else {\n obj[key] = value\n }\n return obj\n}\n",
23
21
  "export const createDetailedMessage = (message, details = {}) => {\n let string = `${message}`\n\n Object.keys(details).forEach((key) => {\n const value = details[key]\n string += `\n--- ${key} ---\n${\n Array.isArray(value)\n ? value.join(`\n`)\n : value\n}`\n })\n\n return string\n}\n",
22
+ "import defineProperty from \"../defineProperty/defineProperty.js\"\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object)\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object)\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable\n })\n }\n keys.push.apply(keys, symbols)\n }\n return keys\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {}\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key])\n })\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source))\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key))\n })\n }\n }\n return target\n}\n",
24
23
  "export default (source, excluded) => {\n if (source === null) return {}\n var target = {}\n var sourceKeys = Object.keys(source)\n var key\n var i\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i]\n if (excluded.indexOf(key) >= 0) continue\n target[key] = source[key]\n }\n return target\n}\n",
25
24
  "import objectWithoutPropertiesLoose from \"../objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js\"\n\nexport default (source, excluded) => {\n if (source === null) return {}\n\n var target = objectWithoutPropertiesLoose(source, excluded)\n var key\n var i\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source)\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i]\n if (excluded.indexOf(key) >= 0) continue\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue\n target[key] = source[key]\n }\n }\n return target\n}\n",
26
- "export const createCancellationToken = () => {\n const register = (callback) => {\n if (typeof callback !== \"function\") {\n throw new Error(`callback must be a function, got ${callback}`)\n }\n\n return {\n callback,\n unregister: () => {},\n }\n }\n\n const throwIfRequested = () => undefined\n\n return {\n register,\n cancellationRequested: false,\n throwIfRequested,\n }\n}\n",
27
- "export const createCancelError = (reason) => {\n const cancelError = new Error(`canceled because ${reason}`)\n cancelError.name = \"CANCEL_ERROR\"\n cancelError.reason = reason\n return cancelError\n}\n\nexport const isCancelError = (value) => {\n return value && typeof value === \"object\" && value.name === \"CANCEL_ERROR\"\n}\n\nexport const errorToCancelReason = (error) => {\n if (!isCancelError(error)) return \"\"\n return error.reason\n}\n",
28
- "import defineProperty from \"../defineProperty/defineProperty.js\"\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object)\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object)\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable\n })\n }\n keys.push.apply(keys, symbols)\n }\n return keys\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {}\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key])\n })\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source))\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key))\n })\n }\n }\n return target\n}\n",
29
- "import { createCancellationToken } from \"@jsenv/cancellation/main.browser.js\"\nimport { createDetailedMessage } from \"@jsenv/logger\"\n// ideally we should do some window.fetch detection (ensuring it has cancellation) and accordingly\n// fallback to this polyfill (or even use an existing polyfill would be better)\n// https://github.com/github/fetch/blob/master/fetch.js\n\nexport const fetchUsingXHR = async (\n url,\n {\n cancellationToken = createCancellationToken(),\n method = \"GET\",\n credentials = \"same-origin\",\n headers = {},\n body = null,\n } = {},\n) => {\n const headersPromise = createPromiseAndHooks()\n const bodyPromise = createPromiseAndHooks()\n\n const xhr = new XMLHttpRequest()\n\n const failure = (error) => {\n // if it was already resolved, we must reject the body promise\n if (headersPromise.settled) {\n bodyPromise.reject(error)\n } else {\n headersPromise.reject(error)\n }\n }\n\n const cleanup = () => {\n xhr.ontimeout = null\n xhr.onerror = null\n xhr.onload = null\n xhr.onreadystatechange = null\n }\n\n xhr.ontimeout = () => {\n cleanup()\n failure(new Error(`xhr request timeout on ${url}.`))\n }\n\n xhr.onerror = (error) => {\n cleanup()\n // unfortunately with have no clue why it fails\n // might be cors for instance\n failure(createRequestError(error, { url }))\n }\n\n xhr.onload = () => {\n cleanup()\n bodyPromise.resolve()\n }\n\n cancellationToken.register((cancelError) => {\n xhr.abort()\n failure(cancelError)\n })\n\n xhr.onreadystatechange = () => {\n // https://developer.mozilla.org/fr/docs/Web/API/XMLHttpRequest/readyState\n const { readyState } = xhr\n\n if (readyState === 2) {\n headersPromise.resolve()\n } else if (readyState === 4) {\n cleanup()\n bodyPromise.resolve()\n }\n }\n\n xhr.open(method, url, true)\n Object.keys(headers).forEach((key) => {\n xhr.setRequestHeader(key, headers[key])\n })\n xhr.withCredentials = computeWithCredentials({ credentials, url })\n if (\"responseType\" in xhr && hasBlob) {\n xhr.responseType = \"blob\"\n }\n xhr.send(body)\n\n await headersPromise\n\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseURL\n const responseUrl =\n \"responseURL\" in xhr ? xhr.responseURL : headers[\"x-request-url\"]\n let responseStatus = xhr.status\n const responseStatusText = xhr.statusText\n const responseHeaders = getHeadersFromXHR(xhr)\n\n const readBody = async () => {\n await bodyPromise\n\n const { status } = xhr\n // in Chrome on file:/// URLs, status is 0\n if (status === 0) {\n responseStatus = 200\n }\n\n const body = \"response\" in xhr ? xhr.response : xhr.responseText\n\n return {\n responseBody: body,\n responseBodyType: detectBodyType(body),\n }\n }\n\n const text = async () => {\n const { responseBody, responseBodyType } = await readBody()\n\n if (responseBodyType === \"blob\") {\n return blobToText(responseBody)\n }\n if (responseBodyType === \"formData\") {\n throw new Error(\"could not read FormData body as text\")\n }\n if (responseBodyType === \"dataView\") {\n return arrayBufferToText(responseBody.buffer)\n }\n if (responseBodyType === \"arrayBuffer\") {\n return arrayBufferToText(responseBody)\n }\n // if (responseBodyType === \"text\" || responseBodyType === 'searchParams') {\n // return body\n // }\n return String(responseBody)\n }\n\n const json = async () => {\n const responseText = await text()\n return JSON.parse(responseText)\n }\n\n const blob = async () => {\n if (!hasBlob) {\n throw new Error(`blob not supported`)\n }\n\n const { responseBody, responseBodyType } = await readBody()\n\n if (responseBodyType === \"blob\") {\n return responseBody\n }\n if (responseBodyType === \"dataView\") {\n return new Blob([cloneBuffer(responseBody.buffer)])\n }\n if (responseBodyType === \"arrayBuffer\") {\n return new Blob([cloneBuffer(responseBody)])\n }\n if (responseBodyType === \"formData\") {\n throw new Error(\"could not read FormData body as blob\")\n }\n return new Blob([String(responseBody)])\n }\n\n const arrayBuffer = async () => {\n const { responseBody, responseBodyType } = await readBody()\n\n if (responseBodyType === \"arrayBuffer\") {\n return cloneBuffer(responseBody)\n }\n const responseBlob = await blob()\n return blobToArrayBuffer(responseBlob)\n }\n\n const formData = async () => {\n if (!hasFormData) {\n throw new Error(`formData not supported`)\n }\n const responseText = await text()\n return textToFormData(responseText)\n }\n\n return {\n url: responseUrl,\n status: responseStatus,\n statusText: responseStatusText,\n headers: responseHeaders,\n text,\n json,\n blob,\n arrayBuffer,\n formData,\n }\n}\n\nconst canUseBlob = () => {\n if (typeof window.FileReader !== \"function\") return false\n\n if (typeof window.Blob !== \"function\") return false\n\n try {\n // eslint-disable-next-line no-new\n new Blob()\n return true\n } catch (e) {\n return false\n }\n}\n\nconst hasBlob = canUseBlob()\n\nconst hasFormData = typeof window.FormData === \"function\"\n\nconst hasArrayBuffer = typeof window.ArrayBuffer === \"function\"\n\nconst hasSearchParams = typeof window.URLSearchParams === \"function\"\n\nconst createRequestError = (error, { url }) => {\n return new Error(\n createDetailedMessage(`error during xhr request on ${url}.`, {\n [\"error stack\"]: error.stack,\n }),\n )\n}\n\nconst createPromiseAndHooks = () => {\n let resolve\n let reject\n const promise = new Promise((res, rej) => {\n resolve = (value) => {\n promise.settled = true\n res(value)\n }\n reject = (value) => {\n promise.settled = true\n rej(value)\n }\n })\n promise.resolve = resolve\n promise.reject = reject\n return promise\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch\nconst computeWithCredentials = ({ credentials, url }) => {\n if (credentials === \"same-origin\") {\n return originSameAsGlobalOrigin(url)\n }\n return credentials === \"include\"\n}\n\nconst originSameAsGlobalOrigin = (url) => {\n // if we cannot read globalOrigin from window.location.origin, let's consider it's ok\n if (typeof window !== \"object\") return true\n if (typeof window.location !== \"object\") return true\n const globalOrigin = window.location.origin\n if (globalOrigin === \"null\") return true\n return hrefToOrigin(url) === globalOrigin\n}\n\nconst detectBodyType = (body) => {\n if (!body) {\n return \"\"\n }\n if (typeof body === \"string\") {\n return \"text\"\n }\n if (hasBlob && Blob.prototype.isPrototypeOf(body)) {\n return \"blob\"\n }\n if (hasFormData && FormData.prototype.isPrototypeOf(body)) {\n return \"formData\"\n }\n if (hasArrayBuffer) {\n if (hasBlob && isDataView(body)) {\n return `dataView`\n }\n if (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body)) {\n return `arrayBuffer`\n }\n }\n if (hasSearchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n return \"searchParams\"\n }\n return \"\"\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders#Example\nconst getHeadersFromXHR = (xhr) => {\n const headerMap = {}\n\n const headersString = xhr.getAllResponseHeaders()\n if (headersString === \"\") return headerMap\n\n const lines = headersString.trim().split(/[\\r\\n]+/)\n lines.forEach((line) => {\n const parts = line.split(\": \")\n const name = parts.shift()\n const value = parts.join(\": \")\n headerMap[name.toLowerCase()] = value\n })\n\n return headerMap\n}\n\nconst hrefToOrigin = (href) => {\n const scheme = hrefToScheme(href)\n\n if (scheme === \"file\") {\n return \"file://\"\n }\n\n if (scheme === \"http\" || scheme === \"https\") {\n const secondProtocolSlashIndex = scheme.length + \"://\".length\n const pathnameSlashIndex = href.indexOf(\"/\", secondProtocolSlashIndex)\n\n if (pathnameSlashIndex === -1) return href\n return href.slice(0, pathnameSlashIndex)\n }\n\n return href.slice(0, scheme.length + 1)\n}\n\nconst hrefToScheme = (href) => {\n const colonIndex = href.indexOf(\":\")\n if (colonIndex === -1) return \"\"\n return href.slice(0, colonIndex)\n}\n\nconst isDataView = (obj) => {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nconst isArrayBufferView =\n ArrayBuffer.isView ||\n (() => {\n const viewClasses = [\n \"[object Int8Array]\",\n \"[object Uint8Array]\",\n \"[object Uint8ClampedArray]\",\n \"[object Int16Array]\",\n \"[object Uint16Array]\",\n \"[object Int32Array]\",\n \"[object Uint32Array]\",\n \"[object Float32Array]\",\n \"[object Float64Array]\",\n ]\n\n return (value) => {\n return (\n value && viewClasses.includes(Object.prototype.toString.call(value))\n )\n }\n })()\n\nconst textToFormData = (text) => {\n const form = new FormData()\n text\n .trim()\n .split(\"&\")\n .forEach(function (bytes) {\n if (bytes) {\n const split = bytes.split(\"=\")\n const name = split.shift().replace(/\\+/g, \" \")\n const value = split.join(\"=\").replace(/\\+/g, \" \")\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nconst blobToArrayBuffer = async (blob) => {\n const reader = new FileReader()\n const promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nconst blobToText = (blob) => {\n const reader = new FileReader()\n const promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nconst arrayBufferToText = (arrayBuffer) => {\n const view = new Uint8Array(arrayBuffer)\n const chars = new Array(view.length)\n let i = 0\n while (i < view.length) {\n chars[i] = String.fromCharCode(view[i])\n\n i++\n }\n return chars.join(\"\")\n}\n\nconst fileReaderReady = (reader) => {\n return new Promise(function (resolve, reject) {\n reader.onload = function () {\n resolve(reader.result)\n }\n reader.onerror = function () {\n reject(reader.error)\n }\n })\n}\n\nconst cloneBuffer = (buffer) => {\n if (buffer.slice) {\n return buffer.slice(0)\n }\n const view = new Uint8Array(buffer.byteLength)\n view.set(new Uint8Array(buffer))\n return view.buffer\n}\n",
30
- "import { createCancellationToken } from \"@jsenv/cancellation/main.browser.js\"\nimport { fetchUsingXHR } from \"./fetchUsingXHR.js\"\n\nconst fetchNative = async (\n url,\n {\n cancellationToken = createCancellationToken(),\n mode = \"cors\",\n ...options\n } = {},\n) => {\n const abortController = new AbortController()\n\n let cancelError\n cancellationToken.register((reason) => {\n cancelError = reason\n abortController.abort(reason)\n })\n\n let response\n try {\n response = await window.fetch(url, {\n signal: abortController.signal,\n mode,\n ...options,\n })\n } catch (e) {\n if (cancelError && e.name === \"AbortError\") {\n throw cancelError\n }\n throw e\n }\n\n return {\n url: response.url,\n status: response.status,\n statusText: \"\",\n headers: responseToHeaders(response),\n text: () => response.text(),\n json: () => response.json(),\n blob: () => response.blob(),\n arrayBuffer: () => response.arrayBuffer(),\n formData: () => response.formData(),\n }\n}\n\nconst responseToHeaders = (response) => {\n const headers = {}\n response.headers.forEach((value, name) => {\n headers[name] = value\n })\n return headers\n}\n\nexport const fetchUrl =\n typeof window.fetch === \"function\" &&\n typeof window.AbortController === \"function\"\n ? fetchNative\n : fetchUsingXHR\n",
25
+ "import { createDetailedMessage } from \"@jsenv/logger\"\n\nexport const fetchUsingXHR = async (\n url,\n {\n signal,\n method = \"GET\",\n credentials = \"same-origin\",\n headers = {},\n body = null,\n } = {},\n) => {\n const headersPromise = createPromiseAndHooks()\n const bodyPromise = createPromiseAndHooks()\n\n const xhr = new XMLHttpRequest()\n\n const failure = (error) => {\n // if it was already resolved, we must reject the body promise\n if (headersPromise.settled) {\n bodyPromise.reject(error)\n } else {\n headersPromise.reject(error)\n }\n }\n\n const cleanup = () => {\n xhr.ontimeout = null\n xhr.onerror = null\n xhr.onload = null\n xhr.onreadystatechange = null\n }\n\n xhr.ontimeout = () => {\n cleanup()\n failure(new Error(`xhr request timeout on ${url}.`))\n }\n\n xhr.onerror = (error) => {\n cleanup()\n // unfortunately with have no clue why it fails\n // might be cors for instance\n failure(createRequestError(error, { url }))\n }\n\n xhr.onload = () => {\n cleanup()\n bodyPromise.resolve()\n }\n\n signal.addEventListener(\"abort\", () => {\n xhr.abort()\n const abortError = new Error(\"aborted\")\n abortError.name = \"AbortError\"\n failure(abortError)\n })\n\n xhr.onreadystatechange = () => {\n // https://developer.mozilla.org/fr/docs/Web/API/XMLHttpRequest/readyState\n const { readyState } = xhr\n\n if (readyState === 2) {\n headersPromise.resolve()\n } else if (readyState === 4) {\n cleanup()\n bodyPromise.resolve()\n }\n }\n\n xhr.open(method, url, true)\n Object.keys(headers).forEach((key) => {\n xhr.setRequestHeader(key, headers[key])\n })\n xhr.withCredentials = computeWithCredentials({ credentials, url })\n if (\"responseType\" in xhr && hasBlob) {\n xhr.responseType = \"blob\"\n }\n xhr.send(body)\n\n await headersPromise\n\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseURL\n const responseUrl =\n \"responseURL\" in xhr ? xhr.responseURL : headers[\"x-request-url\"]\n let responseStatus = xhr.status\n const responseStatusText = xhr.statusText\n const responseHeaders = getHeadersFromXHR(xhr)\n\n const readBody = async () => {\n await bodyPromise\n\n const { status } = xhr\n // in Chrome on file:/// URLs, status is 0\n if (status === 0) {\n responseStatus = 200\n }\n\n const body = \"response\" in xhr ? xhr.response : xhr.responseText\n\n return {\n responseBody: body,\n responseBodyType: detectBodyType(body),\n }\n }\n\n const text = async () => {\n const { responseBody, responseBodyType } = await readBody()\n\n if (responseBodyType === \"blob\") {\n return blobToText(responseBody)\n }\n if (responseBodyType === \"formData\") {\n throw new Error(\"could not read FormData body as text\")\n }\n if (responseBodyType === \"dataView\") {\n return arrayBufferToText(responseBody.buffer)\n }\n if (responseBodyType === \"arrayBuffer\") {\n return arrayBufferToText(responseBody)\n }\n // if (responseBodyType === \"text\" || responseBodyType === 'searchParams') {\n // return body\n // }\n return String(responseBody)\n }\n\n const json = async () => {\n const responseText = await text()\n return JSON.parse(responseText)\n }\n\n const blob = async () => {\n if (!hasBlob) {\n throw new Error(`blob not supported`)\n }\n\n const { responseBody, responseBodyType } = await readBody()\n\n if (responseBodyType === \"blob\") {\n return responseBody\n }\n if (responseBodyType === \"dataView\") {\n return new Blob([cloneBuffer(responseBody.buffer)])\n }\n if (responseBodyType === \"arrayBuffer\") {\n return new Blob([cloneBuffer(responseBody)])\n }\n if (responseBodyType === \"formData\") {\n throw new Error(\"could not read FormData body as blob\")\n }\n return new Blob([String(responseBody)])\n }\n\n const arrayBuffer = async () => {\n const { responseBody, responseBodyType } = await readBody()\n\n if (responseBodyType === \"arrayBuffer\") {\n return cloneBuffer(responseBody)\n }\n const responseBlob = await blob()\n return blobToArrayBuffer(responseBlob)\n }\n\n const formData = async () => {\n if (!hasFormData) {\n throw new Error(`formData not supported`)\n }\n const responseText = await text()\n return textToFormData(responseText)\n }\n\n return {\n url: responseUrl,\n status: responseStatus,\n statusText: responseStatusText,\n headers: responseHeaders,\n text,\n json,\n blob,\n arrayBuffer,\n formData,\n }\n}\n\nconst canUseBlob = () => {\n if (typeof window.FileReader !== \"function\") return false\n\n if (typeof window.Blob !== \"function\") return false\n\n try {\n // eslint-disable-next-line no-new\n new Blob()\n return true\n } catch (e) {\n return false\n }\n}\n\nconst hasBlob = canUseBlob()\n\nconst hasFormData = typeof window.FormData === \"function\"\n\nconst hasArrayBuffer = typeof window.ArrayBuffer === \"function\"\n\nconst hasSearchParams = typeof window.URLSearchParams === \"function\"\n\nconst createRequestError = (error, { url }) => {\n return new Error(\n createDetailedMessage(`error during xhr request on ${url}.`, {\n [\"error stack\"]: error.stack,\n }),\n )\n}\n\nconst createPromiseAndHooks = () => {\n let resolve\n let reject\n const promise = new Promise((res, rej) => {\n resolve = (value) => {\n promise.settled = true\n res(value)\n }\n reject = (value) => {\n promise.settled = true\n rej(value)\n }\n })\n promise.resolve = resolve\n promise.reject = reject\n return promise\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch\nconst computeWithCredentials = ({ credentials, url }) => {\n if (credentials === \"same-origin\") {\n return originSameAsGlobalOrigin(url)\n }\n return credentials === \"include\"\n}\n\nconst originSameAsGlobalOrigin = (url) => {\n // if we cannot read globalOrigin from window.location.origin, let's consider it's ok\n if (typeof window !== \"object\") return true\n if (typeof window.location !== \"object\") return true\n const globalOrigin = window.location.origin\n if (globalOrigin === \"null\") return true\n return hrefToOrigin(url) === globalOrigin\n}\n\nconst detectBodyType = (body) => {\n if (!body) {\n return \"\"\n }\n if (typeof body === \"string\") {\n return \"text\"\n }\n if (hasBlob && Blob.prototype.isPrototypeOf(body)) {\n return \"blob\"\n }\n if (hasFormData && FormData.prototype.isPrototypeOf(body)) {\n return \"formData\"\n }\n if (hasArrayBuffer) {\n if (hasBlob && isDataView(body)) {\n return `dataView`\n }\n if (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body)) {\n return `arrayBuffer`\n }\n }\n if (hasSearchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n return \"searchParams\"\n }\n return \"\"\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders#Example\nconst getHeadersFromXHR = (xhr) => {\n const headerMap = {}\n\n const headersString = xhr.getAllResponseHeaders()\n if (headersString === \"\") return headerMap\n\n const lines = headersString.trim().split(/[\\r\\n]+/)\n lines.forEach((line) => {\n const parts = line.split(\": \")\n const name = parts.shift()\n const value = parts.join(\": \")\n headerMap[name.toLowerCase()] = value\n })\n\n return headerMap\n}\n\nconst hrefToOrigin = (href) => {\n const scheme = hrefToScheme(href)\n\n if (scheme === \"file\") {\n return \"file://\"\n }\n\n if (scheme === \"http\" || scheme === \"https\") {\n const secondProtocolSlashIndex = scheme.length + \"://\".length\n const pathnameSlashIndex = href.indexOf(\"/\", secondProtocolSlashIndex)\n\n if (pathnameSlashIndex === -1) return href\n return href.slice(0, pathnameSlashIndex)\n }\n\n return href.slice(0, scheme.length + 1)\n}\n\nconst hrefToScheme = (href) => {\n const colonIndex = href.indexOf(\":\")\n if (colonIndex === -1) return \"\"\n return href.slice(0, colonIndex)\n}\n\nconst isDataView = (obj) => {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nconst isArrayBufferView =\n ArrayBuffer.isView ||\n (() => {\n const viewClasses = [\n \"[object Int8Array]\",\n \"[object Uint8Array]\",\n \"[object Uint8ClampedArray]\",\n \"[object Int16Array]\",\n \"[object Uint16Array]\",\n \"[object Int32Array]\",\n \"[object Uint32Array]\",\n \"[object Float32Array]\",\n \"[object Float64Array]\",\n ]\n\n return (value) => {\n return (\n value && viewClasses.includes(Object.prototype.toString.call(value))\n )\n }\n })()\n\nconst textToFormData = (text) => {\n const form = new FormData()\n text\n .trim()\n .split(\"&\")\n .forEach(function (bytes) {\n if (bytes) {\n const split = bytes.split(\"=\")\n const name = split.shift().replace(/\\+/g, \" \")\n const value = split.join(\"=\").replace(/\\+/g, \" \")\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nconst blobToArrayBuffer = async (blob) => {\n const reader = new FileReader()\n const promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nconst blobToText = (blob) => {\n const reader = new FileReader()\n const promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nconst arrayBufferToText = (arrayBuffer) => {\n const view = new Uint8Array(arrayBuffer)\n const chars = new Array(view.length)\n let i = 0\n while (i < view.length) {\n chars[i] = String.fromCharCode(view[i])\n\n i++\n }\n return chars.join(\"\")\n}\n\nconst fileReaderReady = (reader) => {\n return new Promise(function (resolve, reject) {\n reader.onload = function () {\n resolve(reader.result)\n }\n reader.onerror = function () {\n reject(reader.error)\n }\n })\n}\n\nconst cloneBuffer = (buffer) => {\n if (buffer.slice) {\n return buffer.slice(0)\n }\n const view = new Uint8Array(buffer.byteLength)\n view.set(new Uint8Array(buffer))\n return view.buffer\n}\n",
26
+ "import { fetchUsingXHR } from \"./fetchUsingXHR.js\"\n\nconst fetchNative = async (url, { mode = \"cors\", ...options } = {}) => {\n const response = await window.fetch(url, {\n mode,\n ...options,\n })\n\n return {\n url: response.url,\n status: response.status,\n statusText: \"\",\n headers: responseToHeaders(response),\n text: () => response.text(),\n json: () => response.json(),\n blob: () => response.blob(),\n arrayBuffer: () => response.arrayBuffer(),\n formData: () => response.formData(),\n }\n}\n\nconst responseToHeaders = (response) => {\n const headers = {}\n response.headers.forEach((value, name) => {\n headers[name] = value\n })\n return headers\n}\n\nexport const fetchUrl =\n typeof window.fetch === \"function\" &&\n typeof window.AbortController === \"function\"\n ? fetchNative\n : fetchUsingXHR\n",
31
27
  "import { fetchUrl } from \"./fetch-browser.js\"\n\nexport const fetchJson = async (url, options = {}) => {\n const response = await fetchUrl(url, options)\n const object = await response.json()\n return object\n}\n",
32
- "import { createDetailedMessage } from \"@jsenv/logger\"\nimport { isCancelError } from \"@jsenv/cancellation/main.browser.js\"\n\nimport { fetchJson } from \"../browser-utils/fetchJson.js\"\n\nexport const fetchExploringJson = async ({ cancellationToken } = {}) => {\n try {\n const exploringInfo = await fetchJson(\"/.jsenv/exploring.json\", {\n cancellationToken,\n })\n return exploringInfo\n } catch (e) {\n if (isCancelError(e)) {\n throw e\n }\n throw new Error(\n createDetailedMessage(\n `Cannot communicate with exploring server due to a network error`,\n {\n [\"error stack\"]: e.stack,\n },\n ),\n )\n }\n}\n",
28
+ "import { createDetailedMessage } from \"@jsenv/logger\"\n\nimport { fetchJson } from \"../browser-utils/fetchJson.js\"\n\nexport const fetchExploringJson = async ({ signal } = {}) => {\n try {\n const exploringInfo = await fetchJson(\"/.jsenv/exploring.json\", {\n signal,\n })\n return exploringInfo\n } catch (e) {\n if (signal && signal.aborted && e.name === \"AbortError\") {\n throw e\n }\n throw new Error(\n createDetailedMessage(\n `Cannot communicate with exploring server due to a network error`,\n {\n [\"error stack\"]: e.stack,\n },\n ),\n )\n }\n}\n",
33
29
  "export const updateIframeOverflowOnParentWindow = () => {\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",
34
- "import { fetchExploringJson } from \"@jsenv/core/src/internal/exploring/fetchExploringJson.js\"\nimport { setAttributes, setStyles } from \"./util/dom.js\"\n\n/*\nWe must connect to livereload server asap so that if a file is modified\nwhile page is loading we are notified of it.\n\nOtherwise it's possible that a file is loaded and used by browser then its modified before\nlivereload connection is established.\n\nWhen toolbar is loaded it will open an other connection to server sent events and close this one.\n*/\nconst connectLivereload = () => {\n const { EventSource } = window\n if (typeof EventSource !== \"function\") {\n return () => {}\n }\n\n const getLivereloadPreference = () => {\n return localStorage.hasOwnProperty(\"livereload\")\n ? JSON.parse(localStorage.getItem(\"livereload\"))\n : true\n }\n\n const url = document.location.href\n let isOpen = false\n let lastEventId\n const latestChangeMap = {}\n\n const events = {\n \"file-modified\": ({ data }) => {\n latestChangeMap[data] = \"modified\"\n if (getLivereloadPreference()) {\n window.location.reload(true)\n }\n },\n \"file-removed\": ({ data }) => {\n latestChangeMap[data] = \"removed\"\n if (getLivereloadPreference()) {\n window.location.reload(true)\n }\n },\n \"file-added\": ({ data }) => {\n latestChangeMap[data] = \"added\"\n if (getLivereloadPreference()) {\n window.location.reload(true)\n }\n },\n }\n\n const eventSourceOrigin = new URL(url).origin\n const eventSource = new EventSource(url, {\n withCredentials: true,\n })\n\n const disconnect = () => {\n eventSource.close()\n }\n\n eventSource.onopen = () => {\n isOpen = true\n }\n\n eventSource.onerror = (errorEvent) => {\n if (errorEvent.target.readyState === EventSource.CLOSED) {\n isOpen = false\n }\n }\n\n Object.keys(events).forEach((eventName) => {\n eventSource.addEventListener(eventName, (e) => {\n if (e.origin === eventSourceOrigin) {\n if (e.lastEventId) {\n lastEventId = e.lastEventId\n }\n events[eventName](e)\n }\n })\n })\n\n return () => {\n return {\n isOpen,\n latestChangeMap,\n lastEventId,\n disconnect,\n }\n }\n}\n// eslint-disable-next-line camelcase\nwindow.__jsenv_eventsource__ = connectLivereload()\n\nconst injectToolbar = async () => {\n const { jsenvDirectoryRelativeUrl } = await fetchExploringJson()\n const jsenvDirectoryServerUrl = resolveUrl(\n jsenvDirectoryRelativeUrl,\n document.location.origin,\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 = resolveUrl(\n \"./src/internal/toolbar/toolbar.html\",\n jsenvDirectoryServerUrl,\n )\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 await iframeLoadedPromise\n iframe.removeAttribute(\"tabindex\")\n\n const listenToolbarIframeEvent = (event, fn) => {\n window.addEventListener(\n \"message\",\n (messageEvent) => {\n const { data } = messageEvent\n if (typeof data !== \"object\") return\n const { jsenv } = data\n if (!jsenv) return\n const { type } = data\n if (type !== event) return\n fn(data.value)\n },\n false,\n )\n }\n\n listenToolbarIframeEvent(\"toolbar-visibility-change\", (visible) => {\n if (visible) {\n hideToolbarTrigger()\n } else {\n showToolbarTrigger()\n }\n })\n\n const div = document.createElement(\"div\")\n const jsenvLogoUrl = resolveUrl(\n \"./src/internal/toolbar/jsenv-logo.svg\",\n jsenvDirectoryServerUrl,\n )\n const jsenvLogoSvgSrc = jsenvLogoUrl\n div.innerHTML = `\n<div id=\"jsenv-toolbar-trigger\">\n <svg id=\"jsenv-toolbar-trigger-icon\">\n <use xlink:href=\"${jsenvLogoSvgSrc}#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 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 window.__jsenv__.toolbar.show()\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 hideToolbarTrigger()\n\n iframe.contentWindow.renderToolbar()\n\n return iframe\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 document.querySelector(\"[data-jsenv-toolbar-placeholder]\")\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\nconst resolveUrl = (url, baseUrl) => String(new URL(url, baseUrl))\n\nif (document.readyState === \"complete\") {\n injectToolbar()\n} else {\n window.addEventListener(\"load\", injectToolbar)\n}\n"
30
+ "import { fetchExploringJson } from \"@jsenv/core/src/internal/exploring/fetchExploringJson.js\"\nimport { setAttributes, setStyles } from \"./util/dom.js\"\n\n/*\nWe must connect to livereload server asap so that if a file is modified\nwhile page is loading we are notified of it.\n\nOtherwise it's possible that a file is loaded and used by browser then its modified before\nlivereload connection is established.\n\nWhen toolbar is loaded it will open an other connection to server sent events and close this one.\n*/\nconst connectLivereload = () => {\n const { EventSource } = window\n if (typeof EventSource !== \"function\") {\n return () => {}\n }\n\n const getLivereloadPreference = () => {\n return localStorage.hasOwnProperty(\"livereload\")\n ? JSON.parse(localStorage.getItem(\"livereload\"))\n : true\n }\n\n const url = document.location.href\n let isOpen = false\n let lastEventId\n const latestChangeMap = {}\n\n const events = {\n \"file-modified\": ({ data }) => {\n latestChangeMap[data] = \"modified\"\n if (getLivereloadPreference()) {\n window.location.reload(true)\n }\n },\n \"file-removed\": ({ data }) => {\n latestChangeMap[data] = \"removed\"\n if (getLivereloadPreference()) {\n window.location.reload(true)\n }\n },\n \"file-added\": ({ data }) => {\n latestChangeMap[data] = \"added\"\n if (getLivereloadPreference()) {\n window.location.reload(true)\n }\n },\n }\n\n const eventSourceOrigin = new URL(url).origin\n const eventSource = new EventSource(url, {\n withCredentials: true,\n })\n\n const disconnect = () => {\n eventSource.close()\n }\n\n eventSource.onopen = () => {\n isOpen = true\n }\n\n eventSource.onerror = (errorEvent) => {\n if (errorEvent.target.readyState === EventSource.CLOSED) {\n isOpen = false\n }\n }\n\n Object.keys(events).forEach((eventName) => {\n eventSource.addEventListener(eventName, (e) => {\n if (e.origin === eventSourceOrigin) {\n if (e.lastEventId) {\n lastEventId = e.lastEventId\n }\n events[eventName](e)\n }\n })\n })\n\n return () => {\n return {\n isOpen,\n latestChangeMap,\n lastEventId,\n disconnect,\n }\n }\n}\n// eslint-disable-next-line camelcase\nwindow.__jsenv_eventsource__ = connectLivereload()\n\nconst injectToolbar = async () => {\n await new Promise((resolve) => {\n if (window.requestIdleCallback) {\n window.requestIdleCallback(resolve)\n } else {\n window.requestAnimationFrame(resolve)\n }\n })\n\n const { jsenvDirectoryRelativeUrl } = await fetchExploringJson()\n const jsenvDirectoryServerUrl = resolveUrl(\n jsenvDirectoryRelativeUrl,\n document.location.origin,\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 = resolveUrl(\n \"./src/internal/toolbar/toolbar.html\",\n jsenvDirectoryServerUrl,\n )\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 await iframeLoadedPromise\n iframe.removeAttribute(\"tabindex\")\n\n const listenToolbarIframeEvent = (event, fn) => {\n window.addEventListener(\n \"message\",\n (messageEvent) => {\n const { data } = messageEvent\n if (typeof data !== \"object\") return\n const { jsenv } = data\n if (!jsenv) return\n const { type } = data\n if (type !== event) return\n fn(data.value)\n },\n false,\n )\n }\n\n listenToolbarIframeEvent(\"toolbar-visibility-change\", (visible) => {\n if (visible) {\n hideToolbarTrigger()\n } else {\n showToolbarTrigger()\n }\n })\n\n const div = document.createElement(\"div\")\n const jsenvLogoUrl = resolveUrl(\n \"./src/internal/toolbar/jsenv-logo.svg\",\n jsenvDirectoryServerUrl,\n )\n const jsenvLogoSvgSrc = jsenvLogoUrl\n div.innerHTML = `\n<div id=\"jsenv-toolbar-trigger\">\n <svg id=\"jsenv-toolbar-trigger-icon\">\n <use xlink:href=\"${jsenvLogoSvgSrc}#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 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 window.__jsenv__.toolbar.show()\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 hideToolbarTrigger()\n\n iframe.contentWindow.renderToolbar()\n\n return iframe\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 document.querySelector(\"[data-jsenv-toolbar-placeholder]\")\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\nconst resolveUrl = (url, baseUrl) => String(new URL(url, baseUrl))\n\nif (document.readyState === \"complete\") {\n injectToolbar()\n} else {\n window.addEventListener(\"load\", injectToolbar)\n}\n"
35
31
  ],
36
32
  "names": [
37
33
  "nativeTypeOf",
@@ -57,31 +53,10 @@
57
53
  "Array",
58
54
  "isArray",
59
55
  "join",
60
- "source",
61
- "excluded",
62
- "target",
63
- "sourceKeys",
64
- "i",
65
- "length",
66
- "indexOf",
67
- "objectWithoutPropertiesLoose",
68
- "getOwnPropertySymbols",
69
- "sourceSymbolKeys",
70
- "propertyIsEnumerable",
71
- "call",
72
- "createCancellationToken",
73
- "register",
74
- "callback",
75
- "Error",
76
- "unregister",
77
- "throwIfRequested",
78
- "undefined",
79
- "cancellationRequested",
80
- "isCancelError",
81
- "name",
82
56
  "ownKeys",
83
57
  "object",
84
58
  "enumerableOnly",
59
+ "getOwnPropertySymbols",
85
60
  "symbols",
86
61
  "filter",
87
62
  "sym",
@@ -89,9 +64,20 @@
89
64
  "push",
90
65
  "apply",
91
66
  "_objectSpread2",
67
+ "target",
68
+ "i",
92
69
  "arguments",
70
+ "length",
71
+ "source",
93
72
  "getOwnPropertyDescriptors",
94
73
  "defineProperties",
74
+ "excluded",
75
+ "sourceKeys",
76
+ "indexOf",
77
+ "objectWithoutPropertiesLoose",
78
+ "sourceSymbolKeys",
79
+ "propertyIsEnumerable",
80
+ "call",
95
81
  "then",
96
82
  "direct",
97
83
  "Promise",
@@ -104,7 +90,7 @@
104
90
  "result",
105
91
  "fetchUsingXHR",
106
92
  "url",
107
- "cancellationToken",
93
+ "signal",
108
94
  "method",
109
95
  "credentials",
110
96
  "headers",
@@ -121,9 +107,12 @@
121
107
  "onerror",
122
108
  "onload",
123
109
  "onreadystatechange",
110
+ "Error",
124
111
  "createRequestError",
125
- "cancelError",
112
+ "addEventListener",
126
113
  "abort",
114
+ "abortError",
115
+ "name",
127
116
  "readyState",
128
117
  "open",
129
118
  "setRequestHeader",
@@ -223,17 +212,15 @@
223
212
  "fetchNative",
224
213
  "mode",
225
214
  "options",
226
- "abortController",
227
- "AbortController",
228
- "reason",
229
215
  "fetch",
230
- "signal",
231
216
  "responseToHeaders",
232
- "_catch",
233
- "recover",
217
+ "_async",
234
218
  "fetchUrl",
219
+ "AbortController",
235
220
  "fetchJson",
221
+ "recover",
236
222
  "fetchExploringJson",
223
+ "aborted",
237
224
  "setStyles",
238
225
  "element",
239
226
  "styles",
@@ -269,9 +256,10 @@
269
256
  "errorEvent",
270
257
  "CLOSED",
271
258
  "eventName",
272
- "addEventListener",
273
259
  "__jsenv_eventsource__",
274
260
  "injectToolbar",
261
+ "requestIdleCallback",
262
+ "requestAnimationFrame",
275
263
  "jsenvDirectoryRelativeUrl",
276
264
  "jsenvDirectoryServerUrl",
277
265
  "resolveUrl",
@@ -328,5 +316,5 @@
328
316
  "removeEventListener",
329
317
  "baseUrl"
330
318
  ],
331
- "mappings": "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"
319
+ "mappings": "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"
332
320
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsenv/core",
3
- "version": "23.1.3",
3
+ "version": "23.2.2",
4
4
  "description": "Tool to develop, test and build js projects",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -62,14 +62,13 @@
62
62
  "@babel/plugin-syntax-numeric-separator": "7.10.4",
63
63
  "@babel/plugin-transform-modules-systemjs": "7.15.4",
64
64
  "@c88/v8-coverage": "0.1.1",
65
- "@jsenv/cancellation": "3.0.0",
65
+ "@jsenv/abort": "1.0.0",
66
66
  "@jsenv/filesystem": "2.3.1",
67
67
  "@jsenv/importmap": "1.1.0",
68
68
  "@jsenv/logger": "4.0.1",
69
- "@jsenv/node-signals": "2.0.1",
70
- "@jsenv/server": "7.2.0",
69
+ "@jsenv/server": "9.2.4",
71
70
  "@jsenv/uneval": "1.6.0",
72
- "@jsenv/workers": "1.1.0",
71
+ "@jsenv/workers": "1.2.0",
73
72
  "@rollup/plugin-commonjs": "21.0.0",
74
73
  "@rollup/plugin-json": "4.1.0",
75
74
  "@rollup/plugin-node-resolve": "13.0.5",
@@ -94,7 +93,8 @@
94
93
  "magic-string": "0.25.7",
95
94
  "node-fetch": "3.0.0",
96
95
  "parse5": "6.0.1",
97
- "playwright": "1.15.2",
96
+ "pidtree": "0.5.0",
97
+ "playwright": "1.16.2",
98
98
  "postcss": "8.3.9",
99
99
  "postcss-value-parser": "4.1.0",
100
100
  "regenerator-runtime": "0.13.9",
@@ -106,9 +106,8 @@
106
106
  "source-map": "0.7.3",
107
107
  "string-width": "5.0.1",
108
108
  "supports-color": "9.0.2",
109
- "systemjs": "6.10.3",
109
+ "systemjs": "6.11.0",
110
110
  "terser": "5.9.0",
111
- "tree-kill": "1.2.2",
112
111
  "v8-to-istanbul": "8.1.0",
113
112
  "vm2": "3.9.4",
114
113
  "wrap-ansi": "8.0.1"
@@ -122,9 +121,9 @@
122
121
  "@babel/preset-env": "7.15.8",
123
122
  "@jsenv/assert": "2.3.2",
124
123
  "@jsenv/babel-preset": "./packages/jsenv-babel-preset",
125
- "@jsenv/codecov-upload": "3.5.0",
126
124
  "@jsenv/eslint-config": "16.0.8",
127
125
  "@jsenv/github-release-package": "1.2.3",
126
+ "@jsenv/https-local": "1.0.2",
128
127
  "@jsenv/importmap-eslint-resolver": "5.1.2",
129
128
  "@jsenv/importmap-node-module": "2.4.1",
130
129
  "@jsenv/package-publish": "1.6.2",
@@ -0,0 +1,172 @@
1
+ /*
2
+ * https://github.com/whatwg/dom/issues/920
3
+ */
4
+
5
+ import { createCleaner } from "./cleaner.js"
6
+ import { raceCallbacks } from "./callback_race.js"
7
+ import { createCallbackList } from "./callback_list.js"
8
+
9
+ export const Abortable = {
10
+ throwIfAborted: (operation) => {
11
+ if (operation.signal.aborted) {
12
+ const error = new Error(`The operation was aborted`)
13
+ error.name = "AbortError"
14
+ error.type = "aborted"
15
+ throw error
16
+ }
17
+ },
18
+
19
+ isAbortError: (error) => {
20
+ return error.name === "AbortError"
21
+ },
22
+
23
+ start: () => {
24
+ const abortController = new AbortController()
25
+ const abort = (value) => abortController.abort(value)
26
+ const signal = abortController.signal
27
+ const cleaner = createCleaner()
28
+
29
+ // abortCallbackList is used to ignore the max listeners warning from Node.js
30
+ // this warning is useful but becomes problematic when it's expected
31
+ // (a function doing 20 http call in parallel)
32
+ // To be 100% sure we don't have memory leak, only Abortable.asyncCallback
33
+ // uses abortCallbackList to know when something is aborted
34
+ const abortCallbackList = createCallbackList()
35
+ signal.onabort = () => {
36
+ const callbacks = abortCallbackList.copy()
37
+ abortCallbackList.clear()
38
+ callbacks.forEach((callback) => {
39
+ callback()
40
+ })
41
+ }
42
+ cleaner.addCallback(() => {
43
+ abortCallbackList.clear()
44
+ })
45
+
46
+ const operation = {
47
+ abort,
48
+ signal,
49
+ abortCallbackList,
50
+ cleaner,
51
+ }
52
+
53
+ return operation
54
+ },
55
+
56
+ fromSignal: (signal) => {
57
+ const operation = Abortable.start()
58
+ Abortable.followSignal(operation, signal)
59
+ return operation
60
+ },
61
+
62
+ followSignal: (operation, signal, cleanup = cleanupNoop) => {
63
+ if (operation.signal.aborted) {
64
+ return () => {}
65
+ }
66
+
67
+ if (signal.aborted) {
68
+ operation.abort()
69
+ return () => {}
70
+ }
71
+
72
+ return raceCallbacks(
73
+ {
74
+ parent_abort: (cb) => {
75
+ return operation.abortCallbackList.add(cb)
76
+ },
77
+ child_abort: (cb) => {
78
+ return addEventListener(signal, "abort", cb)
79
+ },
80
+ cleaned: (cb) => {
81
+ return operation.cleaner.addCallback(cb)
82
+ },
83
+ },
84
+ (winner) => {
85
+ const raceEffects = {
86
+ parent_abort: () => {
87
+ // Nothing to do, exists to remove
88
+ // - "abort" event listener on parent
89
+ // - "abort" event listener on child
90
+ cleanup()
91
+ },
92
+ child_abort: () => {
93
+ operation.abort()
94
+ },
95
+ cleaned: () => {
96
+ // Nothing to do, exists to remove
97
+ // - "abort" event listener on parent
98
+ // - "abort" event listener on child
99
+ cleanup()
100
+ },
101
+ }
102
+ raceEffects[winner.name](winner.value)
103
+ },
104
+ )
105
+ },
106
+
107
+ effect: (operation, effect) => {
108
+ const abortController = new AbortController()
109
+ const returnValue = effect((value) => abortController.abort(value))
110
+ const cleanup =
111
+ typeof returnValue === "function" ? returnValue : cleanupNoop
112
+ const signal = abortController.signal
113
+
114
+ Abortable.followSignal(operation, signal, cleanup)
115
+ return {
116
+ signal,
117
+ cleanup,
118
+ }
119
+ },
120
+
121
+ timeout: (operation, ms) => {
122
+ return Abortable.effect(operation, (abort) => {
123
+ const timeoutId = setTimeout(abort, ms)
124
+ return () => {
125
+ clearTimeout(timeoutId)
126
+ }
127
+ })
128
+ },
129
+
130
+ cleanOnAbort: (operation) => {
131
+ const removeAbortEventListener = addEventListener(
132
+ operation.signal,
133
+ "abort",
134
+ () => {
135
+ removeAbortEventListener()
136
+ operation.cleaner.clean("operation aborted")
137
+ },
138
+ )
139
+ return removeAbortEventListener
140
+ },
141
+
142
+ // Provide a signal to the callback
143
+ // this signal won't inherit the current signal max listeners
144
+ asyncCallback: async (operation, asyncFunction) => {
145
+ Abortable.throwIfAborted(operation)
146
+
147
+ const abortController = new AbortController()
148
+ const signal = abortController.signal
149
+
150
+ const removeOperationAbortCallback = operation.abortCallbackList.add(() => {
151
+ abortController.abort()
152
+ })
153
+
154
+ try {
155
+ const value = await asyncFunction(signal)
156
+ removeOperationAbortCallback()
157
+ return value
158
+ } catch (e) {
159
+ removeOperationAbortCallback()
160
+ throw e
161
+ }
162
+ },
163
+ }
164
+
165
+ const cleanupNoop = () => {}
166
+
167
+ const addEventListener = (target, eventName, cb) => {
168
+ target.addEventListener(eventName, cb)
169
+ return () => {
170
+ target.removeEventListener(eventName, cb)
171
+ }
172
+ }