UNPKG

355 kBSource Map (JSON)View Raw
1{"version":3,"file":"main.js","sources":["../../node_modules/@jsenv/core/helpers/babel/defineProperty/defineProperty.js","../../node_modules/@jsenv/core/helpers/babel/typeof/typeof.js","../../node_modules/@jsenv/operating-system-path/src/starts-with-windows-drive-letter.js","../../node_modules/@jsenv/operating-system-path/src/replace-slashes-with-backslashes.js","../../node_modules/@jsenv/operating-system-path/src/pathname-to-operating-system-path.js","../../node_modules/@jsenv/operating-system-path/src/is-windows-path.js","../../node_modules/@jsenv/operating-system-path/src/replace-back-slashes-with-slashes.js","../../node_modules/@jsenv/operating-system-path/src/operating-system-path-to-pathname.js","../../node_modules/@jsenv/operating-system-path/src/pathname-to-relative-pathname.js","../../node_modules/@jsenv/core/src/babelCompatMap/babelCompatMap.js","../../node_modules/@jsenv/href/src/hrefToScheme/hrefToScheme.js","../../node_modules/@jsenv/href/src/hrefToOrigin/hrefToOrigin.js","../../node_modules/@jsenv/href/src/hrefToPathname/hrefToPathname.js","../../node_modules/@jsenv/href/src/pathnameIsInside/pathnameIsInside.js","../../node_modules/@jsenv/href/src/pathnameToDirname/pathnameToDirname.js","../../node_modules/@jsenv/href/src/pathnameToExtension/pathnameToExtension.js","../../node_modules/@jsenv/href/src/pathnameToRelativePath/pathnameToRelativePath.js","../../node_modules/@jsenv/bundling/node_modules/@jsenv/core/helpers/babel/typeof/typeof.js","../../node_modules/@jsenv/bundling/node_modules/@jsenv/core/helpers/babel/defineProperty/defineProperty.js","../../node_modules/@jsenv/bundling/node_modules/@jsenv/core/helpers/babel/objectSpread2/objectSpread2.js","../../node_modules/@jsenv/bundling/src/babel-plugin-map/import-meta-commonjs.js","../../node_modules/@jsenv/core/src/jsenvCorePath/jsenvCorePath.js","../../node_modules/@jsenv/core/src/babelHelperMap/babelHelperMap.js","../../node_modules/@jsenv/core/src/browserScoreMap/browserScoreMap.js","../../node_modules/@dmail/helper/src/firstOperationMatching.js","../../node_modules/@jsenv/core/helpers/babel/objectSpread2/objectSpread2.js","../../node_modules/@dmail/helper/src/promiseSequence.js","../../node_modules/@dmail/helper/src/fileMakeDirname.js","../../node_modules/@dmail/helper/src/fileCopy.js","../../node_modules/@dmail/helper/src/fileRead.js","../../node_modules/@dmail/helper/src/fileStat.js","../../node_modules/@dmail/helper/src/fileLStat.js","../../node_modules/@dmail/helper/src/fileWrite.js","../../node_modules/@dmail/helper/src/folderRead.js","../../node_modules/@jsenv/core/src/cleanCompileCacheFolderIfObsolete/removeFolder.js","../../node_modules/@jsenv/core/src/GROUP_ID.js","../../node_modules/@jsenv/core/src/generateBabelHelper/generateBabelHelper.js","../../node_modules/@jsenv/core/src/polyfillCompatMap/polyfillCompatMap.js","../../node_modules/@jsenv/bundling/node_modules/@jsenv/core/helpers/babel/arrayWithoutHoles/arrayWithoutHoles.js","../../node_modules/@jsenv/bundling/node_modules/@jsenv/core/helpers/babel/iterableToArray/iterableToArray.js","../../node_modules/@jsenv/bundling/node_modules/@jsenv/core/helpers/babel/nonIterableSpread/nonIterableSpread.js","../../node_modules/@jsenv/bundling/node_modules/@jsenv/core/helpers/babel/toConsumableArray/toConsumableArray.js","../../node_modules/@jsenv/core/src/semantic-versioning/valueToVersion.js","../../node_modules/@jsenv/core/src/semantic-versioning/versionCompare.js","../../node_modules/@jsenv/core/src/semantic-versioning/versionIsBelow.js","../../node_modules/@jsenv/core/src/semantic-versioning/findHighestVersion.js","../../node_modules/@jsenv/core/src/generateGroupMap/computeIncompatibleNameArray.js","../../node_modules/@jsenv/core/src/generateGroupMap/generatePlatformGroupArray.js","../../node_modules/@jsenv/core/src/generateGroupMap/composePlatformCompatMap.js","../../node_modules/@jsenv/core/src/generateGroupMap/composeGroupArray.js","../../node_modules/@jsenv/core/src/generateGroupMap/generateAllPlatformGroupArray.js","../../node_modules/@jsenv/core/src/generateGroupMap/platformCompatMapToScore.js","../../node_modules/@jsenv/core/src/generateGroupMap/generateGroupMap.js","../../node_modules/@jsenv/logger/src/createLogger/LOG_LEVELS.js","../../node_modules/@jsenv/logger/src/createLogger/createLogger.js","../../node_modules/@jsenv/core/src/getOrGenerateCompiledFile/validateCache.js","../../node_modules/@jsenv/core/src/getOrGenerateCompiledFile/updateCache.js","../../node_modules/@jsenv/core/src/getOrGenerateCompiledFile/getOrGenerateCompiledFile.js","../../node_modules/@jsenv/core/src/nodeVersionScoreMap/nodeVersionScoreMap.js","../../node_modules/@jsenv/import-map/src/assertImportMap.js","../../node_modules/@jsenv/import-map/src/resolveSpecifier/isWindowsDriveLetter.js","../../node_modules/@jsenv/import-map/src/resolveSpecifier/absoluteSpecifier.js","../../node_modules/@jsenv/import-map/src/assertUrlLike.js","../../node_modules/@jsenv/import-map/src/applyImportMap/applyImportMap.js","../../node_modules/@jsenv/import-map/src/composeTwoImportMaps/composeTwoImportMaps.js","../../node_modules/@jsenv/import-map/src/resolveSpecifier/schemeRelativeSpecifier.js","../../node_modules/@jsenv/import-map/src/resolveSpecifier/originRelativeSpecifier.js","../../node_modules/@jsenv/import-map/src/resolveSpecifier/pathnameRelativeSpecifier.js","../../node_modules/@jsenv/import-map/src/resolveSpecifier/bareSpecifier.js","../../node_modules/@jsenv/import-map/src/resolveSpecifier/resolveSpecifier.js","../../node_modules/@jsenv/import-map/src/normalizeImportMap/normalizeImportMap.js","../../node_modules/@jsenv/import-map/src/resolveImport/resolveImport.js","../../node_modules/@jsenv/core/src/transformJs/babel-plugin-transform-modules-systemjs/index.js","../../node_modules/@jsenv/core/src/transformJs/ansiToHTML.js","../../node_modules/@jsenv/core/src/transformJs/ensureRegeneratorRuntimeImportBabelPlugin.js","../../node_modules/@jsenv/core/src/transformJs/ensureGlobalThisImportBabelPlugin.js","../../node_modules/@jsenv/core/src/transformJs/transformBabelHelperToImportBabelPlugin.js","../../node_modules/@jsenv/core/src/transformJs/jsenvTransform.js","../../node_modules/@jsenv/core/helpers/babel/arrayWithoutHoles/arrayWithoutHoles.js","../../node_modules/@jsenv/core/helpers/babel/iterableToArray/iterableToArray.js","../../node_modules/@jsenv/core/helpers/babel/nonIterableSpread/nonIterableSpread.js","../../node_modules/@jsenv/core/helpers/babel/toConsumableArray/toConsumableArray.js","../../node_modules/@dmail/cancellation/src/arrayHelper.js","../../node_modules/@dmail/cancellation/src/cancellation.js","../../node_modules/@jsenv/core/helpers/babel/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js","../../node_modules/@jsenv/core/helpers/babel/objectWithoutProperties/objectWithoutProperties.js","../../node_modules/@dmail/cancellation/src/createOperation.js","../../node_modules/@dmail/cancellation/src/extra.js","../../src/jsenv-bundling-project.js","../../src/filesystem-assertions.js","../../node_modules/@jsenv/node-module-import-map/node_modules/@jsenv/import-map/src/assertImportMap.js","../../node_modules/@jsenv/node-module-import-map/node_modules/@jsenv/import-map/src/sortImportMap/sortImportMap.js","../../node_modules/@jsenv/node-module-import-map/src/generateImportMapForPackage/pathnameToDirname.js","../../node_modules/@jsenv/node-module-import-map/src/generateImportMapForPackage/readPackageData.js","../../node_modules/@jsenv/node-module-import-map/src/generateImportMapForPackage/resolveNodeModule.js","../../node_modules/@jsenv/node-module-import-map/src/generateImportMapForPackage/resolvePackageMain.js","../../node_modules/@jsenv/node-module-import-map/src/generateImportMapForPackage/generateImportMapForPackage.js","../../src/babel-plugin-map/createImportMetaUrlNamedImportBabelPlugin.js","../../src/babel-plugin-map/babel-plugin-map.js","../../src/helpers/fetchUsingHttp.js","../../src/helpers/source-mapping-url.js","../../src/jsenv-rollup-plugin.js","../../src/generate-bundle-using-rollup.js","../../src/format-to-rollup-format.js","../../src/bundle-without-balancing.js","../../src/bundle-with-balancing.js","../../src/bundle-balancer.js","../../src/removeFolder.js","../../src/generate-bundle-constant.js","../../src/generate-bundle.js","../../src/bundle-global/generate-global-bundle-constant.js","../../src/bundle-global/generate-global-bundle.js","../../src/bundle-commonjs/generate-commonjs-bundle-constant.js","../../src/bundle-commonjs/generate-commonjs-bundle.js","../../src/bundle-systemjs/generate-systemjs-bundle-constant.js","../../src/bundle-systemjs/generate-systemjs-bundle.js","../../src/bundle-to-compilation-result.js"],"sourcesContent":["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","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","export const startsWithWindowsDriveLetter = (string) => {\n const firstChar = string[0]\n if (!/[a-zA-Z]/.test(firstChar)) return false\n\n const secondChar = string[1]\n if (secondChar !== \":\") return false\n\n return true\n}\n","export const replaceSlashesWithBackSlashes = (string) => string.replace(/\\//g, \"\\\\\")\n","import { startsWithWindowsDriveLetter } from \"./starts-with-windows-drive-letter.js\"\nimport { replaceSlashesWithBackSlashes } from \"./replace-slashes-with-backslashes.js\"\n\nexport const pathnameToOperatingSystemPath = (pathname) => {\n if (pathname[0] !== \"/\") throw new Error(`pathname must start with /, got ${pathname}`)\n\n const pathnameWithoutLeadingSlash = pathname.slice(1)\n if (\n startsWithWindowsDriveLetter(pathnameWithoutLeadingSlash) &&\n pathnameWithoutLeadingSlash[2] === \"/\"\n ) {\n return replaceSlashesWithBackSlashes(pathnameWithoutLeadingSlash)\n }\n\n // linux mac pathname === operatingSystemFilename\n return pathname\n}\n","import { startsWithWindowsDriveLetter } from \"./starts-with-windows-drive-letter.js\"\n\nexport const isWindowsPath = (path) => startsWithWindowsDriveLetter(path) && path[2] === \"\\\\\"\n","export const replaceBackSlashesWithSlashes = (string) => string.replace(/\\\\/g, \"/\")\n","import { isWindowsPath } from \"./is-windows-path.js\"\nimport { replaceBackSlashesWithSlashes } from \"./replace-back-slashes-with-slashes.js\"\n\nexport const operatingSystemPathToPathname = (operatingSystemPath) => {\n if (isWindowsPath(operatingSystemPath)) {\n return `/${replaceBackSlashesWithSlashes(operatingSystemPath)}`\n }\n\n // linux and mac operatingSystemFilename === pathname\n return operatingSystemPath\n}\n","export const pathnameToRelativePathname = (pathname, otherPathname) =>\n pathname.slice(otherPathname.length)\n","// copied from\n// https://github.com/babel/babel/blob/0ee2c42b55e1893f0ae6510916405eb273587844/packages/babel-preset-env/data/plugins.json\n// Because this is an hidden implementation detail of @babel/preset-env\n// it could be deprecated or moved anytime.\n// For that reason it makes more sens to have it inlined here\n// than importing it from an undocumented location.\n// Ideally it would be documented or a separate module\n\nexport const babelCompatMap = {\n \"transform-template-literals\": {\n chrome: \"41\",\n edge: \"13\",\n firefox: \"34\",\n node: \"4\",\n samsung: \"3.4\",\n opera: \"28\",\n electron: \"0.24\",\n },\n \"transform-literals\": {\n chrome: \"44\",\n edge: \"12\",\n firefox: \"53\",\n safari: \"9\",\n node: \"4\",\n ios: \"9\",\n samsung: \"4\",\n opera: \"31\",\n electron: \"0.31\",\n },\n \"transform-function-name\": {\n chrome: \"51\",\n firefox: \"53\",\n safari: \"10\",\n node: \"6.5\",\n ios: \"10\",\n samsung: \"5\",\n opera: \"38\",\n electron: \"1.2\",\n },\n \"transform-arrow-functions\": {\n chrome: \"47\",\n edge: \"13\",\n firefox: \"45\",\n safari: \"10\",\n node: \"6\",\n ios: \"10\",\n samsung: \"5\",\n opera: \"34\",\n electron: \"0.36\",\n },\n \"transform-block-scoped-functions\": {\n chrome: \"41\",\n edge: \"12\",\n firefox: \"46\",\n safari: \"10\",\n node: \"4\",\n ie: \"11\",\n ios: \"10\",\n samsung: \"3.4\",\n opera: \"28\",\n electron: \"0.24\",\n },\n \"transform-classes\": {\n chrome: \"46\",\n edge: \"13\",\n firefox: \"45\",\n safari: \"10\",\n node: \"5\",\n ios: \"10\",\n samsung: \"5\",\n opera: \"33\",\n electron: \"0.36\",\n },\n \"transform-object-super\": {\n chrome: \"46\",\n edge: \"13\",\n firefox: \"45\",\n safari: \"10\",\n node: \"5\",\n ios: \"10\",\n samsung: \"5\",\n opera: \"33\",\n electron: \"0.36\",\n },\n \"transform-shorthand-properties\": {\n chrome: \"43\",\n edge: \"12\",\n firefox: \"33\",\n safari: \"9\",\n node: \"4\",\n ios: \"9\",\n samsung: \"4\",\n opera: \"30\",\n electron: \"0.29\",\n },\n \"transform-duplicate-keys\": {\n chrome: \"42\",\n edge: \"12\",\n firefox: \"34\",\n safari: \"9\",\n node: \"4\",\n ios: \"9\",\n samsung: \"3.4\",\n opera: \"29\",\n electron: \"0.27\",\n },\n \"transform-computed-properties\": {\n chrome: \"44\",\n edge: \"12\",\n firefox: \"34\",\n safari: \"7.1\",\n node: \"4\",\n ios: \"8\",\n samsung: \"4\",\n opera: \"31\",\n electron: \"0.31\",\n },\n \"transform-for-of\": {\n chrome: \"51\",\n edge: \"15\",\n firefox: \"53\",\n safari: \"10\",\n node: \"6.5\",\n ios: \"10\",\n samsung: \"5\",\n opera: \"38\",\n electron: \"1.2\",\n },\n \"transform-sticky-regex\": {\n chrome: \"49\",\n edge: \"13\",\n firefox: \"3\",\n safari: \"10\",\n node: \"6\",\n ios: \"10\",\n samsung: \"5\",\n opera: \"36\",\n electron: \"1\",\n },\n \"transform-dotall-regex\": {\n chrome: \"62\",\n safari: \"11.1\",\n node: \"8.10\",\n ios: \"11.3\",\n samsung: \"8.2\",\n opera: \"49\",\n electron: \"3.1\",\n },\n \"transform-unicode-regex\": {\n chrome: \"50\",\n edge: \"13\",\n firefox: \"46\",\n safari: \"12\",\n node: \"6\",\n ios: \"12\",\n samsung: \"5\",\n opera: \"37\",\n electron: \"1.1\",\n },\n \"transform-spread\": {\n chrome: \"46\",\n edge: \"13\",\n firefox: \"36\",\n safari: \"10\",\n node: \"5\",\n ios: \"10\",\n samsung: \"5\",\n opera: \"33\",\n electron: \"0.36\",\n },\n \"transform-parameters\": {\n chrome: \"49\",\n edge: \"18\",\n firefox: \"53\",\n safari: \"10\",\n node: \"6\",\n ios: \"10\",\n samsung: \"5\",\n opera: \"36\",\n electron: \"1\",\n },\n \"transform-destructuring\": {\n chrome: \"51\",\n edge: \"15\",\n firefox: \"53\",\n safari: \"10\",\n node: \"6.5\",\n ios: \"10\",\n samsung: \"5\",\n opera: \"38\",\n electron: \"1.2\",\n },\n \"transform-block-scoping\": {\n chrome: \"49\",\n edge: \"14\",\n firefox: \"51\",\n safari: \"11\",\n node: \"6\",\n ios: \"11\",\n samsung: \"5\",\n opera: \"36\",\n electron: \"1\",\n },\n \"transform-typeof-symbol\": {\n chrome: \"38\",\n edge: \"12\",\n firefox: \"36\",\n safari: \"9\",\n node: \"0.12\",\n ios: \"9\",\n samsung: \"3\",\n opera: \"25\",\n electron: \"0.2\",\n },\n \"transform-new-target\": {\n chrome: \"46\",\n edge: \"14\",\n firefox: \"41\",\n safari: \"10\",\n node: \"5\",\n ios: \"10\",\n samsung: \"5\",\n opera: \"33\",\n electron: \"0.36\",\n },\n \"transform-regenerator\": {\n chrome: \"50\",\n edge: \"13\",\n firefox: \"53\",\n safari: \"10\",\n node: \"6\",\n ios: \"10\",\n samsung: \"5\",\n opera: \"37\",\n electron: \"1.1\",\n },\n \"transform-exponentiation-operator\": {\n chrome: \"52\",\n edge: \"14\",\n firefox: \"52\",\n safari: \"10.1\",\n node: \"7\",\n ios: \"10.3\",\n samsung: \"6.2\",\n opera: \"39\",\n electron: \"1.3\",\n },\n \"transform-async-to-generator\": {\n chrome: \"55\",\n edge: \"15\",\n firefox: \"52\",\n safari: \"11\",\n node: \"7.6\",\n ios: \"11\",\n samsung: \"6.2\",\n opera: \"42\",\n electron: \"1.6\",\n },\n // copy of transform-async-to-generator\n // this is not in the babel-preset-env repo\n // but we need this\n \"transform-async-to-promises\": {\n chrome: \"55\",\n edge: \"15\",\n firefox: \"52\",\n safari: \"11\",\n node: \"7.6\",\n ios: \"11\",\n samsung: \"6.2\",\n opera: \"42\",\n electron: \"1.6\",\n },\n \"proposal-async-generator-functions\": {\n chrome: \"63\",\n firefox: \"57\",\n safari: \"12\",\n node: \"10\",\n ios: \"12\",\n samsung: \"8.2\",\n opera: \"50\",\n electron: \"3.1\",\n },\n \"proposal-object-rest-spread\": {\n chrome: \"60\",\n firefox: \"55\",\n safari: \"11.1\",\n node: \"8.3\",\n ios: \"11.3\",\n samsung: \"8.2\",\n opera: \"47\",\n electron: \"2.1\",\n },\n \"proposal-optional-chaining\": {},\n \"proposal-unicode-property-regex\": {\n chrome: \"64\",\n safari: \"11.1\",\n node: \"10\",\n ios: \"11.3\",\n opera: \"51\",\n electron: \"3.1\",\n },\n \"proposal-json-strings\": {\n chrome: \"66\",\n firefox: \"62\",\n safari: \"12\",\n node: \"10\",\n ios: \"12\",\n opera: \"53\",\n electron: \"3.1\",\n },\n \"proposal-optional-catch-binding\": {\n chrome: \"66\",\n firefox: \"58\",\n safari: \"11.1\",\n node: \"10\",\n ios: \"11.3\",\n opera: \"53\",\n electron: \"3.1\",\n },\n \"transform-named-capturing-groups-regex\": {\n chrome: \"64\",\n safari: \"11.1\",\n node: \"10\",\n ios: \"11.3\",\n opera: \"51\",\n electron: \"3.1\",\n },\n \"transform-member-expression-literals\": {\n chrome: \"7\",\n opera: \"12\",\n edge: \"12\",\n firefox: \"2\",\n safari: \"5.1\",\n node: \"0.10\",\n ie: \"9\",\n android: \"4\",\n ios: \"6\",\n phantom: \"2\",\n samsung: \"2.1\",\n electron: \"5\",\n },\n \"transform-property-literals\": {\n chrome: \"7\",\n opera: \"12\",\n edge: \"12\",\n firefox: \"2\",\n safari: \"5.1\",\n node: \"0.10\",\n ie: \"9\",\n android: \"4\",\n ios: \"6\",\n phantom: \"2\",\n samsung: \"2.1\",\n electron: \"5\",\n },\n \"transform-reserved-words\": {\n chrome: \"13\",\n opera: \"10.50\",\n edge: \"12\",\n firefox: \"2\",\n safari: \"3.1\",\n node: \"0.10\",\n ie: \"9\",\n android: \"4.4\",\n ios: \"6\",\n phantom: \"2\",\n samsung: \"2.1\",\n electron: \"0.2\",\n },\n}\n","export const hrefToScheme = (href) => {\n const colonIndex = href.indexOf(\":\")\n if (colonIndex === -1) return \"\"\n return href.slice(0, colonIndex)\n}\n","import { hrefToScheme } from \"../hrefToScheme/hrefToScheme.js\"\n\nexport const 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","import { hrefToScheme } from \"../hrefToScheme/hrefToScheme.js\"\n\nexport const hrefToPathname = (href) => {\n return ressourceToPathname(hrefToRessource(href))\n}\n\nconst hrefToRessource = (href) => {\n const scheme = hrefToScheme(href)\n\n if (scheme === \"file\") {\n return href.slice(\"file://\".length)\n }\n\n if (scheme === \"https\" || scheme === \"http\") {\n // remove origin\n const afterProtocol = href.slice(scheme.length + \"://\".length)\n const pathnameSlashIndex = afterProtocol.indexOf(\"/\", \"://\".length)\n return afterProtocol.slice(pathnameSlashIndex)\n }\n\n return href.slice(scheme.length + 1)\n}\n\nconst ressourceToPathname = (ressource) => {\n const searchSeparatorIndex = ressource.indexOf(\"?\")\n return searchSeparatorIndex === -1 ? ressource : ressource.slice(0, searchSeparatorIndex)\n}\n","export const pathnameIsInside = (pathname, otherPathname) =>\n pathname.startsWith(`${otherPathname}/`)\n","export const pathnameToDirname = (pathname) => {\n const slashLastIndex = pathname.lastIndexOf(\"/\")\n if (slashLastIndex === -1) return \"\"\n\n return pathname.slice(0, slashLastIndex)\n}\n","export const pathnameToExtension = (pathname) => {\n const slashLastIndex = pathname.lastIndexOf(\"/\")\n if (slashLastIndex !== -1) {\n pathname = pathname.slice(slashLastIndex + 1)\n }\n\n const dotLastIndex = pathname.lastIndexOf(\".\")\n if (dotLastIndex === -1) return \"\"\n // if (dotLastIndex === pathname.length - 1) return \"\"\n return pathname.slice(dotLastIndex)\n}\n","export const pathnameToRelativePath = (pathname, otherPathname) =>\n pathname.slice(otherPathname.length)\n","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","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","import defineProperty from \"../defineProperty/defineProperty.js\"\n\nexport default function(target) {\n for (var i = 1; i < arguments.length; i++) {\n // eslint-disable-next-line prefer-rest-params\n var source = arguments[i] === null ? {} : arguments[i]\n if (i % 2) {\n // eslint-disable-next-line no-loop-func\n ownKeys(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 // eslint-disable-next-line no-loop-func\n ownKeys(source).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key))\n })\n }\n }\n return target\n}\n\n// This function is different to \"Reflect.ownKeys\". The enumerableOnly\n// filters on symbol properties only. Returned string properties are always\n// enumerable. It is good to use in objectSpread.\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 // eslint-disable-next-line prefer-spread\n keys.push.apply(keys, symbols)\n }\n return keys\n}\n","// eslint-disable-next-line import/no-unresolved\nimport importMap from \"/.jsenv/importMap.json\"\nimport { resolvePath } from \"@jsenv/module-resolution\"\n\nconst nodeRequire = require\nexport { nodeRequire as require }\n\nconst filenameContainsBackSlashes = __filename.indexOf(\"\\\\\") > -1\n\nexport const url = filenameContainsBackSlashes\n ? `file://${__filename.replace(/\\\\/g, \"/\")}`\n : `file://${__filename}`\n\nexport const resolve = (specifier) => {\n return resolvePath({ specifier, importer: url, importMap, defaultExtension: false })\n}\n","import { resolve } from \"path\"\nimport { hrefToPathname } from \"@jsenv/href\"\nimport {\n pathnameToOperatingSystemPath,\n operatingSystemPathToPathname,\n pathnameToRelativePathname,\n} from \"@jsenv/operating-system-path\"\n\nlet jsenvCorePath\nif (typeof __filename === \"string\") {\n jsenvCorePath = resolve(__filename, \"../../../\") // get ride of dist/commonjs/main.js\n} else {\n const selfPathname = hrefToPathname(import.meta.url)\n const selfPath = pathnameToOperatingSystemPath(selfPathname)\n jsenvCorePath = resolve(selfPath, \"../../../\") // get ride of src/jsenvCorePath/jsenvCorePath.js\n}\n\nexport { jsenvCorePath }\n\nexport const jsenvCorePathname = operatingSystemPathToPathname(jsenvCorePath)\n\n/**\n * jsenvRelativePathInception is used for the following:\n *\n * You may want to override some file internally used by jsenv.\n * When you do that you must pass a relativePath to a file in your project.\n * If you don't pass a custom file, jsenv must provide a default file.\n *\n * Keep in mind: it is possible for a project to depend indirectly from jsenv\n * so that the jsenv module will not be in project/node_modules/@jsenv/module-name\n * but in project/node_modules/@jsenv/whatever/node_modules/@jsenv/module-name.\n * It means the file is still relative to project but node module resolution\n * would not find the file.\n *\n */\n\nexport const jsenvCoreRelativePathInception = ({ jsenvCoreRelativePath, projectPathname }) => {\n const jsenvPathname = `${jsenvCorePathname}${jsenvCoreRelativePath}`\n const relativePath = pathnameToRelativePathname(jsenvPathname, projectPathname)\n return relativePath\n}\n","// https://github.com/babel/babel/blob/99f4f6c3b03c7f3f67cf1b9f1a21b80cfd5b0224/packages/babel-core/src/tools/build-external-helpers.js\n// the list of possible helpers:\n// https://github.com/babel/babel/blob/99f4f6c3b03c7f3f67cf1b9f1a21b80cfd5b0224/packages/babel-helpers/src/helpers.js#L13\nimport { jsenvCorePathname } from \"../jsenvCorePath/jsenvCorePath.js\"\n\nconst { list } = import.meta.require(\"@babel/helpers\")\n\nconst babelHelperNameInsideJsenvCoreArray = [\n \"applyDecoratedDescriptor\",\n \"arrayWithHoles\",\n \"arrayWithoutHoles\",\n \"assertThisInitialized\",\n \"AsyncGenerator\",\n \"asyncGeneratorDelegate\",\n \"asyncIterator\",\n \"asyncToGenerator\",\n \"awaitAsyncGenerator\",\n \"AwaitValue\",\n \"classCallCheck\",\n \"classNameTDZError\",\n \"classPrivateFieldDestructureSet\",\n \"classPrivateFieldGet\",\n \"classPrivateFieldLooseBase\",\n \"classPrivateFieldLooseKey\",\n \"classPrivateFieldSet\",\n \"classPrivateMethodGet\",\n \"classPrivateMethodSet\",\n \"classStaticPrivateFieldSpecGet\",\n \"classStaticPrivateFieldSpecSet\",\n \"classStaticPrivateMethodGet\",\n \"classStaticPrivateMethodSet\",\n \"construct\",\n \"createClass\",\n \"decorate\",\n \"defaults\",\n \"defineEnumerableProperties\",\n \"defineProperty\",\n \"extends\",\n \"get\",\n \"getPrototypeOf\",\n \"inherits\",\n \"inheritsLoose\",\n \"initializerDefineProperty\",\n \"initializerWarningHelper\",\n \"instanceof\",\n \"interopRequireDefault\",\n \"interopRequireWildcard\",\n \"isNativeFunction\",\n \"iterableToArray\",\n \"iterableToArrayLimit\",\n \"iterableToArrayLimitLoose\",\n \"jsx\",\n \"newArrowCheck\",\n \"nonIterableRest\",\n \"nonIterableSpread\",\n \"objectDestructuringEmpty\",\n \"objectSpread\",\n \"objectSpread2\",\n \"objectWithoutProperties\",\n \"objectWithoutPropertiesLoose\",\n \"possibleConstructorReturn\",\n \"readOnlyError\",\n \"set\",\n \"setPrototypeOf\",\n \"skipFirstGeneratorNext\",\n \"slicedToArray\",\n \"slicedToArrayLoose\",\n \"superPropBase\",\n \"taggedTemplateLiteral\",\n \"taggedTemplateLiteralLoose\",\n \"tdz\",\n \"temporalRef\",\n \"temporalUndefined\",\n \"toArray\",\n \"toConsumableArray\",\n \"toPrimitive\",\n \"toPropertyKey\",\n \"typeof\",\n \"wrapAsyncGenerator\",\n \"wrapNativeSuper\",\n \"wrapRegExp\",\n]\n\nconst babelHelperMap = {}\nlist.forEach((babelHelperName) => {\n if (babelHelperNameInsideJsenvCoreArray.includes(babelHelperName)) {\n babelHelperMap[\n babelHelperName\n ] = `@jsenv/core/helpers/babel/${babelHelperName}/${babelHelperName}.js`\n } else {\n babelHelperMap[\n babelHelperName\n ] = `file://${jsenvCorePathname}/.babel-helpers/${babelHelperName}.js`\n }\n})\nexport { babelHelperMap }\n","// https://www.statista.com/statistics/268299/most-popular-internet-browsers/\n// this source of stat is what I found in 5min\n// we could improve these default usage score using better stats\n// and keep in mind this should be updated time to time or even better\n// come from a project specific audience\n\nexport const browserScoreMap = {\n android: 0.001,\n chrome: {\n \"71\": 0.3,\n \"69\": 0.19,\n \"0\": 0.01, // it means oldest version of chrome will get a score of 0.01\n },\n firefox: {\n \"61\": 0.3,\n },\n edge: {\n \"12\": 0.1,\n },\n electron: 0.001,\n ios: 0.001,\n opera: 0.001,\n other: 0.001,\n safari: {\n \"10\": 0.1,\n },\n}\n","// certainly needs to be moved to @dmail/cancellation\n\nexport const firstOperationMatching = ({ array, start, predicate }) => {\n if (typeof array !== \"object\") throw new TypeError(createArrayErrorMessage({ array }))\n if (typeof start !== \"function\") throw new TypeError(createStartErrorMessage({ start }))\n if (typeof predicate !== \"function\")\n throw new TypeError(createPredicateErrorMessage({ predicate }))\n\n return new Promise((resolve, reject) => {\n const visit = (index) => {\n if (index >= array.length) {\n return resolve()\n }\n const input = array[index]\n const returnValue = start(input)\n return Promise.resolve(returnValue).then((output) => {\n if (predicate(output)) {\n return resolve(output)\n }\n return visit(index + 1)\n }, reject)\n }\n\n visit(0)\n })\n}\n\nconst createArrayErrorMessage = ({ array }) => `array must be an object.\narray: ${array}`\n\nconst createStartErrorMessage = ({ start }) => `start must be a function.\nstart: ${start}`\n\nconst createPredicateErrorMessage = ({ predicate }) => `predicate must be a function.\npredicate: ${predicate}`\n","import defineProperty from \"../defineProperty/defineProperty.js\"\n\nexport default function(target) {\n for (var i = 1; i < arguments.length; i++) {\n // eslint-disable-next-line prefer-rest-params\n var source = arguments[i] === null ? {} : arguments[i]\n if (i % 2) {\n // eslint-disable-next-line no-loop-func\n ownKeys(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 // eslint-disable-next-line no-loop-func\n ownKeys(source).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key))\n })\n }\n }\n return target\n}\n\n// This function is different to \"Reflect.ownKeys\". The enumerableOnly\n// filters on symbol properties only. Returned string properties are always\n// enumerable. It is good to use in objectSpread.\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 // eslint-disable-next-line prefer-spread\n keys.push.apply(keys, symbols)\n }\n return keys\n}\n","export const promiseSequence = async (callbackArray) => {\n const values = []\n const visit = async (index) => {\n if (index === callbackArray.length) return\n const callback = callbackArray[index]\n const value = await callback()\n values.push(value)\n await visit(index + 1)\n }\n await visit(0)\n return values\n}\n","import { mkdir, lstat } from \"fs\"\nimport { promiseSequence } from \"./promiseSequence.js\"\n\n// nodejs 10.12.0 https://nodejs.org/api/fs.html#fs_fs_mkdir_path_options_callback\n// export const ensureFolderLeadingTo = (file) => {\n// return new Promise((resolve, reject) => {\n// fs.mkdir(path.dirname(file), { resurcive: true }, (error) => {\n// if (error) {\n// if (error.code === \"EEXIST\") {\n// resolve()\n// return\n// }\n// reject(error)\n// return\n// }\n// resolve()\n// })\n// })\n// }\n\nexport const fileMakeDirname = (file) => {\n const fileNormalized = normalizeSeparation(file)\n // remove first / in case path starts with / (linux)\n // because it would create a \"\" entry in folders array below\n // tryig to create a folder at \"\"\n const fileStartsWithSlash = fileNormalized[0] === \"/\"\n const pathname = fileStartsWithSlash ? fileNormalized.slice(1) : fileNormalized\n const folders = pathname.split(\"/\")\n folders.pop()\n\n return promiseSequence(\n folders.map((_, index) => {\n return () => {\n const folder = folders.slice(0, index + 1).join(\"/\")\n return folderMake(`${fileStartsWithSlash ? \"/\" : \"\"}${folder}`)\n }\n }),\n )\n}\n\nconst normalizeSeparation = (file) => file.replace(/\\\\/g, \"/\")\n\nconst folderMake = (folder) =>\n new Promise((resolve, reject) => {\n mkdir(folder, async (error) => {\n if (error) {\n // au cas ou deux script essayent de crée un dossier peu importe qui y arrive c'est ok\n if (error.code === \"EEXIST\") {\n const stat = await fileLastStat(folder)\n if (stat.isDirectory()) {\n resolve()\n } else {\n reject({ status: 500, reason: \"expect a directory\" })\n }\n } else {\n reject({ status: 500, reason: error.code })\n }\n } else {\n resolve()\n }\n })\n })\n\nconst fileLastStat = (path) =>\n new Promise((resolve, reject) => {\n lstat(path, (error, lstat) => {\n if (error) {\n reject({ status: 500, reason: error.code })\n } else {\n resolve(lstat)\n }\n })\n })\n","import { promisify } from \"util\"\nimport { copyFile } from \"fs\"\nimport { fileMakeDirname } from \"./fileMakeDirname.js\"\n\nconst copyFilePromisified = promisify(copyFile)\n\nexport const fileCopy = async (source, destination) => {\n await fileMakeDirname(destination)\n return copyFilePromisified(source, destination)\n}\n","import { promisify } from \"util\"\nimport { readFile } from \"fs\"\n\nconst readFilePromisified = promisify(readFile)\n\nexport const fileRead = async (file) => {\n const buffer = await readFilePromisified(file)\n return buffer.toString()\n}\n","import { promisify } from \"util\"\nimport { stat } from \"fs\"\n\nconst statPromisified = promisify(stat)\n\nexport const fileStat = async (file) => {\n const stat = await statPromisified(file)\n return stat\n}\n","import { promisify } from \"util\"\nimport { lstat } from \"fs\"\n\nconst lstatPromisified = promisify(lstat)\n\nexport const fileLStat = async (file) => {\n const lstat = await lstatPromisified(file)\n return lstat\n}\n","import { promisify } from \"util\"\nimport { writeFile } from \"fs\"\nimport { fileMakeDirname } from \"./fileMakeDirname.js\"\n\nconst writeFilePromisified = promisify(writeFile)\n\nexport const fileWrite = async (file, content) => {\n await fileMakeDirname(file)\n return writeFilePromisified(file, content)\n}\n","import { promisify } from \"util\"\nimport { readdir } from \"fs\"\n\nconst readdirPromisified = promisify(readdir)\n\nexport const folderRead = async (folder) => {\n const ressources = await readdirPromisified(folder)\n return ressources\n}\n","const rimraf = import.meta.require(\"rimraf\")\n\nexport const removeFolder = (foldername) =>\n new Promise((resolve, reject) =>\n rimraf(foldername, (error) => {\n if (error) reject(error)\n else resolve()\n }),\n )\n","export const BEST_ID = \"best\"\n\nexport const OTHERWISE_ID = \"otherwise\"\n","const { buildExternalHelpers } = import.meta.require(\"@babel/core\")\nconst { getDependencies } = import.meta.require(\"@babel/helpers\")\n\nexport const generateBabelHelper = (name) => {\n const helpersToBuild = [name]\n\n /**\n * we have to ensure we generate helper dependencies too because\n * some helper contains import like\n * import \"setPrototypeOf\"\n * and babel deletes them somehow during buildExternalHelpers\n *\n * To fix that we could for instance extract babel helpers into\n * actual files like we already do for global-this\n * or regenerator-runtime\n *\n * But it means every babel update means updating thoose files too.\n * for now let's keep it like that\n */\n\n const ensureDependencies = (name) => {\n const dependencies = getDependencies(name)\n dependencies.forEach((name) => {\n if (helpersToBuild.includes(name)) {\n return\n }\n helpersToBuild.push(name)\n ensureDependencies(name)\n })\n }\n ensureDependencies(name)\n\n return buildExternalHelpers(helpersToBuild, \"module\")\n}\n","// we could reuse this to get a list of polyfill\n// using https://github.com/babel/babel/blob/master/packages/babel-preset-env/data/built-ins.json#L1\n// adding a featureNameArray to every group\n// and according to that featureNameArray, add these polyfill\n// to the generated bundle\n\nexport const polyfillCompatMap = {}\n","// eslint-disable-next-line consistent-return\nexport default (arr) => {\n if (Array.isArray(arr)) {\n var i = 0\n var arr2 = new Array(arr.length)\n for (; i < arr.length; i++) arr2[i] = arr[i]\n return arr2\n }\n}\n","// eslint-disable-next-line consistent-return\nexport default (iter) => {\n if (\n Symbol.iterator in Object(iter) ||\n Object.prototype.toString.call(iter) === \"[object Arguments]\"\n )\n return Array.from(iter)\n}\n","export default () => {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\")\n}\n","import arrayWithoutHoles from \"../arrayWithoutHoles/arrayWithoutHoles.js\"\nimport iterableToArray from \"../iterableToArray/iterableToArray.js\"\nimport nonIterableSpread from \"../nonIterableSpread/nonIterableSpread.js\"\n\nexport default (arr) => arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread()\n","export const valueToVersion = (value) => {\n if (typeof value === \"number\") {\n return numberToVersion(value)\n }\n\n if (typeof value === \"string\") {\n return stringToVersion(value)\n }\n\n throw new TypeError(createValueErrorMessage({ version: value }))\n}\n\nconst numberToVersion = (number) => {\n return {\n major: number,\n minor: 0,\n patch: 0,\n }\n}\n\nconst stringToVersion = (string) => {\n if (string.indexOf(\".\") > -1) {\n const parts = string.split(\".\")\n return {\n major: Number(parts[0]),\n minor: parts[1] ? Number(parts[1]) : 0,\n patch: parts[2] ? Number(parts[2]) : 0,\n }\n }\n\n if (isNaN(string)) {\n return {\n major: 0,\n minor: 0,\n patch: 0,\n }\n }\n\n return {\n major: Number(string),\n minor: 0,\n patch: 0,\n }\n}\n\nconst createValueErrorMessage = ({ value }) => `value must be a number or a string.\nvalue: ${value}`\n","import { valueToVersion } from \"./valueToVersion.js\"\n\nexport const versionCompare = (versionA, versionB) => {\n const semanticVersionA = valueToVersion(versionA)\n const semanticVersionB = valueToVersion(versionB)\n\n const majorDiff = semanticVersionA.major - semanticVersionB.major\n if (majorDiff > 0) {\n return majorDiff\n }\n if (majorDiff < 0) {\n return majorDiff\n }\n\n const minorDiff = semanticVersionA.minor - semanticVersionB.minor\n if (minorDiff > 0) {\n return minorDiff\n }\n if (minorDiff < 0) {\n return minorDiff\n }\n\n const patchDiff = semanticVersionA.patch - semanticVersionB.patch\n if (patchDiff > 0) {\n return patchDiff\n }\n if (patchDiff < 0) {\n return patchDiff\n }\n\n return 0\n}\n","import { versionCompare } from \"./versionCompare.js\"\n\nexport const versionIsBelow = (versionSupposedBelow, versionSupposedAbove) => {\n return versionCompare(versionSupposedBelow, versionSupposedAbove) < 0\n}\n","import { versionIsBelow } from \"./versionIsBelow.js\"\n\nexport const findHighestVersion = (...values) => {\n if (values.length === 0) throw new Error(`missing argument`)\n\n return values.reduce((highestVersion, value) => {\n if (versionIsBelow(highestVersion, value)) {\n return value\n }\n return highestVersion\n })\n}\n","import { findHighestVersion } from \"../semantic-versioning/index.js\"\n\nexport const computeIncompatibleNameArray = ({\n featureCompatMap,\n platformName,\n platformVersion,\n}) => {\n const incompatibleNameArray = []\n\n Object.keys(featureCompatMap).forEach((featureName) => {\n const compatible = platformIsCompatibleWithFeature({\n platformName,\n platformVersion,\n featureCompat: featureName in featureCompatMap ? featureCompatMap[featureName] : {},\n })\n if (!compatible) {\n incompatibleNameArray.push(featureName)\n }\n })\n\n return incompatibleNameArray\n}\n\nconst platformIsCompatibleWithFeature = ({ platformName, platformVersion, featureCompat }) => {\n const platformCompatibleVersion = computePlatformCompatibleVersion({\n featureCompat,\n platformName,\n })\n const highestVersion = findHighestVersion(platformVersion, platformCompatibleVersion)\n return highestVersion === platformVersion\n}\n\nconst computePlatformCompatibleVersion = ({ featureCompat, platformName }) => {\n return platformName in featureCompat ? featureCompat[platformName] : \"Infinity\"\n}\n","import { findHighestVersion, versionCompare } from \"../semantic-versioning/index.js\"\nimport { computeIncompatibleNameArray } from \"./computeIncompatibleNameArray.js\"\n\nexport const generatePlatformGroupArray = ({ featureCompatMap, platformName }) => {\n const featureNameArray = Object.keys(featureCompatMap)\n const featureNameArrayWithCompat = featureNameArray.filter(\n (featureName) => platformName in featureCompatMap[featureName],\n )\n\n const versionArray = featureNameArrayWithCompat\n // why do I convert them to string, well ok let's keep it like that\n .map((featureName) => String(featureCompatMap[featureName][platformName]))\n .concat(\"0.0.0\") // at least version 0\n // filter is to have unique version I guess\n .filter((version, index, array) => array.indexOf(version) === index)\n .sort(versionCompare)\n\n const platformGroupArray = []\n\n versionArray.forEach((version) => {\n const incompatibleNameArray = computeIncompatibleNameArray({\n featureCompatMap,\n platformName,\n platformVersion: version,\n }).sort()\n\n const groupWithSameIncompatibleFeatures = platformGroupArray.find(\n (platformGroup) =>\n platformGroup.incompatibleNameArray.join(\"\") === incompatibleNameArray.join(\"\"),\n )\n\n if (groupWithSameIncompatibleFeatures) {\n groupWithSameIncompatibleFeatures.platformCompatMap[platformName] = findHighestVersion(\n groupWithSameIncompatibleFeatures.platformCompatMap[platformName],\n version,\n )\n } else {\n platformGroupArray.push({\n incompatibleNameArray: incompatibleNameArray.slice(),\n platformCompatMap: {\n [platformName]: version,\n },\n })\n }\n })\n\n return platformGroupArray\n}\n","import { findHighestVersion } from \"../semantic-versioning/index.js\"\n\nexport const composePlatformCompatMap = (platformCompatMap, secondPlatformCompatMap) => {\n return objectComposeValue(\n normalizePlatformCompatMapVersions(platformCompatMap),\n normalizePlatformCompatMapVersions(secondPlatformCompatMap),\n (version, secondVersion) => findHighestVersion(version, secondVersion),\n )\n}\n\nconst normalizePlatformCompatMapVersions = (platformCompatibility) => {\n return objectMapValue(platformCompatibility, (version) => String(version))\n}\n\nconst objectMapValue = (object, callback) => {\n const mapped = {}\n\n Object.keys(object).forEach((key) => {\n mapped[key] = callback(object[key], key, object)\n })\n\n return mapped\n}\n\nconst objectComposeValue = (previous, object, callback) => {\n const composed = { ...previous }\n\n Object.keys(object).forEach((key) => {\n composed[key] = key in composed ? callback(composed[key], object[key]) : object[key]\n })\n\n return composed\n}\n","import { composePlatformCompatMap } from \"./composePlatformCompatMap.js\"\n\nexport const composeGroupArray = (...arrayOfGroupArray) => {\n return arrayOfGroupArray.reduce(groupArrayReducer, [])\n}\n\nconst groupArrayReducer = (previousGroupArray, groupArray) => {\n const reducedGroupArray = []\n\n previousGroupArray.forEach((group) => {\n reducedGroupArray.push({\n incompatibleNameArray: group.incompatibleNameArray.slice(),\n platformCompatMap: { ...group.platformCompatMap },\n })\n })\n\n groupArray.forEach((group) => {\n const groupWithSameIncompatibleFeature = reducedGroupArray.find((existingGroupCandidate) =>\n groupHaveSameIncompatibleFeatures(group, existingGroupCandidate),\n )\n if (groupWithSameIncompatibleFeature) {\n groupWithSameIncompatibleFeature.platformCompatMap = composePlatformCompatMap(\n groupWithSameIncompatibleFeature.platformCompatMap,\n group.platformCompatMap,\n )\n } else {\n reducedGroupArray.push({\n incompatibleNameArray: group.incompatibleNameArray.slice(),\n platformCompatMap: { ...group.platformCompatMap },\n })\n }\n })\n\n return reducedGroupArray\n}\n\nconst groupHaveSameIncompatibleFeatures = (groupA, groupB) => {\n return groupA.incompatibleNameArray.join(\"\") === groupB.incompatibleNameArray.join(\"\")\n}\n","import { generatePlatformGroupArray } from \"./generatePlatformGroupArray.js\"\nimport { composeGroupArray } from \"./composeGroupArray.js\"\n\nexport const generateAllPlatformGroupArray = ({ featureCompatMap, platformNames }) => {\n const arrayOfGroupArray = platformNames.map((platformName) =>\n generatePlatformGroupArray({\n featureCompatMap,\n platformName,\n }),\n )\n const groupArray = composeGroupArray(...arrayOfGroupArray)\n return groupArray\n}\n","import { versionCompare, findHighestVersion } from \"../semantic-versioning/index.js\"\n\nexport const platformCompatMapToScore = (platformCompatMap, platformScoreMap) => {\n return Object.keys(platformCompatMap).reduce((previous, platformName) => {\n const platformVersion = platformCompatMap[platformName]\n return previous + platformToScore(platformName, platformVersion, platformScoreMap)\n }, 0)\n}\n\nconst platformToScore = (platformName, platformVersion, platformScoreMap) => {\n if (platformName in platformScoreMap === false) return platformScoreMap.other || 0\n\n const versionUsageMap = platformScoreMap[platformName]\n const versionArray = Object.keys(versionUsageMap)\n if (versionArray.length === 0) return platformScoreMap.other || 0\n\n const versionArrayAscending = versionArray.sort(versionCompare)\n const highestVersion = versionArrayAscending[versionArray.length - 1]\n\n if (findHighestVersion(platformVersion, highestVersion) === platformVersion)\n return versionUsageMap[highestVersion]\n\n const closestVersion = versionArrayAscending\n .reverse()\n .find((version) => findHighestVersion(platformVersion, version) === platformVersion)\n\n if (!closestVersion) return platformScoreMap.other || 0\n\n return versionUsageMap[closestVersion]\n}\n","/*\n\n# featureCompatMap legend\n\n featureName\n │\n{ ┌──────────┴────────────┐\n \"transform-block-scoping\": {─┐\n \"chrome\": \"10\", │\n \"safari\": \"3.0\", platformCompatMap\n \"firefox\": \"5.1\" │\n }────┼─────────┼─────────────┘\n} │ └─────┐\n platformName platformVersion\n\n# group legend\n\n{\n \"best\": {\n \"incompatibleNameArray\" : [\n \"transform-block-scoping\",\n ],\n \"platformCompatMap\": {\n \"chrome\": \"10\",\n \"firefox\": \"6\"\n }\n }\n}\n\nTake chars below to update legends\n─│┌┐└┘├┤┴┬\n\n*/\n\nimport { babelCompatMap as defaultBabelCompatMap } from \"../babelCompatMap/babelCompatMap.js\"\nimport { polyfillCompatMap as defaulPolyfillCompatMap } from \"../polyfillCompatMap/polyfillCompatMap.js\"\nimport { generateAllPlatformGroupArray } from \"./generateAllPlatformGroupArray.js\"\nimport { platformCompatMapToScore } from \"./platformCompatMapToScore.js\"\nimport { OTHERWISE_ID, BEST_ID } from \"../GROUP_ID.js\"\n\nexport const generateGroupMap = ({\n babelPluginMap,\n babelCompatMap = defaultBabelCompatMap,\n // polyfill are for later, for now, nothing is using them\n polyfillConfigMap = {},\n polyfillCompatMap = defaulPolyfillCompatMap,\n platformScoreMap,\n groupCount = 1,\n // pass this to true if you don't care if someone tries to run your code\n // on a platform which is not inside platformScoreMap.\n platformAlwaysInsidePlatformScoreMap = false,\n // pass this to true if you think you will always be able to detect\n // the platform or that if you fail to do so you don't care.\n platformWillAlwaysBeKnown = false,\n}) => {\n const groupMap = generateFeatureGroupMap({\n // here we should throw if key conflict between babelPluginMap/polyfillConfigMap\n featureConfigMap: { ...babelPluginMap, ...polyfillConfigMap },\n // here we should throw if key conflict on babelCompatMap/polyfillCompatMap\n featureCompatMap: {\n ...babelCompatMap,\n ...polyfillCompatMap,\n },\n platformScoreMap,\n groupCount,\n platformAlwaysInsidePlatformScoreMap,\n platformWillAlwaysBeKnown,\n })\n return groupMap\n}\n\nconst generateFeatureGroupMap = ({\n featureConfigMap,\n featureCompatMap,\n platformScoreMap,\n groupCount,\n platformAlwaysInsidePlatformScoreMap,\n platformWillAlwaysBeKnown,\n}) => {\n if (typeof featureConfigMap !== \"object\")\n throw new TypeError(`featureConfigMap must be an object, got ${featureConfigMap}`)\n if (typeof featureCompatMap !== \"object\")\n throw new TypeError(`featureCompatMap must be an object, got ${featureCompatMap}`)\n if (typeof platformScoreMap !== \"object\")\n throw new TypeError(`platformScoreMap must be an object, got ${platformScoreMap}`)\n if (typeof groupCount < 1) throw new TypeError(`groupCount must be above 1, got ${groupCount}`)\n\n const featureNameArray = Object.keys(featureConfigMap)\n\n const groupWithoutFeature = {\n incompatibleNameArray: featureNameArray,\n platformCompatMap: {},\n }\n\n // when we create one group and we cannot ensure\n // code will be runned on a platform inside platformScoreMap\n // then we return otherwise group to be safe\n if (groupCount === 1 && !platformAlwaysInsidePlatformScoreMap) {\n return {\n [OTHERWISE_ID]: groupWithoutFeature,\n }\n }\n\n const featureCompatMapWithoutHole = {}\n featureNameArray.forEach((featureName) => {\n featureCompatMapWithoutHole[featureName] =\n featureName in featureCompatMap ? featureCompatMap[featureName] : {}\n })\n\n const allPlatformGroupArray = generateAllPlatformGroupArray({\n featureCompatMap: featureCompatMapWithoutHole,\n platformNames: arrayWithoutValue(Object.keys(platformScoreMap), \"other\"),\n })\n\n if (allPlatformGroupArray.length === 0) {\n return {\n [OTHERWISE_ID]: groupWithoutFeature,\n }\n }\n\n const groupToScore = ({ platformCompatMap }) =>\n platformCompatMapToScore(platformCompatMap, platformScoreMap)\n\n const allPlatformGroupArraySortedByScore = allPlatformGroupArray.sort(\n (a, b) => groupToScore(b) - groupToScore(a),\n )\n\n const length = allPlatformGroupArraySortedByScore.length\n\n // if we arrive here and want a single group\n // we take the worst group and consider it's our best group\n // because it's the lowest platform we want to support\n if (groupCount === 1) {\n return {\n [BEST_ID]: allPlatformGroupArraySortedByScore[length - 1],\n }\n }\n\n const addOtherwiseToBeSafe = !platformAlwaysInsidePlatformScoreMap || !platformWillAlwaysBeKnown\n\n const lastGroupIndex = addOtherwiseToBeSafe ? groupCount - 1 : groupCount\n\n const groupArray =\n length + 1 > groupCount\n ? allPlatformGroupArraySortedByScore.slice(0, lastGroupIndex)\n : allPlatformGroupArraySortedByScore\n\n const groupMap = {}\n groupArray.forEach((group, index) => {\n if (index === 0) {\n groupMap[BEST_ID] = group\n } else {\n groupMap[`intermediate-${index + 1}`] = group\n }\n })\n if (addOtherwiseToBeSafe) {\n groupMap[OTHERWISE_ID] = groupWithoutFeature\n }\n return groupMap\n}\n\nconst arrayWithoutValue = (array, value) =>\n array.filter((valueCandidate) => valueCandidate !== value)\n","export const LOG_LEVEL_OFF = \"off\"\n\nexport const LOG_LEVEL_ERROR = \"error\"\n\nexport const LOG_LEVEL_WARN = \"warn\"\n\nexport const LOG_LEVEL_INFO = \"info\"\n\nexport const LOG_LEVEL_TRACE = \"trace\"\n","import {\n LOG_LEVEL_OFF,\n LOG_LEVEL_ERROR,\n LOG_LEVEL_WARN,\n LOG_LEVEL_INFO,\n LOG_LEVEL_TRACE,\n} from \"./LOG_LEVELS.js\"\n\nexport const createLogger = ({ logLevel = LOG_LEVEL_INFO } = {}) => {\n if (logLevel === LOG_LEVEL_TRACE) {\n return {\n trace,\n info,\n warn,\n error,\n }\n }\n\n if (logLevel === LOG_LEVEL_INFO) {\n return {\n trace: traceDisabled,\n info,\n warn,\n error,\n }\n }\n\n if (logLevel === LOG_LEVEL_WARN) {\n return {\n trace: traceDisabled,\n info: infoDisabled,\n warn,\n error,\n }\n }\n\n if (logLevel === LOG_LEVEL_ERROR) {\n return {\n trace: traceDisabled,\n info: infoDisabled,\n warn: warnDisabled,\n error,\n }\n }\n\n if (logLevel === LOG_LEVEL_OFF) {\n return {\n trace: traceDisabled,\n info: infoDisabled,\n warn: warnDisabled,\n error: errorDisabled,\n }\n }\n\n throw new Error(createUnexpectedLogLevelMessage({ logLevel }))\n}\n\nconst createUnexpectedLogLevelMessage = ({ logLevel }) => `unexpected logLevel.\n--- logLevel ---\n${logLevel}\n--- allowed log levels ---\n${LOG_LEVEL_OFF}\n${LOG_LEVEL_ERROR}\n${LOG_LEVEL_WARN}\n${LOG_LEVEL_INFO}\n${LOG_LEVEL_TRACE}\n`\n\nconst trace = console.trace\n\nconst traceDisabled = () => {}\n\nconst info = console.log\n\nconst infoDisabled = () => {}\n\nconst warn = console.warn\n\nconst warnDisabled = () => {}\n\nconst error = console.error\n\nconst errorDisabled = () => {}\n","import { fileRead, fileStat } from \"@dmail/helper\"\nimport { pathnameToOperatingSystemPath } from \"@jsenv/operating-system-path\"\nimport { dateToSecondsPrecision } from \"./dateToSecondsPrecision.js\"\nimport { getCompiledFilePath, getAssetFilePath } from \"./locaters.js\"\n\nconst { bufferToEtag } = import.meta.require(\"@dmail/server\")\n\nexport const validateCache = async ({\n projectPathname,\n compileCacheFolderRelativePath,\n compileRelativePath,\n cache,\n ifEtagMatch,\n ifModifiedSinceDate,\n logger,\n}) => {\n const compiledFileValidation = await validateCompiledFile({\n projectPathname,\n compileCacheFolderRelativePath,\n compileRelativePath,\n ifEtagMatch,\n ifModifiedSinceDate,\n logger,\n })\n if (!compiledFileValidation.valid) return compiledFileValidation\n\n const [sourcesValidations, assetValidations] = await Promise.all([\n validateSources({ projectPathname, cache, logger }),\n validateAssets({\n projectPathname,\n compileCacheFolderRelativePath,\n compileRelativePath,\n cache,\n logger,\n }),\n ])\n\n const invalidSourceValidation = sourcesValidations.find(({ valid }) => !valid)\n if (invalidSourceValidation) return invalidSourceValidation\n\n const invalidAssetValidation = assetValidations.find(({ valid }) => !valid)\n if (invalidAssetValidation) return invalidAssetValidation\n\n const compiledSource = compiledFileValidation.data.compiledSource\n const sourcesContent = sourcesValidations.map(({ data }) => data.sourceContent)\n const assetsContent = assetValidations.find(({ data }) => data.assetContent)\n\n return {\n valid: true,\n data: {\n compiledSource,\n sourcesContent,\n assetsContent,\n },\n }\n}\n\nconst validateCompiledFile = async ({\n projectPathname,\n compileCacheFolderRelativePath,\n compileRelativePath,\n ifEtagMatch,\n ifModifiedSinceDate,\n logger,\n}) => {\n const compiledFilename = getCompiledFilePath({\n projectPathname,\n compileCacheFolderRelativePath,\n compileRelativePath,\n })\n\n try {\n const compiledSource = await fileRead(compiledFilename)\n\n if (ifEtagMatch) {\n const compiledEtag = bufferToEtag(Buffer.from(compiledSource))\n if (ifEtagMatch !== compiledEtag) {\n logger.info(`etag changed for ${compiledFilename}`)\n return {\n code: \"COMPILED_FILE_ETAG_MISMATCH\",\n valid: false,\n data: { compiledSource, compiledEtag },\n }\n }\n }\n\n if (ifModifiedSinceDate) {\n const compiledMtime = await fileStat(compiledFilename)\n if (ifModifiedSinceDate < dateToSecondsPrecision(compiledMtime)) {\n logger.info(`mtime changed for ${compiledFilename}`)\n return {\n code: \"COMPILED_FILE_MTIME_OUTDATED\",\n valid: false,\n data: { compiledSource, compiledMtime },\n }\n }\n }\n\n return {\n valid: true,\n data: { compiledSource },\n }\n } catch (error) {\n if (error && error.code === \"ENOENT\") {\n return {\n code: \"COMPILED_FILE_NOT_FOUND\",\n valid: false,\n data: { compiledFilename },\n }\n }\n return Promise.reject(error)\n }\n}\n\nconst validateSources = ({ projectPathname, cache, logger }) =>\n Promise.all(\n cache.sources.map((source, index) =>\n validateSource({\n projectPathname,\n source,\n eTag: cache.sourcesEtag[index],\n logger,\n }),\n ),\n )\n\nconst validateSource = async ({ projectPathname, source, eTag, logger }) => {\n const sourceFilename = pathnameToOperatingSystemPath(`${projectPathname}${source}`)\n\n try {\n const sourceContent = await fileRead(sourceFilename)\n const sourceETag = bufferToEtag(Buffer.from(sourceContent))\n\n if (sourceETag !== eTag) {\n logger.info(`etag changed for ${sourceFilename}`)\n return {\n code: \"SOURCE_ETAG_MISMATCH\",\n valid: false,\n data: { source, sourceFilename, sourceContent },\n }\n }\n\n return {\n valid: true,\n data: { sourceContent },\n }\n } catch (e) {\n if (e && e.code === \"ENOENT\") {\n // TODO: decide if it should invalidate cache or not\n // I think if the source cannot be found it does not invalidate the cache\n // it means something is missing to absolutely sure the cache is valid\n // but does not necessarily means the cache is invalid\n // but if we allow source file not found\n // it means we must remove sources from the list of sources\n // or at least consider as normal that it's missing\n // in that case, inside updateCache we must not search for sources that\n // are missing, nor put their etag\n // or we could return sourceContent: '', and the etag would be empty\n logger.info(`source not found at ${sourceFilename}`)\n return {\n code: \"SOURCE_NOT_FOUND\",\n valid: true,\n data: { source, sourceFilename, sourceContent: \"\" },\n }\n }\n throw e\n }\n}\n\nconst validateAssets = ({\n projectPathname,\n compileCacheFolderRelativePath,\n compileRelativePath,\n cache,\n logger,\n}) =>\n Promise.all(\n cache.assets.map((asset, index) =>\n validateAsset({\n projectPathname,\n compileCacheFolderRelativePath,\n compileRelativePath,\n asset,\n eTag: cache.assetsEtag[index],\n logger,\n }),\n ),\n )\n\nconst validateAsset = async ({\n projectPathname,\n compileCacheFolderRelativePath,\n compileRelativePath,\n asset,\n eTag,\n logger,\n}) => {\n const assetFilename = getAssetFilePath({\n projectPathname,\n compileCacheFolderRelativePath,\n compileRelativePath,\n asset,\n })\n\n try {\n const assetContent = await fileRead(assetFilename)\n const assetContentETag = bufferToEtag(Buffer.from(assetContent))\n\n if (eTag !== assetContentETag) {\n logger.info(`etag changed for ${assetFilename}`)\n return {\n code: \"ASSET_ETAG_MISMATCH\",\n valid: false,\n data: { asset, assetFilename, assetContent, assetContentETag },\n }\n }\n\n return {\n valid: true,\n data: { assetContent, assetContentETag },\n }\n } catch (error) {\n if (error && error.code === \"ENOENT\") {\n logger.info(`asset not found at ${assetFilename}`)\n return {\n code: \"ASSET_FILE_NOT_FOUND\",\n valid: false,\n data: { asset, assetFilename },\n }\n }\n return Promise.reject(error)\n }\n}\n","import { fileWrite } from \"@dmail/helper\"\nimport { getCacheFilePath, getAssetFilePath, getCompiledFilePath } from \"./locaters.js\"\n\nconst { bufferToEtag } = import.meta.require(\"@dmail/server\")\n\nexport const updateCache = ({\n projectPathname,\n compileCacheFolderRelativePath,\n sourceRelativePath,\n compileRelativePath,\n cacheHitTracking,\n cache,\n compileResult,\n compileResultStatus,\n logger,\n}) => {\n const isNew = compileResultStatus === \"created\"\n const isUpdated = compileResultStatus === \"updated\"\n const isCached = compileResultStatus === \"cached\"\n const {\n compiledSource,\n contentType,\n sources,\n sourcesContent,\n assets,\n assetsContent,\n } = compileResult\n const promises = []\n\n if (isNew || isUpdated) {\n const { writeCompiledSourceFile = true, writeAssetsFile = true } = compileResult\n const compiledFilePath = getCompiledFilePath({\n projectPathname,\n compileCacheFolderRelativePath,\n compileRelativePath,\n })\n\n if (writeCompiledSourceFile) {\n logger.info(`write file cache at ${compiledFilePath}`)\n promises.push(fileWrite(compiledFilePath, compiledSource))\n }\n\n if (writeAssetsFile) {\n promises.push(\n ...assets.map((asset, index) => {\n const assetFilePath = getAssetFilePath({\n projectPathname,\n compileCacheFolderRelativePath,\n compileRelativePath,\n asset,\n })\n\n logger.info(`write asset cache at ${assetFilePath}`)\n return fileWrite(assetFilePath, assetsContent[index])\n }),\n )\n }\n }\n\n if (isNew || isUpdated || (isCached && cacheHitTracking)) {\n if (isNew) {\n cache = {\n sourceRelativePath,\n contentType,\n sources,\n sourcesEtag: sourcesContent.map((sourceContent) =>\n bufferToEtag(Buffer.from(sourceContent)),\n ),\n assets,\n assetsEtag: assetsContent.map((assetContent) => bufferToEtag(Buffer.from(assetContent))),\n createdMs: Number(Date.now()),\n lastModifiedMs: Number(Date.now()),\n ...(cacheHitTracking\n ? {\n matchCount: 1,\n lastMatchMs: Number(Date.now()),\n }\n : {}),\n }\n } else if (isUpdated) {\n cache = {\n ...cache,\n sources,\n sourcesEtag: sourcesContent.map((sourceContent) =>\n bufferToEtag(Buffer.from(sourceContent)),\n ),\n assets,\n assetsEtag: assetsContent.map((assetContent) => bufferToEtag(Buffer.from(assetContent))),\n lastModifiedMs: Number(Date.now()),\n ...(cacheHitTracking\n ? {\n matchCount: cache.matchCount + 1,\n lastMatchMs: Number(Date.now()),\n }\n : {}),\n }\n } else {\n cache = {\n ...cache,\n ...(cacheHitTracking\n ? {\n matchCount: cache.matchCount + 1,\n lastMatchMs: Number(Date.now()),\n }\n : {}),\n }\n }\n\n const cacheFilePath = getCacheFilePath({\n projectPathname,\n compileCacheFolderRelativePath,\n compileRelativePath,\n })\n\n logger.info(`write cache at ${cacheFilePath}`)\n promises.push(fileWrite(cacheFilePath, JSON.stringify(cache, null, \" \")))\n }\n\n return Promise.all(promises)\n}\n","import { fileMakeDirname } from \"@dmail/helper\"\nimport { createLogger } from \"@jsenv/logger\"\nimport { readCache } from \"./readCache.js\"\nimport { validateCache } from \"./validateCache.js\"\nimport { updateCache } from \"./updateCache.js\"\nimport { getCacheFilePath, getSourceFilePath, getCompiledFilePath } from \"./locaters.js\"\nimport { createLockRegistry } from \"./createLockRegistry.js\"\n\nconst { lockForRessource } = createLockRegistry()\n\nconst lockfile = import.meta.require(\"proper-lockfile\")\n\nexport const getOrGenerateCompiledFile = async ({\n projectPathname,\n compileCacheFolderRelativePath,\n sourceRelativePath,\n compileRelativePath = sourceRelativePath,\n compile,\n cacheIgnored = false,\n cacheHitTracking = false,\n cacheInterProcessLocking = false,\n ifEtagMatch,\n ifModifiedSinceDate,\n logLevel = \"warn\",\n}) => {\n if (typeof projectPathname !== \"string\") {\n throw new TypeError(`projectPathname must be a string, got ${projectPathname}`)\n }\n if (typeof compileCacheFolderRelativePath !== \"string\") {\n throw new TypeError(\n `compileCacheFolderRelativePath must be a string, got ${compileCacheFolderRelativePath}`,\n )\n }\n if (typeof sourceRelativePath !== \"string\") {\n throw new TypeError(`sourceRelativePath must be a string, got ${sourceRelativePath}`)\n }\n if (typeof compileRelativePath !== \"string\") {\n throw new TypeError(`compileRelativePath must be a string, got ${compileRelativePath}`)\n }\n if (typeof compile !== \"function\") {\n throw new TypeError(`compile must be a function, got ${compile}`)\n }\n\n const logger = createLogger({ logLevel })\n\n return startAsap(\n async () => {\n const { cache, compileResult, compileResultStatus } = await computeCompileReport({\n projectPathname,\n compileCacheFolderRelativePath,\n sourceRelativePath,\n compileRelativePath,\n compile,\n ifEtagMatch,\n ifModifiedSinceDate,\n cacheIgnored,\n logger,\n })\n\n // useless because missing source cannot invalidate cache\n // see validateSource in validateCache.js\n // some sources might not exists on the filesystem\n // keep them in the sourcemap\n // however do not mark them as dependency of the compiled version\n // const sources = []\n // const sourcesContent = []\n // await Promise.all(\n // compileResult.sources.map(async (source, index) => {\n // const path = pathnameToOperatingSystemPath(`${projectPathname}${source}`)\n // const pathLeadsToFile = await new Promise((resolve) => {\n // stat(path, (error, stats) => {\n // if (error) {\n // resolve(false)\n // } else {\n // resolve(stats.isFile())\n // }\n // })\n // })\n // if (pathLeadsToFile) {\n // sources[index] = source\n // sourcesContent[index] = compileResult.sourcesContent[index]\n // }\n // }),\n // )\n\n // const compileResultWithoutMissingSource = {\n // ...compileResult,\n // sources: sources.filter((source) => source !== undefined),\n // sourcesContent: sourcesContent.filter((sourceContent) => sourceContent !== undefined),\n // }\n\n await updateCache({\n projectPathname,\n compileCacheFolderRelativePath,\n sourceRelativePath,\n compileRelativePath,\n cacheHitTracking,\n cache,\n compileResult,\n compileResultStatus,\n logger,\n })\n\n return { cache, compileResult, compileResultStatus }\n },\n {\n projectPathname,\n compileCacheFolderRelativePath,\n compileRelativePath,\n cacheInterProcessLocking,\n logger,\n },\n )\n}\n\nconst computeCompileReport = async ({\n projectPathname,\n compileCacheFolderRelativePath,\n sourceRelativePath,\n compileRelativePath,\n compile,\n ifEtagMatch,\n ifModifiedSinceDate,\n cacheIgnored,\n logger,\n}) => {\n const cache = cacheIgnored\n ? null\n : await readCache({\n projectPathname,\n compileCacheFolderRelativePath,\n sourceRelativePath,\n compileRelativePath,\n logger,\n })\n\n if (!cache) {\n const compileResult = await callCompile({\n projectPathname,\n compileCacheFolderRelativePath,\n sourceRelativePath,\n compileRelativePath,\n compile,\n logger,\n })\n\n return {\n cache: null,\n compileResult,\n compileResultStatus: \"created\",\n }\n }\n\n const cacheValidation = await validateCache({\n projectPathname,\n compileCacheFolderRelativePath,\n compileRelativePath,\n cache,\n ifEtagMatch,\n ifModifiedSinceDate,\n logger,\n })\n if (!cacheValidation.valid) {\n const compileResult = await callCompile({\n projectPathname,\n compileCacheFolderRelativePath,\n sourceRelativePath,\n compileRelativePath,\n compile,\n logger,\n })\n return { cache, compileResult, compileResultStatus: \"updated\" }\n }\n\n const { contentType, sources, assets } = cache\n const { compiledSource, sourcesContent, assetsContent } = cacheValidation.data\n return {\n cache,\n compileResult: { contentType, compiledSource, sources, sourcesContent, assets, assetsContent },\n compileResultStatus: \"cached\",\n }\n}\n\nconst callCompile = async ({\n projectPathname,\n compileCacheFolderRelativePath,\n sourceRelativePath,\n compileRelativePath,\n compile,\n logger,\n}) => {\n const sourceFilename = getSourceFilePath({\n projectPathname,\n sourceRelativePath,\n })\n const compiledFilename = getCompiledFilePath({\n projectPathname,\n compileCacheFolderRelativePath,\n compileRelativePath,\n })\n logger.info(`compile ${sourceRelativePath}`)\n\n const {\n sources = [],\n sourcesContent = [],\n assets = [],\n assetsContent = [],\n contentType,\n compiledSource,\n ...rest\n } = await compile({\n sourceRelativePath,\n compileRelativePath,\n sourceFilename,\n compiledFilename,\n })\n\n if (typeof contentType !== \"string\")\n throw new TypeError(`compile must return a contentType string, got ${contentType}`)\n if (typeof compiledSource !== \"string\")\n throw new TypeError(`compile must return a compiledSource string, got ${compiledSource}`)\n\n return {\n contentType,\n compiledSource,\n sources,\n sourcesContent,\n assets,\n assetsContent,\n ...rest,\n }\n}\n\nconst startAsap = async (\n fn,\n {\n projectPathname,\n compileCacheFolderRelativePath,\n compileRelativePath,\n cacheInterProcessLocking,\n logger,\n },\n) => {\n const cacheFilePath = getCacheFilePath({\n projectPathname,\n compileCacheFolderRelativePath,\n compileRelativePath,\n })\n\n logger.info(`lock ${cacheFilePath}`)\n // in case this process try to concurrently access meta we wait for previous to be done\n const unlockLocal = await lockForRessource(cacheFilePath)\n\n let unlockInterProcessLock = () => {}\n if (cacheInterProcessLocking) {\n // after that we use a lock pathnameRelative to be sure we don't conflict with other process\n // trying to do the same (mapy happen when spawining multiple server for instance)\n // https://github.com/moxystudio/node-proper-lockfile/issues/69\n await fileMakeDirname(cacheFilePath)\n // https://github.com/moxystudio/node-proper-lockfile#lockfile-options\n unlockInterProcessLock = await lockfile.lock(cacheFilePath, {\n realpath: false,\n retries: {\n retries: 20,\n minTimeout: 20,\n maxTimeout: 500,\n },\n })\n }\n\n try {\n return await fn()\n } finally {\n // we want to unlock in case of error too\n unlockLocal()\n unlockInterProcessLock()\n logger.info(`unlock ${cacheFilePath}`)\n }\n\n // here in case of error.code === 'ELOCKED' thrown from here\n // https://github.com/moxystudio/node-proper-lockfile/blob/1a478a43a077a7a7efc46ac79fd8f713a64fd499/lib/lockfile.js#L54\n // we could give a better failure message when server tries to compile a file\n // otherwise he'll get a 500 without much more info to debug\n\n // we use two lock because the local lock is very fast, it's a sort of perf improvement\n}\n","// https://nodejs.org/metrics/summaries/version/nodejs.org-access.log.csv\nexport const nodeVersionScoreMap = {\n \"0.10\": 0.02,\n \"0.12\": 0.01,\n 4: 0.1,\n 6: 0.25,\n 7: 0.1,\n 8: 1,\n 9: 0.1,\n 10: 0.5,\n 11: 0.25,\n}\n","export const assertImportMap = (value) => {\n if (value === null) {\n throw new TypeError(`an importMap must be an object, got null`)\n }\n\n const type = typeof value\n if (type !== \"object\") {\n throw new TypeError(`an importMap must be an object, received ${value}`)\n }\n\n if (Array.isArray(value)) {\n throw new TypeError(`an importMap must be an object, received array ${value}`)\n }\n}\n","// https://url.spec.whatwg.org/#example-start-with-a-widows-drive-letter\nexport const isWindowsDriveLetter = (specifier) => {\n const firstChar = specifier[0]\n if (!/[a-zA-Z]/.test(firstChar)) return false\n const secondChar = specifier[1]\n if (secondChar !== \":\") return false\n const thirdChar = specifier[2]\n return thirdChar === \"/\"\n}\n","import { isWindowsDriveLetter } from \"./isWindowsDriveLetter.js\"\n\n// \"https://domain.com/folder/file.js\"\n// \"file:///folder/file.js\"\n// \"chrome://folder/file.js\"\nexport const isAbsoluteSpecifier = (specifier) => {\n // window drive letter could are not protocol yep\n // something like `C:/folder/file.js`\n // will be considered as a bare import\n\n if (isWindowsDriveLetter(specifier.slice(0, 3))) return false\n return /^[a-zA-Z]+:/.test(specifier)\n}\n\nexport const resolveAbsoluteSpecifier = (specifier) => specifier\n","import { isAbsoluteSpecifier } from \"./resolveSpecifier/absoluteSpecifier.js\"\n\nexport const assertUrlLike = (value, name = \"specifier\") => {\n if (typeof value !== \"string\") {\n throw new TypeError(`${name} must be a string, got ${value}`)\n }\n if (!isAbsoluteSpecifier(value)) {\n throw new Error(`${name} must be an url and no scheme found, got ${value}`)\n }\n}\n","import { assertImportMap } from \"../assertImportMap.js\"\nimport { assertUrlLike } from \"../assertUrlLike.js\"\n\nexport const applyImportMap = ({ importMap, href, importerHref }) => {\n assertImportMap(importMap)\n assertUrlLike(href, \"href\")\n if (importerHref) {\n assertUrlLike(importerHref, \"importerHref\")\n }\n\n const { scopes } = importMap\n if (scopes && importerHref) {\n const scopeKeyMatching = Object.keys(scopes).find((scopeKey) => {\n return scopeKey === importerHref || specifierIsPrefixOf(scopeKey, importerHref)\n })\n if (scopeKeyMatching) {\n const scopeValue = scopes[scopeKeyMatching]\n const remappingFromScopeImports = applyImports(href, scopeValue)\n if (remappingFromScopeImports !== null) {\n return remappingFromScopeImports\n }\n }\n }\n\n const { imports } = importMap\n if (imports) {\n const remappingFromImports = applyImports(href, imports)\n if (remappingFromImports !== null) {\n return remappingFromImports\n }\n }\n\n return href\n}\n\nconst applyImports = (href, imports) => {\n const importKeyArray = Object.keys(imports)\n\n let i = 0\n while (i < importKeyArray.length) {\n const importKey = importKeyArray[i]\n i++\n if (importKey === href) {\n const importValue = imports[importKey]\n return importValue\n }\n if (specifierIsPrefixOf(importKey, href)) {\n const importValue = imports[importKey]\n const afterImportKey = href.slice(importKey.length)\n return importValue + afterImportKey\n }\n }\n\n return null\n}\n\nconst specifierIsPrefixOf = (specifierHref, href) => {\n return specifierHref[specifierHref.length - 1] === \"/\" && href.startsWith(specifierHref)\n}\n","// https://github.com/systemjs/systemjs/blob/89391f92dfeac33919b0223bbf834a1f4eea5750/src/common.js#L136\nimport { assertImportMap } from \"../assertImportMap.js\"\n\nexport const composeTwoImportMaps = (leftImportMap, rightImportMap) => {\n assertImportMap(leftImportMap)\n assertImportMap(rightImportMap)\n\n return {\n imports: composeTwoImports(leftImportMap.imports, rightImportMap.imports),\n scopes: composeTwoScopes(leftImportMap.scopes, rightImportMap.scopes),\n }\n}\n\nconst composeTwoImports = (leftImports = {}, rightImports = {}) => {\n return { ...leftImports, ...rightImports }\n}\n\nconst composeTwoScopes = (leftScopes = {}, rightScopes = {}) => {\n const scopes = { ...leftScopes }\n Object.keys(rightScopes).forEach((scopeKey) => {\n if (scopes.hasOwnProperty(scopeKey)) {\n scopes[scopeKey] = { ...scopes[scopeKey], ...rightScopes[scopeKey] }\n } else {\n scopes[scopeKey] = { ...rightScopes[scopeKey] }\n }\n })\n return scopes\n}\n","import { hrefToScheme } from \"@jsenv/href\"\n\n// \"//folder/file.js\"\nexport const isSchemeRelativeSpecifier = (specifier) => {\n return specifier.slice(0, 2) === \"//\"\n}\n\nexport const resolveSchemeRelativeSpecifier = (specifier, importer) => {\n return `${hrefToScheme(importer)}:${specifier}`\n}\n","import { hrefToOrigin } from \"@jsenv/href/src/hrefToOrigin/hrefToOrigin.js\"\n\n// \"/folder/file.js\"\nexport const isOriginRelativeSpecifier = (specifier) => {\n const firstChar = specifier[0]\n if (firstChar !== \"/\") return false\n\n const secondChar = specifier[1]\n if (secondChar === \"/\") return false\n\n return true\n}\n\nexport const resolveOriginRelativeSpecifier = (specifier, importer) => {\n const importerOrigin = hrefToOrigin(importer)\n\n return `${importerOrigin}/${specifier.slice(1)}`\n}\n","// https://github.com/systemjs/systemjs/blob/master/src/common.js\nimport { hrefToPathname } from \"@jsenv/href/src/hrefToPathname/hrefToPathname.js\"\nimport { hrefToOrigin } from \"@jsenv/href/src/hrefToOrigin/hrefToOrigin.js\"\nimport { pathnameToDirname } from \"@jsenv/href/src/pathnameToDirname/pathnameToDirname.js\"\n\n// \"./folder/file.js\"\n// \"../folder/file.js\"\nexport const isPathnameRelativeSpecifier = (specifier) => {\n if (specifier.slice(0, 2) === \"./\") return true\n\n if (specifier.slice(0, 3) === \"../\") return true\n\n return false\n}\n\nexport const resolvePathnameRelativeSpecifier = (specifier, importer) => {\n const importerPathname = hrefToPathname(importer)\n\n // ./foo.js on /folder/file.js -> /folder/foo.js\n // ./foo/bar.js on /folder/file.js -> /folder/foo/bar.js\n // ./foo.js on /folder/subfolder/file.js -> /folder/subfolder/foo.js\n if (specifier.slice(0, 2) === \"./\") {\n const importerOrigin = hrefToOrigin(importer)\n const importerDirname = pathnameToDirname(importerPathname)\n return `${importerOrigin}${importerDirname}/${specifier.slice(2)}`\n }\n\n // ../foo/bar.js on /folder/file.js -> /foo/bar.js\n // ../foo/bar.js on /folder/subfolder/file.js -> /folder/foo/bar.js\n // ../../foo/bar.js on /folder/file.js -> /foo/bar.js\n // ../bar.js on / -> /bar.js\n let unresolvedPathname = specifier\n const importerFolders = importerPathname.split(\"/\")\n importerFolders.pop() // remove file, it is not a folder\n\n while (unresolvedPathname.slice(0, 3) === \"../\") {\n // when there is no folder left to resolved\n // we just ignore '../'\n if (importerFolders.length) {\n importerFolders.pop()\n }\n unresolvedPathname = unresolvedPathname.slice(3)\n }\n\n const importerOrigin = hrefToOrigin(importer)\n const resolvedPathname = `${importerFolders.join(\"/\")}/${unresolvedPathname}`\n\n return `${importerOrigin}${resolvedPathname}`\n}\n","import { hrefToOrigin } from \"@jsenv/href/src/hrefToOrigin/hrefToOrigin.js\"\nimport { isAbsoluteSpecifier } from \"./absoluteSpecifier.js\"\nimport { isSchemeRelativeSpecifier } from \"./schemeRelativeSpecifier.js\"\nimport { isOriginRelativeSpecifier } from \"./originRelativeSpecifier.js\"\nimport { isPathnameRelativeSpecifier } from \"./pathnameRelativeSpecifier.js\"\n\nexport const isBareSpecifier = (specifier) => {\n if (isAbsoluteSpecifier(specifier)) return false\n\n if (isSchemeRelativeSpecifier(specifier)) return false\n\n if (isOriginRelativeSpecifier(specifier)) return false\n\n if (isPathnameRelativeSpecifier(specifier)) return false\n\n return true\n}\n\nexport const resolveBareSpecifier = (specifier, importer) => {\n const importerOrigin = hrefToOrigin(importer)\n\n return `${importerOrigin}/${specifier}`\n}\n","// could be useful: https://url.spec.whatwg.org/#url-miscellaneous\n\nimport { isAbsoluteSpecifier, resolveAbsoluteSpecifier } from \"./absoluteSpecifier.js\"\nimport {\n isSchemeRelativeSpecifier,\n resolveSchemeRelativeSpecifier,\n} from \"./schemeRelativeSpecifier.js\"\nimport {\n isOriginRelativeSpecifier,\n resolveOriginRelativeSpecifier,\n} from \"./originRelativeSpecifier.js\"\nimport {\n isPathnameRelativeSpecifier,\n resolvePathnameRelativeSpecifier,\n} from \"./pathnameRelativeSpecifier.js\"\nimport { resolveBareSpecifier } from \"./bareSpecifier.js\"\n\nexport const resolveSpecifier = (specifier, importer) => {\n if (isAbsoluteSpecifier(specifier)) {\n return resolveAbsoluteSpecifier(specifier, importer)\n }\n\n if (!importer) {\n throw new Error(createMissingImporterMessage(specifier, importer))\n }\n\n if (isSchemeRelativeSpecifier(specifier)) {\n return resolveSchemeRelativeSpecifier(specifier, importer)\n }\n\n if (isOriginRelativeSpecifier(specifier)) {\n return resolveOriginRelativeSpecifier(specifier, importer)\n }\n\n if (isPathnameRelativeSpecifier(specifier)) {\n return resolvePathnameRelativeSpecifier(specifier, importer)\n }\n\n return resolveBareSpecifier(specifier, importer)\n}\n\nconst createMissingImporterMessage = (\n specifier,\n importer,\n) => `missing importer to resolve relative specifier.\n--- specifier ---\n${specifier}\n--- importer ---\n${importer}`\n","import { resolveSpecifier } from \"../resolveSpecifier/resolveSpecifier.js\"\nimport { assertImportMap } from \"../assertImportMap.js\"\n\nexport const normalizeImportMap = (importMap, href) => {\n assertImportMap(importMap)\n if (typeof href !== \"string\") {\n throw new TypeError(`href must be a string, got ${href}`)\n }\n\n const { imports, scopes } = importMap\n return {\n imports: imports ? normalizeImports(imports, href) : undefined,\n scopes: scopes ? normalizeScopes(scopes, href) : undefined,\n }\n}\n\nconst normalizeImports = (imports, href) => {\n const importsNormalized = {}\n Object.keys(imports).forEach((importKey) => {\n const importValue = imports[importKey]\n const importKeyNormalized = resolveSpecifier(importKey, href)\n const importValueNormalized = resolveSpecifier(importValue, href)\n importsNormalized[importKeyNormalized] = importValueNormalized\n })\n return sortImports(importsNormalized)\n}\n\nconst normalizeScopes = (scopes, href) => {\n const scopesNormalized = {}\n Object.keys(scopes).forEach((scopeKey) => {\n const scopeValue = scopes[scopeKey]\n const scopeKeyNormalized = resolveSpecifier(scopeKey, href)\n const scopeValueNormalized = normalizeImports(scopeValue, href)\n scopesNormalized[scopeKeyNormalized] = scopeValueNormalized\n })\n return sortScopes(scopesNormalized)\n}\n\nconst sortImports = (imports) => {\n const sortedImports = {}\n Object.keys(imports)\n .sort(compareLengthOrLocaleCompare)\n .forEach((name) => {\n sortedImports[name] = imports[name]\n })\n return sortedImports\n}\n\nconst sortScopes = (scopes) => {\n const sortedScopes = {}\n Object.keys(scopes)\n .sort(compareLengthOrLocaleCompare)\n .forEach((scopeName) => {\n sortedScopes[scopeName] = sortImports(scopes[scopeName])\n })\n return sortedScopes\n}\n\nconst compareLengthOrLocaleCompare = (a, b) => {\n return b.length - a.length || a.localeCompare(b)\n}\n","// directly target the files because this code\n// will be executed either on node or browser\n// and also we don't want to pull more code than necessary\n// when this one gets bundled\nimport { hrefToPathname } from \"@jsenv/href/src/hrefToPathname/hrefToPathname.js\"\nimport { pathnameToExtension } from \"@jsenv/href/src/pathnameToExtension/pathnameToExtension.js\"\nimport { resolveSpecifier } from \"../resolveSpecifier/resolveSpecifier.js\"\nimport { applyImportMap } from \"../applyImportMap/applyImportMap.js\"\n\nexport const resolveImport = ({ specifier, importer, importMap, defaultExtension = true }) => {\n const specifierResolved = resolveSpecifier(specifier, importer)\n const specifierRemapped = importMap\n ? applyImportMap({ importMap, href: specifierResolved, importerHref: importer })\n : specifierResolved\n if (typeof defaultExtension === \"string\") {\n const extension = pathnameToExtension(specifierRemapped)\n if (extension === \"\") {\n return `${specifierRemapped}${defaultExtension}`\n }\n }\n if (defaultExtension === true) {\n const extension = pathnameToExtension(specifierRemapped)\n if (extension === \"\") {\n if (importer) {\n const importerPathname = hrefToPathname(importer)\n const importerExtension = pathnameToExtension(importerPathname)\n return `${specifierRemapped}${importerExtension}`\n }\n }\n }\n return specifierRemapped\n}\n","/* eslint-disable */\n// https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-modules-systemjs\n\nconst { template, types: t } = import.meta.require(\"@babel/core\")\nconst { declare } = import.meta.require(\"@babel/helper-plugin-utils\")\nconst { default: hoistVariables } = import.meta.require(\"@babel/helper-hoist-variables\")\n\nconst buildTemplate = template(`\n SYSTEM_REGISTER(MODULE_NAME, SOURCES, function (EXPORT_IDENTIFIER, CONTEXT_IDENTIFIER) {\n \"use strict\";\n BEFORE_BODY;\n return {\n setters: SETTERS,\n execute: EXECUTE\n };\n });\n`)\n\nconst buildExportAll = template(`\n for (var KEY in TARGET) {\n if (KEY !== \"default\" && KEY !== \"__esModule\") EXPORT_OBJ[KEY] = TARGET[KEY];\n }\n`)\n\nfunction constructExportCall(path, exportIdent, exportNames, exportValues, exportStarTarget) {\n const statements = []\n if (exportNames.length === 1) {\n statements.push(\n t.expressionStatement(\n t.callExpression(exportIdent, [t.stringLiteral(exportNames[0]), exportValues[0]]),\n ),\n )\n // eslint-disable-next-line no-negated-condition\n } else if (!exportStarTarget) {\n const objectProperties = []\n for (let i = 0; i < exportNames.length; i++) {\n const exportName = exportNames[i]\n const exportValue = exportValues[i]\n objectProperties.push(t.objectProperty(t.identifier(exportName), exportValue))\n }\n statements.push(\n t.expressionStatement(t.callExpression(exportIdent, [t.objectExpression(objectProperties)])),\n )\n } else {\n const exportObj = path.scope.generateUid(\"exportObj\")\n\n statements.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(t.identifier(exportObj), t.objectExpression([])),\n ]),\n )\n\n statements.push(\n buildExportAll({\n KEY: path.scope.generateUidIdentifier(\"key\"),\n EXPORT_OBJ: t.identifier(exportObj),\n TARGET: exportStarTarget,\n }),\n )\n\n for (let i = 0; i < exportNames.length; i++) {\n const exportName = exportNames[i]\n const exportValue = exportValues[i]\n\n statements.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(t.identifier(exportObj), t.identifier(exportName)),\n exportValue,\n ),\n ),\n )\n }\n\n statements.push(t.expressionStatement(t.callExpression(exportIdent, [t.identifier(exportObj)])))\n }\n return statements\n}\n\nconst TYPE_IMPORT = \"Import\"\n\nexport default declare((api, options) => {\n api.assertVersion(7)\n\n const { systemGlobal = \"System\" } = options\n const IGNORE_REASSIGNMENT_SYMBOL = Symbol()\n\n const reassignmentVisitor = {\n \"AssignmentExpression|UpdateExpression\"(path) {\n if (path.node[IGNORE_REASSIGNMENT_SYMBOL]) return\n path.node[IGNORE_REASSIGNMENT_SYMBOL] = true\n\n const arg = path.get(path.isAssignmentExpression() ? \"left\" : \"argument\")\n\n if (arg.isObjectPattern() || arg.isArrayPattern()) {\n const exprs = [path.node]\n for (const name of Object.keys(arg.getBindingIdentifiers())) {\n if (this.scope.getBinding(name) !== path.scope.getBinding(name)) {\n return\n }\n const exportedNames = this.exports[name]\n if (!exportedNames) return\n for (const exportedName of exportedNames) {\n exprs.push(this.buildCall(exportedName, t.identifier(name)).expression)\n }\n }\n path.replaceWith(t.sequenceExpression(exprs))\n return\n }\n\n if (!arg.isIdentifier()) return\n\n const name = arg.node.name\n\n // redeclared in this scope\n if (this.scope.getBinding(name) !== path.scope.getBinding(name)) return\n\n const exportedNames = this.exports[name]\n if (!exportedNames) return\n\n let node = path.node\n\n // if it is a non-prefix update expression (x++ etc)\n // then we must replace with the expression (_export('x', x + 1), x++)\n // in order to ensure the same update expression value\n const isPostUpdateExpression = path.isUpdateExpression({ prefix: false })\n if (isPostUpdateExpression) {\n node = t.binaryExpression(\n node.operator[0],\n t.unaryExpression(\"+\", t.cloneNode(node.argument)),\n t.numericLiteral(1),\n )\n }\n\n for (const exportedName of exportedNames) {\n node = this.buildCall(exportedName, node).expression\n }\n\n if (isPostUpdateExpression) {\n node = t.sequenceExpression([node, path.node])\n }\n\n path.replaceWith(node)\n },\n }\n\n return {\n name: \"transform-modules-systemjs\",\n\n visitor: {\n CallExpression(path, state) {\n if (path.node.callee.type === TYPE_IMPORT) {\n path.replaceWith(\n t.callExpression(\n t.memberExpression(t.identifier(state.contextIdent), t.identifier(\"import\")),\n path.node.arguments,\n ),\n )\n }\n },\n\n MetaProperty(path, state) {\n if (path.node.meta.name === \"import\" && path.node.property.name === \"meta\") {\n path.replaceWith(\n t.memberExpression(t.identifier(state.contextIdent), t.identifier(\"meta\")),\n )\n }\n },\n\n ReferencedIdentifier(path, state) {\n if (path.node.name === \"__moduleName\" && !path.scope.hasBinding(\"__moduleName\")) {\n path.replaceWith(t.memberExpression(t.identifier(state.contextIdent), t.identifier(\"id\")))\n }\n },\n\n Program: {\n enter(path, state) {\n state.contextIdent = path.scope.generateUid(\"context\")\n },\n exit(path, state) {\n const undefinedIdent = path.scope.buildUndefinedNode()\n const exportIdent = path.scope.generateUid(\"export\")\n const contextIdent = state.contextIdent\n\n const exportMap = Object.create(null)\n const modules = []\n\n let beforeBody = []\n const setters = []\n const sources = []\n const variableIds = []\n const removedPaths = []\n\n function addExportName(key, val) {\n exportMap[key] = exportMap[key] || []\n exportMap[key].push(val)\n }\n\n function pushModule(source, key, specifiers) {\n let module\n modules.forEach(function(m) {\n if (m.key === source) {\n module = m\n }\n })\n if (!module) {\n modules.push((module = { key: source, imports: [], exports: [] }))\n }\n module[key] = module[key].concat(specifiers)\n }\n\n function buildExportCall(name, val) {\n return t.expressionStatement(\n t.callExpression(t.identifier(exportIdent), [t.stringLiteral(name), val]),\n )\n }\n\n const exportNames = []\n const exportValues = []\n\n const body = path.get(\"body\")\n for (const path of body) {\n if (path.isFunctionDeclaration()) {\n beforeBody.push(path.node)\n removedPaths.push(path)\n } else if (path.isClassDeclaration()) {\n variableIds.push(path.node.id)\n path.replaceWith(\n t.expressionStatement(\n t.assignmentExpression(\"=\", t.cloneNode(path.node.id), t.toExpression(path.node)),\n ),\n )\n } else if (path.isImportDeclaration()) {\n const source = path.node.source.value\n pushModule(source, \"imports\", path.node.specifiers)\n for (const name of Object.keys(path.getBindingIdentifiers())) {\n path.scope.removeBinding(name)\n variableIds.push(t.identifier(name))\n }\n path.remove()\n } else if (path.isExportAllDeclaration()) {\n pushModule(path.node.source.value, \"exports\", path.node)\n path.remove()\n } else if (path.isExportDefaultDeclaration()) {\n const declar = path.get(\"declaration\")\n const id = declar.node.id\n if (declar.isClassDeclaration()) {\n if (id) {\n exportNames.push(\"default\")\n exportValues.push(undefinedIdent)\n variableIds.push(id)\n addExportName(id.name, \"default\")\n path.replaceWith(\n t.expressionStatement(\n t.assignmentExpression(\"=\", t.cloneNode(id), t.toExpression(declar.node)),\n ),\n )\n } else {\n exportNames.push(\"default\")\n exportValues.push(t.toExpression(declar.node))\n removedPaths.push(path)\n }\n } else if (declar.isFunctionDeclaration()) {\n if (id) {\n beforeBody.push(declar.node)\n exportNames.push(\"default\")\n exportValues.push(t.cloneNode(id))\n addExportName(id.name, \"default\")\n } else {\n exportNames.push(\"default\")\n exportValues.push(t.toExpression(declar.node))\n }\n removedPaths.push(path)\n } else {\n path.replaceWith(buildExportCall(\"default\", declar.node))\n }\n } else if (path.isExportNamedDeclaration()) {\n const declar = path.get(\"declaration\")\n\n if (declar.node) {\n path.replaceWith(declar)\n\n if (path.isFunction()) {\n const node = declar.node\n const name = node.id.name\n addExportName(name, name)\n beforeBody.push(node)\n exportNames.push(name)\n exportValues.push(t.cloneNode(node.id))\n removedPaths.push(path)\n } else if (path.isClass()) {\n const name = declar.node.id.name\n exportNames.push(name)\n exportValues.push(undefinedIdent)\n variableIds.push(declar.node.id)\n path.replaceWith(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(declar.node.id),\n t.toExpression(declar.node),\n ),\n ),\n )\n addExportName(name, name)\n } else {\n for (const name of Object.keys(declar.getBindingIdentifiers())) {\n addExportName(name, name)\n }\n }\n } else {\n const specifiers = path.node.specifiers\n if (specifiers && specifiers.length) {\n if (path.node.source) {\n pushModule(path.node.source.value, \"exports\", specifiers)\n path.remove()\n } else {\n const nodes = []\n\n for (const specifier of specifiers) {\n const binding = path.scope.getBinding(specifier.local.name)\n // hoisted function export\n if (binding && t.isFunctionDeclaration(binding.path.node)) {\n exportNames.push(specifier.exported.name)\n exportValues.push(t.cloneNode(specifier.local))\n }\n // only globals also exported this way\n else if (!binding) {\n nodes.push(buildExportCall(specifier.exported.name, specifier.local))\n }\n addExportName(specifier.local.name, specifier.exported.name)\n }\n\n path.replaceWithMultiple(nodes)\n }\n }\n }\n }\n }\n\n modules.forEach(function(specifiers) {\n let setterBody = []\n const target = path.scope.generateUid(specifiers.key)\n\n for (let specifier of specifiers.imports) {\n if (t.isImportNamespaceSpecifier(specifier)) {\n setterBody.push(\n t.expressionStatement(\n t.assignmentExpression(\"=\", specifier.local, t.identifier(target)),\n ),\n )\n } else if (t.isImportDefaultSpecifier(specifier)) {\n specifier = t.importSpecifier(specifier.local, t.identifier(\"default\"))\n }\n\n if (t.isImportSpecifier(specifier)) {\n setterBody.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n specifier.local,\n t.memberExpression(t.identifier(target), specifier.imported),\n ),\n ),\n )\n }\n }\n\n if (specifiers.exports.length) {\n const exportNames = []\n const exportValues = []\n let hasExportStar = false\n\n for (const node of specifiers.exports) {\n if (t.isExportAllDeclaration(node)) {\n hasExportStar = true\n } else if (t.isExportSpecifier(node)) {\n exportNames.push(node.exported.name)\n exportValues.push(t.memberExpression(t.identifier(target), node.local))\n } else {\n // todo\n }\n }\n\n setterBody = setterBody.concat(\n constructExportCall(\n path,\n t.identifier(exportIdent),\n exportNames,\n exportValues,\n hasExportStar ? t.identifier(target) : null,\n ),\n )\n }\n\n sources.push(t.stringLiteral(specifiers.key))\n setters.push(\n t.functionExpression(null, [t.identifier(target)], t.blockStatement(setterBody)),\n )\n })\n\n let moduleName = this.getModuleName()\n if (moduleName) moduleName = t.stringLiteral(moduleName)\n\n hoistVariables(\n path,\n (id, name, hasInit) => {\n variableIds.push(id)\n if (!hasInit) {\n exportNames.push(name)\n exportValues.push(undefinedIdent)\n }\n },\n null,\n )\n\n if (variableIds.length) {\n beforeBody.unshift(\n t.variableDeclaration(\"var\", variableIds.map((id) => t.variableDeclarator(id))),\n )\n }\n\n if (exportNames.length) {\n beforeBody = beforeBody.concat(\n constructExportCall(path, t.identifier(exportIdent), exportNames, exportValues, null),\n )\n }\n\n path.traverse(reassignmentVisitor, {\n exports: exportMap,\n buildCall: buildExportCall,\n scope: path.scope,\n })\n\n for (const path of removedPaths) {\n path.remove()\n }\n\n path.node.body = [\n buildTemplate({\n SYSTEM_REGISTER: t.memberExpression(\n t.identifier(systemGlobal),\n t.identifier(\"register\"),\n ),\n BEFORE_BODY: beforeBody,\n MODULE_NAME: moduleName,\n SETTERS: t.arrayExpression(setters),\n SOURCES: t.arrayExpression(sources),\n EXECUTE: t.functionExpression(\n null,\n [],\n t.blockStatement(path.node.body),\n false,\n options.topLevelAwait && programUsesTopLevelAwait(path),\n ),\n EXPORT_IDENTIFIER: t.identifier(exportIdent),\n CONTEXT_IDENTIFIER: t.identifier(contextIdent),\n }),\n ]\n },\n },\n },\n }\n})\n\nconst programUsesTopLevelAwait = (path) => {\n let hasTopLevelAwait = false\n path.traverse({\n AwaitExpression(path) {\n const parent = path.getFunctionParent()\n if (!parent || parent.type === \"Program\") hasTopLevelAwait = true\n },\n })\n return hasTopLevelAwait\n}\n","// https://github.com/rburns/ansi-to-html/blob/master/src/ansi_to_html.js\n// https://github.com/drudru/ansi_up/blob/master/ansi_up.js\nconst Convert = import.meta.require(\"ansi-to-html\")\n\nexport const ansiToHTML = (ansiString) => {\n return new Convert().toHtml(ansiString)\n}\n","const { addSideEffect } = import.meta.require(\"@babel/helper-module-imports\")\n\nexport const ensureRegeneratorRuntimeImportBabelPlugin = (api, options) => {\n api.assertVersion(7)\n\n const {\n regeneratorRuntimeIdentifierName = \"regeneratorRuntime\",\n regeneratorRuntimeImportPath = \"@jsenv/core/helpers/regenerator-runtime/regenerator-runtime.js\",\n } = options\n\n return {\n visitor: {\n Identifier(path, opts) {\n const { filename } = opts\n const filepathname = filename.replace(/\\\\/g, \"/\")\n if (filepathname.endsWith(\"node_modules/regenerator-runtime/runtime.js\")) {\n return\n }\n\n const { node } = path\n if (node.name === regeneratorRuntimeIdentifierName) {\n addSideEffect(path.scope.getProgramParent().path, regeneratorRuntimeImportPath)\n }\n },\n },\n }\n}\n","const { addSideEffect } = import.meta.require(\"@babel/helper-module-imports\")\n\nexport const ensureGlobalThisImportBabelPlugin = (api, options) => {\n api.assertVersion(7)\n\n const {\n globalThisIdentifierName = \"globalThis\",\n globalThisImportPath = \"@jsenv/core/helpers/global-this/global-this.js\",\n } = options\n\n return {\n visitor: {\n Identifier(path, opts) {\n const { filename } = opts\n const filepathname = filename.replace(/\\\\/g, \"/\")\n if (filepathname.endsWith(\"/helpers/global-this/global-this.js\")) {\n return\n }\n\n const { node } = path\n if (node.name === globalThisIdentifierName) {\n addSideEffect(path.scope.getProgramParent().path, globalThisImportPath)\n }\n },\n },\n }\n}\n","import { operatingSystemPathToPathname } from \"@jsenv/operating-system-path\"\nimport { babelHelperMap } from \"../babelHelperMap/babelHelperMap.js\"\n\n// https://github.com/babel/babel/tree/master/packages/babel-helper-module-imports\nconst { addDefault } = import.meta.require(\"@babel/helper-module-imports\")\n\n// named import approach found here:\n// https://github.com/rollup/rollup-plugin-babel/blob/18e4232a450f320f44c651aa8c495f21c74d59ac/src/helperPlugin.js#L1\n\n// for reference this is how it's done to reference\n// a global babel helper object instead of using\n// a named import\n// https://github.com/babel/babel/blob/99f4f6c3b03c7f3f67cf1b9f1a21b80cfd5b0224/packages/babel-plugin-external-helpers/src/index.js\n\nexport const transformBabelHelperToImportBabelPlugin = (api) => {\n api.assertVersion(7)\n\n return {\n pre: (file) => {\n const cachedHelpers = {}\n file.set(\"helperGenerator\", (name) => {\n // the list of possible helpers name\n // https://github.com/babel/babel/blob/99f4f6c3b03c7f3f67cf1b9f1a21b80cfd5b0224/packages/babel-helpers/src/helpers.js#L13\n\n if (!file.availableHelper(name)) {\n return undefined\n }\n\n const filePathname = operatingSystemPathToPathname(file.opts.filename)\n const babelHelperFilePathname = babelHelperMap[name]\n\n if (filePathname === babelHelperFilePathname) {\n return undefined\n }\n\n if (searchPossibleBabelHelperNameInPath(filePathname) === name) {\n return undefined\n }\n\n if (cachedHelpers[name]) {\n return cachedHelpers[name]\n }\n\n const helper = addDefault(file.path, babelHelperFilePathname, { nameHint: `_${name}` })\n cachedHelpers[name] = helper\n return helper\n })\n },\n }\n}\n\nexport const searchPossibleBabelHelperNameInPath = (path) => {\n const babelPathPart = \"@jsenv/core/helpers/babel/\"\n const babelPathPartIndex = path.indexOf(babelPathPart)\n if (babelPathPartIndex === -1) return \"\"\n\n const after = path.slice(babelPathPartIndex + babelPathPart.length)\n const helperName = after.slice(0, after.indexOf(\"/\"))\n return helperName\n}\n","import transformModulesSystemJs from \"./babel-plugin-transform-modules-systemjs/index.js\"\nimport { findAsyncPluginNameInBabelPluginMap } from \"../findAsyncPluginNameInBabelPluginMap/findAsyncPluginNameInBabelPluginMap.js\"\nimport { ansiToHTML } from \"./ansiToHTML.js\"\nimport { ensureRegeneratorRuntimeImportBabelPlugin } from \"./ensureRegeneratorRuntimeImportBabelPlugin.js\"\nimport { ensureGlobalThisImportBabelPlugin } from \"./ensureGlobalThisImportBabelPlugin.js\"\nimport {\n transformBabelHelperToImportBabelPlugin,\n searchPossibleBabelHelperNameInPath,\n} from \"./transformBabelHelperToImportBabelPlugin.js\"\n\nconst { transformAsync, transformFromAstAsync } = import.meta.require(\"@babel/core\")\nconst syntaxDynamicImport = import.meta.require(\"@babel/plugin-syntax-dynamic-import\")\nconst syntaxImportMeta = import.meta.require(\"@babel/plugin-syntax-import-meta\")\n\nconst defaultBabelPluginArray = [syntaxDynamicImport, syntaxImportMeta]\n\nexport const jsenvTransform = async ({\n inputCode,\n inputPath,\n inputRelativePath,\n inputAst,\n inputMap,\n babelPluginMap,\n allowTopLevelAwait,\n transformTopLevelAwait,\n transformModuleIntoSystemFormat,\n transformGenerator,\n regeneratorRuntimeImportPath,\n remap,\n}) => {\n // https://babeljs.io/docs/en/options\n const options = {\n filename: inputPath,\n filenameRelative: inputRelativePath ? inputRelativePath.slice(1) : undefined,\n inputSourceMap: inputMap,\n configFile: false,\n babelrc: false, // trust only these options, do not read any babelrc config file\n ast: true,\n sourceMaps: remap,\n sourceFileName: inputRelativePath ? inputRelativePath.slice(1) : undefined,\n // https://babeljs.io/docs/en/options#parseropts\n parserOpts: {\n allowAwaitOutsideFunction: allowTopLevelAwait,\n },\n }\n\n const babelHelperName = searchPossibleBabelHelperNameInPath(inputPath)\n // to prevent typeof circular dependency\n if (babelHelperName === \"typeof\") {\n const babelPluginMapWithoutTransformTypeOf = {}\n Object.keys(babelPluginMap).forEach((key) => {\n if (key !== \"transform-typeof-symbol\") {\n babelPluginMapWithoutTransformTypeOf[key] = babelPluginMap[key]\n }\n })\n babelPluginMap = babelPluginMapWithoutTransformTypeOf\n }\n\n if (transformGenerator) {\n babelPluginMap = {\n ...babelPluginMap,\n \"ensure-regenerator-runtime-import\": [\n ensureRegeneratorRuntimeImportBabelPlugin,\n {\n regeneratorRuntimeImportPath,\n },\n ],\n }\n }\n\n babelPluginMap = {\n ...babelPluginMap,\n \"ensure-global-this-import\": [ensureGlobalThisImportBabelPlugin],\n \"transform-babel-helpers-to-import\": [transformBabelHelperToImportBabelPlugin],\n }\n\n const asyncPluginName = findAsyncPluginNameInBabelPluginMap(babelPluginMap)\n\n if (transformModuleIntoSystemFormat && transformTopLevelAwait && asyncPluginName) {\n const babelPluginArrayWithoutAsync = []\n Object.keys(babelPluginMap).forEach((name) => {\n if (name !== asyncPluginName) {\n babelPluginArrayWithoutAsync.push(babelPluginMap[name])\n }\n })\n\n // put body inside something like (async () => {})()\n const result = await babelTransform({\n ast: inputAst,\n code: inputCode,\n options: {\n ...options,\n plugins: [\n ...defaultBabelPluginArray,\n ...babelPluginArrayWithoutAsync,\n [transformModulesSystemJs, { topLevelAwait: transformTopLevelAwait }],\n ],\n },\n })\n\n // we need to retranspile the await keywords now wrapped\n // inside Systemjs function.\n // They are ignored, at least by transform-async-to-promises\n // see https://github.com/rpetrich/babel-plugin-transform-async-to-promises/issues/26\n\n const finalResult = await babelTransform({\n // ast: result.ast,\n code: result.code,\n options: {\n ...options,\n // about inputSourceMap see\n // https://github.com/babel/babel/blob/eac4c5bc17133c2857f2c94c1a6a8643e3b547a7/packages/babel-core/src/transformation/file/generate.js#L57\n // https://github.com/babel/babel/blob/090c364a90fe73d36a30707fc612ce037bdbbb24/packages/babel-core/src/transformation/file/merge-map.js#L6s\n inputSourceMap: result.map,\n plugins: [...defaultBabelPluginArray, babelPluginMap[asyncPluginName]],\n },\n })\n\n return {\n ...result,\n ...finalResult,\n metadata: { ...result.metadata, ...finalResult.metadata },\n }\n }\n\n const babelPluginArray = [\n ...defaultBabelPluginArray,\n ...Object.keys(babelPluginMap).map((babelPluginName) => babelPluginMap[babelPluginName]),\n ...(transformModuleIntoSystemFormat\n ? [[transformModulesSystemJs, { topLevelAwait: transformTopLevelAwait }]]\n : []),\n ]\n const result = await babelTransform({\n ast: inputAst,\n code: inputCode,\n options: {\n ...options,\n plugins: babelPluginArray,\n },\n })\n return result\n}\n\nconst babelTransform = async ({ ast, code, options }) => {\n try {\n if (ast) {\n const result = await transformFromAstAsync(ast, code, options)\n return result\n }\n return await transformAsync(code, options)\n } catch (error) {\n if (error && error.code === \"BABEL_PARSE_ERROR\") {\n const message = error.message\n throw createParseError({\n message,\n messageHTML: ansiToHTML(message),\n filename: options.filename,\n lineNumber: error.loc.line,\n columnNumber: error.loc.column,\n })\n }\n throw error\n }\n}\n\nconst createParseError = (data) => {\n const { message } = data\n const parseError = new Error(message)\n parseError.code = \"PARSE_ERROR\"\n parseError.data = data\n\n return parseError\n}\n","// eslint-disable-next-line consistent-return\nexport default (arr) => {\n if (Array.isArray(arr)) {\n var i = 0\n var arr2 = new Array(arr.length)\n for (; i < arr.length; i++) arr2[i] = arr[i]\n return arr2\n }\n}\n","// eslint-disable-next-line consistent-return\nexport default (iter) => {\n if (\n Symbol.iterator in Object(iter) ||\n Object.prototype.toString.call(iter) === \"[object Arguments]\"\n )\n return Array.from(iter)\n}\n","export default () => {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\")\n}\n","import arrayWithoutHoles from \"../arrayWithoutHoles/arrayWithoutHoles.js\"\nimport iterableToArray from \"../iterableToArray/iterableToArray.js\"\nimport nonIterableSpread from \"../nonIterableSpread/nonIterableSpread.js\"\n\nexport default (arr) => arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread()\n","// TODO: externalize this into '@dmail/helper'\n// import { arrayWithout } from '@dmail/helper'\n\nexport const arrayWithout = (array, item) => {\n const arrayWithoutItem = []\n let i = 0\n while (i < array.length) {\n const value = array[i]\n i++\n if (value === item) {\n continue\n }\n arrayWithoutItem.push(value)\n }\n return arrayWithoutItem\n}\n","// https://github.com/tc39/proposal-cancellation/tree/master/stage0\nimport { arrayWithout } from \"./arrayHelper.js\"\n\nexport 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\nexport const createCancellationSource = () => {\n let requested = false\n let cancelError\n let registrationArray = []\n const cancel = (reason) => {\n if (requested) return\n requested = true\n cancelError = createCancelError(reason)\n\n const registrationArrayCopy = registrationArray.slice()\n registrationArray.length = 0\n registrationArrayCopy.forEach((registration) => {\n registration.callback(cancelError)\n // const removedDuringCall = registrationArray.indexOf(registration) === -1\n })\n }\n\n const register = (callback) => {\n if (typeof callback !== \"function\") {\n throw new Error(`callback must be a function, got ${callback}`)\n }\n\n const existingRegistration = registrationArray.find((registration) => {\n return registration.callback === callback\n })\n // don't register twice\n if (existingRegistration) {\n return existingRegistration\n }\n\n const registration = {\n callback,\n unregister: () => {\n registrationArray = arrayWithout(registrationArray, registration)\n },\n }\n registrationArray = [registration, ...registrationArray]\n\n return registration\n }\n\n const throwIfRequested = () => {\n if (requested) {\n throw cancelError\n }\n }\n\n return {\n token: {\n register,\n get cancellationRequested() {\n return requested\n },\n throwIfRequested,\n },\n cancel,\n }\n}\n\nexport const cancellationTokenCompose = (...tokens) => {\n const register = (callback) => {\n if (typeof callback !== \"function\") {\n throw new Error(`callback must be a function, got ${callback}`)\n }\n\n const registrationArray = []\n\n const visit = (i) => {\n const token = tokens[i]\n const registration = token.register(callback)\n registrationArray.push(registration)\n }\n let i = 0\n while (i < tokens.length) {\n visit(i++)\n }\n\n const compositeRegistration = {\n callback,\n unregister: () => {\n registrationArray.forEach((registration) => registration.unregister())\n registrationArray.length = 0\n },\n }\n\n return compositeRegistration\n }\n\n let requested = false\n let cancelError\n const internalRegistration = register((parentCancelError) => {\n requested = true\n cancelError = parentCancelError\n internalRegistration.unregister()\n })\n\n const throwIfRequested = () => {\n if (requested) {\n throw cancelError\n }\n }\n\n return {\n register,\n get cancellationRequested() {\n return requested\n },\n throwIfRequested,\n }\n}\n\nexport 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","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","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","import { createCancellationToken } from \"./cancellation.js\"\n\nexport const createOperation = ({\n cancellationToken = createCancellationToken(),\n start,\n ...rest\n}) => {\n ensureExactParameters(rest)\n cancellationToken.throwIfRequested()\n\n const promise = new Promise((resolve) => {\n resolve(start())\n })\n const cancelPromise = new Promise((resolve, reject) => {\n const cancelRegistration = cancellationToken.register((cancelError) => {\n cancelRegistration.unregister()\n reject(cancelError)\n })\n promise.then(cancelRegistration.unregister, () => {})\n })\n const operationPromise = Promise.race([promise, cancelPromise])\n\n return operationPromise\n}\n\nconst ensureExactParameters = (extraParameters) => {\n const extraParamNames = Object.keys(extraParameters)\n if (extraParamNames.length)\n throw new Error(`createOperation expect only cancellationToken, start. Got ${extraParamNames}`)\n}\n","import { isCancelError, createCancellationSource } from \"./cancellation.js\"\n\nexport const catchAsyncFunctionCancellation = (asyncFunction) => {\n return asyncFunction().catch((error) => {\n if (isCancelError(error)) return\n throw error\n })\n}\n\nexport const createProcessInterruptionCancellationToken = () => {\n const SIGINTCancelSource = createCancellationSource()\n process.on(\"SIGINT\", () => SIGINTCancelSource.cancel(\"process interruption\"))\n return SIGINTCancelSource.token\n}\n","import { resolve } from \"path\"\nimport { hrefToPathname, pathnameToRelativePath } from \"@jsenv/href\"\nimport {\n pathnameToOperatingSystemPath,\n operatingSystemPathToPathname,\n} from \"@jsenv/operating-system-path\"\n\nlet jsenvBundlingProjectPath\nif (typeof __filename === \"string\") {\n jsenvBundlingProjectPath = resolve(__filename, \"../../../\") // get ride of dist/node/main.js\n} else {\n const selfPathname = hrefToPathname(import.meta.url)\n const selfPath = pathnameToOperatingSystemPath(selfPathname)\n jsenvBundlingProjectPath = resolve(selfPath, \"../../\") // get ride of src/JSENV_PATH.js\n}\n\nexport { jsenvBundlingProjectPath }\n\nexport const jsenvBundlingProjectPathname = operatingSystemPathToPathname(jsenvBundlingProjectPath)\n\nexport const jsenvBundlingRelativePathInception = ({\n jsenvBundlingRelativePath,\n projectPathname,\n}) => {\n const jsenvPathname = `${jsenvBundlingProjectPathname}${jsenvBundlingRelativePath}`\n const relativePath = pathnameToRelativePath(jsenvPathname, projectPathname)\n return relativePath\n}\n","import { stat, statSync } from \"fs\"\n\nexport const assertFolder = async (path) => {\n const filesystemEntry = await pathToFilesystemEntry(path)\n\n if (!filesystemEntry) {\n throw new Error(`folder not found on filesystem.\npath: ${path}`)\n }\n\n const { type } = filesystemEntry\n if (type !== \"folder\") {\n throw new Error(`folder expected but found something else on filesystem.\npath: ${path}\nfound: ${type}`)\n }\n}\n\nexport const assertFile = async (path) => {\n const filesystemEntry = await pathToFilesystemEntry(path)\n\n if (!filesystemEntry) {\n throw new Error(`file not found on filesystem.\npath: ${path}`)\n }\n\n const { type } = filesystemEntry\n if (type !== \"file\") {\n throw new Error(`file expected but found something else on filesystem.\npath: ${path}\nfound: ${type}`)\n }\n}\n\nexport const assertFileSync = (path) => {\n let stats\n\n try {\n stats = statSync(path)\n } catch (e) {\n if (e.code === \"ENOENT\") {\n throw new Error(`file not found on filesystem.\npath: ${path}`)\n }\n throw e\n }\n\n const entry = statsToEntry(stats)\n if (entry !== \"file\") {\n throw new Error(`file expected but found something else on filesystem.\npath: ${path}\nfound: ${entry}`)\n }\n}\n\nconst pathToFilesystemEntry = (path) =>\n new Promise((resolve, reject) => {\n stat(path, (error, stats) => {\n if (error) {\n if (error.code === \"ENOENT\") resolve(null)\n else reject(error)\n } else {\n resolve({\n type: statsToEntry(stats),\n stats,\n })\n }\n })\n })\n\nconst statsToEntry = (stats) => {\n if (stats.isFile()) {\n return \"file\"\n }\n if (stats.isDirectory()) {\n return \"folder\"\n }\n return \"other\"\n}\n","export const assertImportMap = (value) => {\n if (value === null) {\n throw new TypeError(`an importMap must be an object, got null`)\n }\n\n const type = typeof value\n if (type !== \"object\") {\n throw new TypeError(`an importMap must be an object, received ${value}`)\n }\n\n if (Array.isArray(value)) {\n throw new TypeError(`an importMap must be an object, received array ${value}`)\n }\n}\n","// https://github.com/WICG/import-maps/blob/93f94c6dfb268bde3009644b65580fb2fbb98fcf/reference-implementation/lib/parser.js#L42\nimport { assertImportMap } from \"../assertImportMap.js\"\n\nexport const sortImportMap = (importMap) => {\n assertImportMap(importMap)\n const { imports, scopes } = importMap\n const orderedImportMap = {\n imports: imports ? sortImportMapImports(imports) : {},\n scopes: scopes ? sortImportMapScopes(scopes) : {},\n }\n return orderedImportMap\n}\n\nconst sortImportMapImports = (imports) => {\n const sortedImports = {}\n Object.keys(imports)\n .sort(compareLengthOrLocaleCompare)\n .forEach((name) => {\n sortedImports[name] = imports[name]\n })\n return sortedImports\n}\n\nconst sortImportMapScopes = (scopes) => {\n const sortedScopes = {}\n Object.keys(scopes)\n .sort(compareLengthOrLocaleCompare)\n .forEach((scopeName) => {\n sortedScopes[scopeName] = sortScopedImports(scopes[scopeName], scopeName)\n })\n return sortedScopes\n}\n\nconst compareLengthOrLocaleCompare = (a, b) => {\n return b.length - a.length || a.localeCompare(b)\n}\n\nconst sortScopedImports = (scopedImports) => {\n const compareScopedImport = (a, b) => {\n // const aIsRoot = a === \"/\"\n // const bIsRoot = b === \"/\"\n // if (aIsRoot && !bIsRoot) return 1\n // if (!aIsRoot && bIsRoot) return -1\n // if (aIsRoot && bIsRoot) return 0\n\n // const aIsScope = a === scope\n // const bIsScope = b === scope\n // if (aIsScope && !bIsScope) return 1\n // if (!aIsScope && bIsScope) return -1\n // if (aIsScope && bIsScope) return 0\n\n return compareLengthOrLocaleCompare(a, b)\n }\n\n const sortedScopedImports = {}\n Object.keys(scopedImports)\n .sort(compareScopedImport)\n .forEach((name) => {\n sortedScopedImports[name] = scopedImports[name]\n })\n return sortedScopedImports\n}\n","export const pathnameToDirname = (pathname) => {\n const slashLastIndex = pathname.lastIndexOf(\"/\")\n if (slashLastIndex === -1) return \"\"\n\n return pathname.slice(0, slashLastIndex)\n}\n","import { fileRead } from \"@dmail/helper\"\n\nexport const readPackageData = async ({ path }) => {\n const packageString = await fileRead(path)\n const packageData = JSON.parse(packageString)\n return packageData\n}\n","import {\n pathnameToOperatingSystemPath,\n pathnameToRelativePathname,\n} from \"@jsenv/operating-system-path\"\nimport { firstOperationMatching } from \"@dmail/helper\"\nimport { pathnameToDirname } from \"./pathnameToDirname.js\"\nimport { readPackageData } from \"./readPackageData.js\"\n\nexport const resolveNodeModule = async ({\n rootPathname,\n packagePathname,\n packageData,\n dependencyName,\n dependencyVersionPattern,\n dependencyType,\n onWarn,\n}) => {\n const packageFolderPathname = pathnameToDirname(packagePathname)\n const packageFolderRelativePath = pathnameToRelativePathname(packageFolderPathname, rootPathname)\n\n const nodeModuleCandidateArray = [\n ...getCandidateArrayFromPackageFolder(packageFolderRelativePath),\n `node_modules`,\n ]\n\n const result = await firstOperationMatching({\n array: nodeModuleCandidateArray,\n start: async (nodeModuleCandidate) => {\n const packagePathname = `${rootPathname}/${nodeModuleCandidate}/${dependencyName}/package.json`\n try {\n const packageData = await readPackageData({\n path: pathnameToOperatingSystemPath(packagePathname),\n })\n return { packagePathname, packageData }\n } catch (e) {\n if (e.code === \"ENOENT\") {\n return {}\n }\n\n if (e.name === \"SyntaxError\") {\n throw createDependencyPackageParsingError({\n parsingError: e,\n packagePathname,\n })\n }\n\n throw e\n }\n },\n predicate: ({ packageData }) => Boolean(packageData),\n })\n\n if (!result) {\n onWarn({\n code: \"DEPENDENCY_NOT_FOUND\",\n message: createDendencyNotFoundMessage({\n dependencyName,\n dependencyType,\n dependencyVersionPattern,\n packagePathname,\n packageData,\n }),\n data: { packagePathname, packageData, dependencyName, dependencyType },\n })\n }\n\n return result\n}\n\nconst getCandidateArrayFromPackageFolder = (packageFolderRelativePath) => {\n if (packageFolderRelativePath === \"\") return []\n\n const candidateArray = []\n const relativeFolderNameArray = packageFolderRelativePath.split(\"/node_modules/\")\n // remove the first empty string\n relativeFolderNameArray.shift()\n\n let i = relativeFolderNameArray.length\n while (i--) {\n candidateArray.push(\n `node_modules/${relativeFolderNameArray.slice(0, i + 1).join(\"/node_modules/\")}/node_modules`,\n )\n }\n\n return candidateArray\n}\n\nconst createDependencyPackageParsingError = ({ parsingError, packagePathname }) =>\n new SyntaxError(`error while parsing dependency package.json.\n--- parsing error message ---\n${parsingError.message}\n--- package.json path ---\n${pathnameToOperatingSystemPath(packagePathname)}\n`)\n\nconst createDendencyNotFoundMessage = ({\n dependencyName,\n dependencyType,\n dependencyVersionPattern,\n packageData,\n packagePathname,\n}) => `cannot find a ${dependencyType}.\n--- ${dependencyType} ---\n${dependencyName}@${dependencyVersionPattern}\n--- required by ---\n${packageData.name}@${packageData.version}\n--- package.json path ---\n${pathnameToOperatingSystemPath(packagePathname)}\n`\n","import { extname } from \"path\"\nimport { stat } from \"fs\"\nimport { firstOperationMatching } from \"@dmail/helper\"\nimport { pathnameToOperatingSystemPath } from \"@jsenv/operating-system-path\"\nimport { pathnameToDirname } from \"./pathnameToDirname.js\"\n\nexport const resolvePackageMain = ({ packageData, packagePathname, onWarn }) => {\n if (\"module\" in packageData) {\n return resolveMainFile({\n from: \"module\",\n main: packageData.module,\n packagePathname,\n onWarn,\n })\n }\n\n if (\"jsnext:main\" in packageData) {\n return resolveMainFile({\n from: \"jsnext:main\",\n main: packageData[\"jsnext:main\"],\n packagePathname,\n onWarn,\n })\n }\n\n if (\"main\" in packageData) {\n return resolveMainFile({\n from: \"main\",\n main: packageData.main,\n packagePathname,\n onWarn,\n })\n }\n\n return resolveMainFile({\n from: \"default\",\n main: \"index\",\n packagePathname,\n onWarn,\n })\n}\n\nconst extensionCandidateArray = [\"js\", \"json\", \"node\"]\n\nconst resolveMainFile = async ({ main, packagePathname, onWarn }) => {\n // main is explicitely empty meaning\n // it is assumed that we should not find a file\n if (main === \"\") return \"\"\n\n if (main.slice(0, 2) === \"./\") main = main.slice(2)\n if (main[0] === \"/\") main = main.slice(1)\n\n const packageDirname = pathnameToDirname(packagePathname)\n const extension = extname(main)\n\n if (extension === \"\") {\n const fileWithoutExtensionPathname = `${packageDirname}/${main}`\n\n const extensionLeadingToFile = await firstOperationMatching({\n array: extensionCandidateArray,\n start: async (extensionCandidate) => {\n const path = pathnameToOperatingSystemPath(\n `${fileWithoutExtensionPathname}.${extensionCandidate}`,\n )\n const isFile = await pathLeadsToAFile(path)\n return isFile ? extensionCandidate : null\n },\n predicate: (extension) => Boolean(extension),\n })\n if (extensionLeadingToFile) return `${main}.${extensionLeadingToFile}`\n\n onWarn({\n code: \"MAIN_FILE_NOT_FOUND\",\n message: createMainFileNotFoundMessage({\n mainPathname: fileWithoutExtensionPathname,\n packagePathname,\n }),\n data: { main, packagePathname },\n })\n\n return `${main}.js`\n }\n\n const mainPathname = `${packageDirname}/${main}`\n const isFile = await pathLeadsToAFile(mainPathname)\n if (!isFile) {\n onWarn({\n code: \"MAIN_FILE_NOT_FOUND\",\n message: createMainFileNotFoundMessage({\n mainPathname,\n packagePathname,\n }),\n data: { main, packagePathname },\n })\n }\n\n return main\n}\n\nconst pathLeadsToAFile = (path) => {\n return new Promise((resolve, reject) => {\n stat(path, (error, statObject) => {\n if (error) {\n if (error.code === \"ENOENT\") resolve(false)\n else reject(error)\n } else {\n resolve(statObject.isFile())\n }\n })\n })\n}\n\n// we know in advance this remapping does not lead to an actual file.\n// we only warn because we have no guarantee this remapping will actually be used\n// in the codebase.\nconst createMainFileNotFoundMessage = ({\n mainPathname,\n packagePathname,\n}) => `cannot find a module main file.\n--- extensions tried ---\n${extensionCandidateArray.join(\",\")}\n--- main path ---\n${pathnameToOperatingSystemPath(mainPathname)}\n--- package.json path ---\n${pathnameToOperatingSystemPath(packagePathname)}`\n","import { basename } from \"path\"\nimport {\n operatingSystemPathToPathname,\n pathnameToRelativePathname,\n pathnameToOperatingSystemPath,\n} from \"@jsenv/operating-system-path\"\nimport { sortImportMap } from \"@jsenv/import-map\"\nimport { pathnameToDirname } from \"./pathnameToDirname.js\"\nimport { readPackageData } from \"./readPackageData.js\"\nimport { resolveNodeModule } from \"./resolveNodeModule.js\"\nimport { resolvePackageMain } from \"./resolvePackageMain.js\"\n\nexport const generateImportMapForPackage = async ({\n projectPath,\n rootProjectPath = projectPath,\n includeDevDependencies = false,\n onWarn = ({ message }) => {\n console.warn(message)\n },\n}) => {\n const projectPathname = operatingSystemPathToPathname(projectPath)\n const projectPackagePathname = `${projectPathname}/package.json`\n const rootProjectPathname = operatingSystemPathToPathname(rootProjectPath)\n const rootImporterName = basename(rootProjectPathname)\n const rootPackagePathname = `${rootProjectPathname}/package.json`\n\n const imports = {}\n const scopes = {}\n const seen = {}\n\n const markPackageAsSeen = (packagePathname, importerPackagePathname) => {\n if (packagePathname in seen) {\n seen[packagePathname].push(importerPackagePathname)\n } else {\n seen[packagePathname] = [importerPackagePathname]\n }\n }\n\n const packageIsSeen = (packagePathname, importerPackagePathname) => {\n return packagePathname in seen && seen[packagePathname].includes(importerPackagePathname)\n }\n\n const visit = async ({\n packagePathname,\n packageData,\n includeDevDependencies,\n packageName,\n importerPackagePathname,\n }) => {\n await visitPackage({\n packagePathname,\n packageData,\n packageName,\n importerPackagePathname,\n })\n await visitDependencies({\n packagePathname,\n packageData,\n includeDevDependencies,\n })\n }\n\n const visitPackage = async ({\n packagePathname,\n packageData,\n packageName,\n importerPackagePathname,\n }) => {\n const packagePathInfo = computePackagePathInfo({\n packagePathname,\n packageName,\n importerPackagePathname,\n })\n\n await visitPackageMain({\n packagePathname,\n packageName,\n packageData,\n packagePathInfo,\n })\n\n if (\"imports\" in packageData) {\n visitPackageImports({\n packagePathname,\n packageName,\n packageData,\n packagePathInfo,\n })\n }\n\n if (\"exports\" in packageData) {\n visitPackageExports({\n packagePathname,\n packageName,\n packageData,\n packagePathInfo,\n })\n }\n }\n\n const visitPackageMain = async ({\n packagePathname,\n packageData,\n packageName,\n packagePathInfo: {\n packageIsRoot,\n packageIsProject,\n importerPackageIsRoot,\n importerName,\n actualRelativePath,\n expectedRelativePath,\n },\n }) => {\n if (packageIsRoot) return\n if (packageIsProject) return\n\n const main = await resolvePackageMain({\n packagePathname,\n packageData,\n onWarn: () => {},\n })\n\n // it's possible to have no main\n // like { main: \"\" } in package.json\n // or a main that does not lead to an actual file\n if (!main) return\n\n const from = packageName\n const to = `${actualRelativePath}/${main}`\n\n if (importerPackageIsRoot) {\n addImportMapping({ from, to })\n } else {\n addScopedImportMapping({ scope: `/${importerName}/`, from, to })\n }\n if (actualRelativePath !== expectedRelativePath) {\n addScopedImportMapping({ scope: `/${importerName}/`, from, to })\n }\n }\n\n const visitPackageImports = ({ packagePathname, packageData, packagePathInfo }) => {\n const { imports: packageImports } = packageData\n if (typeof packageImports !== \"object\" || packageImports === null) {\n onWarn(\n createUnexpectedPackageImportsWarning({\n packageImports,\n packagePathname,\n }),\n )\n return\n }\n\n const { packageIsRoot, actualRelativePath } = packagePathInfo\n\n Object.keys(packageImports).forEach((key) => {\n const resolvedKey = resolvePathInPackage(key, packagePathname)\n if (!resolvedKey) return\n const resolvedValue = resolvePathInPackage(packageImports[key], packagePathname)\n if (!resolvedValue) return\n\n if (packageIsRoot) {\n addImportMapping({\n from: resolvedKey,\n to: resolvedValue,\n })\n } else {\n addScopedImportMapping({\n scope: `${actualRelativePath}/`,\n from: resolvedKey,\n to: `${actualRelativePath}${resolvedValue}`,\n })\n }\n })\n\n if (!packageIsRoot) {\n // ensureImportsScopedInsidePackage\n addScopedImportMapping({\n scope: `${actualRelativePath}/`,\n from: `${actualRelativePath}/`,\n to: `${actualRelativePath}/`,\n })\n }\n }\n\n const visitPackageExports = ({\n packagePathname,\n packageName,\n packageData,\n packagePathInfo: { importerName, packageIsRoot, actualRelativePath, expectedRelativePath },\n }) => {\n if (packageIsRoot) return\n\n const { exports: packageExports } = packageData\n if (typeof packageExports !== \"object\" || packageExports === null) {\n onWarn(\n createUnexpectedPackageExportsWarning({\n packageExports,\n packagePathname,\n }),\n )\n return\n }\n\n Object.keys(packageExports).forEach((key) => {\n const resolvedKey = resolvePathInPackage(key, packagePathname)\n if (!resolvedKey) return\n const resolvedValue = resolvePathInPackage(packageExports[key], packagePathname)\n if (!resolvedValue) return\n const from = `${packageName}${resolvedKey}`\n const to = `${actualRelativePath}${resolvedValue}`\n\n if (importerName === rootImporterName) {\n addImportMapping({ from, to })\n } else {\n addScopedImportMapping({ scope: `/${importerName}/`, from, to })\n }\n if (actualRelativePath !== expectedRelativePath) {\n addScopedImportMapping({\n scope: `/${importerName}/`,\n from,\n to,\n })\n }\n })\n }\n\n const visitDependencies = async ({ packagePathname, packageData, includeDevDependencies }) => {\n const dependencyMap = {}\n\n const { dependencies = {} } = packageData\n Object.keys(dependencies).forEach((dependencyName) => {\n dependencyMap[dependencyName] = {\n type: \"dependency\",\n versionPattern: dependencies[dependencyName],\n }\n })\n\n const { peerDependencies = {} } = packageData\n Object.keys(peerDependencies).forEach((dependencyName) => {\n dependencyMap[dependencyName] = {\n type: \"peerDependency\",\n versionPattern: peerDependencies[dependencyName],\n }\n })\n\n const isProjectPackage = packagePathname === projectPackagePathname\n if (includeDevDependencies && isProjectPackage) {\n const { devDependencies = {} } = packageData\n Object.keys(devDependencies).forEach((dependencyName) => {\n if (!dependencyMap.hasOwnProperty(dependencyName)) {\n dependencyMap[dependencyName] = {\n type: \"devDependency\",\n versionPattern: devDependencies[dependencyName],\n }\n }\n })\n }\n\n await Promise.all(\n Object.keys(dependencyMap).map(async (dependencyName) => {\n const dependency = dependencyMap[dependencyName]\n await visitDependency({\n packagePathname,\n packageData,\n dependencyName,\n dependencyType: dependency.type,\n dependencyVersionPattern: dependency.versionPattern,\n })\n }),\n )\n }\n\n const visitDependency = async ({\n packagePathname,\n packageData,\n dependencyName,\n dependencyType,\n dependencyVersionPattern,\n }) => {\n const dependencyData = await findDependency({\n packagePathname,\n packageData,\n dependencyName,\n dependencyType,\n dependencyVersionPattern,\n })\n if (!dependencyData) {\n return\n }\n\n const {\n packagePathname: dependencyPackagePathname,\n packageData: dependencyPackageData,\n } = dependencyData\n\n if (packageIsSeen(dependencyPackagePathname, packagePathname)) {\n return\n }\n markPackageAsSeen(dependencyPackagePathname, packagePathname)\n await visit({\n packagePathname: dependencyPackagePathname,\n packageData: dependencyPackageData,\n packageName: dependencyName,\n importerPackagePathname: packagePathname,\n })\n }\n\n const computePackagePathInfo = ({ packagePathname, packageName, importerPackagePathname }) => {\n const packageIsRoot = packagePathname === rootPackagePathname\n\n const packageIsProject = packagePathname === projectPackagePathname\n\n const importerPackageIsRoot = importerPackagePathname === rootPackagePathname\n\n const importerPackageIsProject = importerPackagePathname === projectPackagePathname\n\n const importerName = importerPackageIsRoot\n ? rootImporterName\n : pathnameToDirname(\n pathnameToRelativePathname(importerPackagePathname, rootProjectPathname),\n ).slice(1)\n\n const actualPathname = pathnameToDirname(packagePathname)\n const actualRelativePath = pathnameToRelativePathname(actualPathname, rootProjectPathname)\n let expectedPathname\n if (packageIsProject && !packageIsRoot) {\n expectedPathname = pathnameToDirname(importerPackagePathname)\n } else {\n expectedPathname = `${pathnameToDirname(importerPackagePathname)}/node_modules/${packageName}`\n }\n const expectedRelativePath = pathnameToRelativePathname(expectedPathname, rootProjectPathname)\n\n return {\n importerPackageIsRoot,\n importerPackageIsProject,\n importerName,\n packageIsRoot,\n packageIsProject,\n actualRelativePath,\n expectedRelativePath,\n }\n }\n\n const resolvePathInPackage = (path, packagePathname) => {\n if (path[0] === \"/\") return path\n if (path.slice(0, 2) === \"./\") return path.slice(1)\n onWarn(\n createInvalidPackageRelativePathWarning({\n path,\n packagePathname,\n }),\n )\n return \"\"\n }\n\n const addImportMapping = ({ from, to }) => {\n // we could think it's useless to remap from with to\n // however it can be used to ensure a weaker remapping\n // does not win over this specific file or folder\n if (from === to) {\n /**\n * however remapping '/' to '/' is truly useless\n * moreover it would make wrapImportMap create something like\n * {\n * imports: {\n * \"/\": \"/.dist/best/\"\n * }\n * }\n * that would append the wrapped folder twice\n * */\n if (from === \"/\") return\n }\n\n imports[from] = to\n }\n\n const addScopedImportMapping = ({ scope, from, to }) => {\n scopes[scope] = {\n ...(scopes[scope] || {}),\n [from]: to,\n }\n }\n\n const dependenciesCache = {}\n const findDependency = ({\n packagePathname,\n packageData,\n dependencyName,\n dependencyType,\n dependencyVersionPattern,\n }) => {\n if (packagePathname in dependenciesCache === false) {\n dependenciesCache[packagePathname] = {}\n }\n if (dependencyName in dependenciesCache[packagePathname]) {\n return dependenciesCache[packagePathname][dependencyName]\n }\n const dependencyPromise = resolveNodeModule({\n rootPathname: rootProjectPathname,\n packagePathname,\n packageData,\n dependencyName,\n dependencyType,\n dependencyVersionPattern,\n onWarn,\n })\n dependenciesCache[packagePathname][dependencyName] = dependencyPromise\n return dependencyPromise\n }\n\n const projectPackageData = await readPackageData({\n path: pathnameToOperatingSystemPath(projectPackagePathname),\n onWarn,\n })\n markPackageAsSeen(projectPackagePathname, projectPackagePathname)\n await visit({\n packagePathname: projectPackagePathname,\n packageData: projectPackageData,\n includeDevDependencies,\n packageName: projectPackageData.name,\n importerPackagePathname: projectPackagePathname,\n })\n\n return sortImportMap({ imports, scopes })\n}\n\nconst createInvalidPackageRelativePathWarning = ({ path, packagePathname }) => {\n return {\n code: \"INVALID_PATH_RELATIVE_TO_PACKAGE\",\n message: `\ninvalid path relative to package.\n--- path ---\n${path}\n--- package.json path ---\n${pathnameToOperatingSystemPath(packagePathname)}\n`,\n data: { packagePathname, path },\n }\n}\n\nconst createUnexpectedPackageImportsWarning = ({ packageImports, packagePathname }) => {\n return {\n code: \"UNEXPECTED_PACKAGE_IMPORTS\",\n message: `\npackage.imports must be an object.\n--- package.json imports ---\n${packageImports}\n--- package.json path ---\n${pathnameToOperatingSystemPath(packagePathname)}\n`,\n data: { packagePathname, packageImports },\n }\n}\n\nconst createUnexpectedPackageExportsWarning = ({ packageExports, packagePathname }) => {\n return {\n code: \"UNEXPECTED_PACKAGE_EXPORTS\",\n message: `\npackage.exports must be an object.\n--- package.json exports ---\n${packageExports}\n--- package.json path ---\n${pathnameToOperatingSystemPath(packagePathname)}\n`,\n data: { packagePathname, packageExports },\n }\n}\n","// https://github.com/cfware/babel-plugin-bundled-import-meta/blob/master/index.js\nconst { addNamed } = import.meta.require(\"@babel/helper-module-imports\")\n\nexport const createImportMetaUrlNamedImportBabelPlugin = ({ importMetaFacadePath }) => {\n return () => {\n return {\n visitor: {\n Program(programPath) {\n const metaPropertyMap = {}\n\n programPath.traverse({\n MemberExpression(path) {\n const { node } = path\n const { object } = node\n if (object.type !== \"MetaProperty\") return\n\n const { property: objectProperty } = object\n if (objectProperty.name !== \"meta\") return\n\n const { property } = node\n const { name } = property\n if (name in metaPropertyMap) {\n metaPropertyMap[name].push(path)\n } else {\n metaPropertyMap[name] = [path]\n }\n },\n })\n\n Object.keys(metaPropertyMap).forEach((propertyName) => {\n const importMetaPropertyId = propertyName\n const result = addNamed(programPath, importMetaPropertyId, importMetaFacadePath)\n metaPropertyMap[propertyName].forEach((path) => {\n path.replaceWith(result)\n })\n })\n },\n },\n }\n }\n}\n","import { createImportMetaUrlNamedImportBabelPlugin } from \"./createImportMetaUrlNamedImportBabelPlugin.js\"\nimport { jsenvBundlingProjectPathname } from \"../jsenv-bundling-project.js\"\n\nexport const generateBabelPluginMapOption = ({ format, babelPluginMap, featureNameArray }) => {\n return {\n ...generateBabelPluginMapSubset({\n babelPluginMap,\n featureNameArray,\n }),\n ...generateBabelPluginMapForBundle({\n format,\n }),\n }\n}\n\nconst generateBabelPluginMapSubset = ({ babelPluginMap, featureNameArray }) => {\n const babelPluginMapSubset = {}\n\n Object.keys(babelPluginMap).forEach((babelPluginName) => {\n if (featureNameArray.includes(babelPluginName)) {\n babelPluginMapSubset[babelPluginName] = babelPluginMap[babelPluginName]\n }\n })\n\n return babelPluginMapSubset\n}\n\nconst generateBabelPluginMapForBundle = ({ format }) => {\n const bundleBabelPluginMap = {}\n\n if (format === \"commonjs\" || format === \"global\") {\n const importMetaFacadePath = `file://${jsenvBundlingProjectPathname}/src/babel-plugin-map/import-meta-${format}.js`\n\n bundleBabelPluginMap[\n \"import-meta-url-named-import\"\n ] = createImportMetaUrlNamedImportBabelPlugin({\n importMetaFacadePath,\n })\n }\n\n return bundleBabelPluginMap\n}\n","import { globalAgent } from \"https\"\nimport { createOperation } from \"@dmail/cancellation\"\n\nconst fetch = import.meta.require(\"node-fetch\")\nconst AbortController = import.meta.require(\"abort-controller\")\n\n// ideally we should only pass this to the fetch below\nglobalAgent.options.rejectUnauthorized = false\n\nexport const fetchUsingHttp = async (url, { cancellationToken, ...rest } = {}) => {\n if (cancellationToken) {\n // a cancelled fetch will never resolve, while cancellation api\n // expect to get a rejected promise.\n // createOperation ensure we'll get a promise rejected with a cancelError\n const response = await createOperation({\n cancellationToken,\n start: () =>\n fetch(url, {\n signal: cancellationTokenToAbortSignal(cancellationToken),\n ...rest,\n }),\n })\n return normalizeResponse(response)\n }\n\n const response = await fetch(url, rest)\n return normalizeResponse(response)\n}\n\nconst normalizeResponse = async (response) => {\n const text = await response.text()\n return {\n url: response.url,\n status: response.status,\n statusText: response.statusText,\n headers: responseToHeaderMap(response),\n body: text,\n }\n}\n\n// https://github.com/bitinn/node-fetch#request-cancellation-with-abortsignal\nconst cancellationTokenToAbortSignal = (cancellationToken) => {\n const abortController = new AbortController()\n cancellationToken.register((reason) => {\n abortController.abort(reason)\n })\n return abortController.signal\n}\n\nconst responseToHeaderMap = (response) => {\n const headerMap = {}\n response.headers.forEach((value, name) => {\n headerMap[name] = value\n })\n return headerMap\n}\n","export const writeSourceMappingURL = (source, location) => `${source}\n${\"//#\"} sourceMappingURL=${location}`\n\nexport const updateSourceMappingURL = (source, callback) => {\n const sourceMappingUrlRegExp = /\\/\\/# ?sourceMappingURL=([^\\s'\"]+)/g\n let lastSourceMappingUrl\n let matchSourceMappingUrl\n while ((matchSourceMappingUrl = sourceMappingUrlRegExp.exec(source))) {\n lastSourceMappingUrl = matchSourceMappingUrl\n }\n if (lastSourceMappingUrl) {\n const index = lastSourceMappingUrl.index\n const before = source.slice(0, index)\n const after = source.slice(index)\n const mappedAfter = after.replace(sourceMappingUrlRegExp, (match, firstGroup) => {\n return `${\"//#\"} sourceMappingURL=${callback(firstGroup)}`\n })\n return `${before}${mappedAfter}`\n }\n return source\n}\n\nexport const readSourceMappingURL = (source) => {\n let sourceMappingURL\n updateSourceMappingURL(source, (value) => {\n sourceMappingURL = value\n })\n return sourceMappingURL\n}\n\nexport const parseSourceMappingURL = (source) => {\n const sourceMappingURL = readSourceMappingURL(source)\n\n if (!sourceMappingURL) return null\n\n const base64Prefix = \"data:application/json;charset=utf-8;base64,\"\n if (sourceMappingURL.startsWith(base64Prefix)) {\n const mapBase64Source = sourceMappingURL.slice(base64Prefix.length)\n const sourcemapString = new Buffer(mapBase64Source, \"base64\").toString(\"utf8\")\n return { sourcemapString }\n }\n\n return {\n sourcemapURL: sourceMappingURL,\n }\n}\n\nexport const writeOrUpdateSourceMappingURL = (source, location) => {\n if (readSourceMappingURL(source)) {\n return updateSourceMappingURL(source, location)\n }\n return writeSourceMappingURL(source, location)\n}\n","/* eslint-disable import/max-dependencies */\nimport { statSync } from \"fs\"\nimport { resolve } from \"url\"\nimport { fileRead, fileWrite } from \"@dmail/helper\"\nimport { createOperation } from \"@dmail/cancellation\"\nimport {\n hrefToPathname,\n hrefToScheme,\n pathnameToRelativePath,\n pathnameIsInside,\n hrefToOrigin,\n} from \"@jsenv/href\"\nimport {\n pathnameToOperatingSystemPath,\n operatingSystemPathToPathname,\n isWindowsPath,\n} from \"@jsenv/operating-system-path\"\nimport { resolveImport, composeTwoImportMaps, normalizeImportMap } from \"@jsenv/import-map\"\nimport { generateImportMapForPackage } from \"@jsenv/node-module-import-map\"\nimport { jsenvBundlingProjectPathname, jsenvBundlingProjectPath } from \"./jsenv-bundling-project.js\"\nimport { generateBabelPluginMapOption } from \"./babel-plugin-map/babel-plugin-map.js\"\nimport { fetchUsingHttp } from \"./helpers/fetchUsingHttp.js\"\nimport { writeSourceMappingURL, parseSourceMappingURL } from \"./helpers/source-mapping-url.js\"\n\nconst {\n readProjectImportMap,\n babelHelperMap,\n generateBabelHelper,\n cleanCompileCacheFolderIfObsolete,\n getOrGenerateCompiledFile,\n transformJs,\n transformResultToCompilationResult,\n compilationResultToTransformResult,\n findAsyncPluginNameInBabelPluginMap,\n} = import.meta.require(\"@jsenv/core\")\nconst { minify: minifyCode } = import.meta.require(\"terser\")\n\nexport const createJsenvRollupPlugin = async ({\n cancellationToken,\n projectPathname,\n bundleIntoRelativePath,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n cache,\n cacheRelativePath,\n babelPluginMap,\n convertMap,\n featureNameArray,\n minify,\n format,\n detectAndTransformIfNeededAsyncInsertedByRollup = format === \"global\",\n entryPointMap,\n logger,\n}) => {\n const fakeOrigin = \"http://example.com\"\n\n const arrayOfHrefToSkipTransform = []\n const arrayOfAbstractHref = []\n\n const getArrayOfAbstractHref = () => arrayOfAbstractHref\n\n const importMapAbstractPath = \"/.jsenv/importMap.json\"\n const bundleConstantAbstractPath = \"/.jsenv/BUNDLE_CONSTANTS.js\"\n\n babelPluginMap = generateBabelPluginMapOption({\n projectPathname,\n format,\n babelPluginMap,\n featureNameArray,\n })\n\n const bundleConstantsHref = `file://${jsenvBundlingProjectPathname}${bundleConstantAbstractPath}`\n const importMapHref = `file://${projectPathname}${importMapRelativePath}`\n\n importFallbackMap = {\n ...importFallbackMap,\n // importMap is optionnal\n [importMapHref]: () => `export default {}`,\n }\n\n const chunkId = `${Object.keys(entryPointMap)[0]}.js`\n importAbstractMap = {\n ...importAbstractMap,\n [bundleConstantsHref]: () => `export const chunkId = ${JSON.stringify(chunkId)}`,\n }\n\n const importMapForBundling = {\n imports: {\n [bundleConstantAbstractPath]: bundleConstantsHref,\n [importMapAbstractPath]: importMapHref,\n },\n }\n\n Object.keys(babelHelperMap).forEach((babelHelperName) => {\n const babelHelperPath = babelHelperMap[babelHelperName]\n if (babelHelperPath.startsWith(\"@jsenv/core\")) {\n // nothing to do\n } else {\n importAbstractMap[babelHelperPath] = () => generateBabelHelper(babelHelperName)\n }\n })\n\n const importMapForProject = await readProjectImportMap({\n projectPathname,\n jsenvProjectPathname: jsenvBundlingProjectPathname,\n importMapRelativePath,\n logger,\n })\n const importMap = normalizeImportMap(\n [\n await generateImportMapForPackage({\n projectPath: jsenvBundlingProjectPath,\n rootProjectPath: pathnameToOperatingSystemPath(projectPathname),\n onWarn: ({ message }) => logger.warn(message),\n }),\n importMapForBundling,\n importMapForProject,\n importMapForBundle,\n ].reduce((previous, current) => composeTwoImportMaps(previous, current), {}),\n fakeOrigin,\n )\n\n const compileCacheFolderRelativePath = `${bundleIntoRelativePath}${cacheRelativePath}`\n if (cache) {\n const cacheMeta = {\n featureNameArray,\n convertMap,\n\n // importMap,\n // importMap influences how the files are resolved\n // but not how they are compiled and cached\n\n // format,\n // not needed because derived from bundleIntoRelativePath\n\n // babelPluginMap,\n // not needed because derived from featureNameArray\n\n // minify,\n // not needed, the bundle itself is not cached\n // and only the bundle is minified\n }\n await cleanCompileCacheFolderIfObsolete({\n projectPathname,\n compileCacheFolderRelativePath,\n cacheMeta,\n cleanCallback: (cacheFolderPath) => {\n logger.warn(`remove cache folder ${cacheFolderPath}`)\n },\n })\n }\n\n const jsenvRollupPlugin = {\n name: \"jsenv\",\n\n resolveId: (specifier, importer) => {\n let importerHref\n if (importer) {\n if (isWindowsPath(importer)) {\n importer = operatingSystemPathToPathname(importer)\n }\n // 99% of the time importer is an operating system path\n // here we ensure / is resolved against project by forcing an url resolution\n // prefixing with origin\n if (importer.startsWith(`${projectPathname}/`)) {\n importerHref = `${fakeOrigin}${pathnameToRelativePath(importer, projectPathname)}`\n } else if (hrefToScheme(importer)) {\n if (importer.startsWith(`file://${projectPathname}/`)) {\n importerHref = `${fakeOrigin}${pathnameToRelativePath(\n hrefToPathname(importer),\n projectPathname,\n )}`\n } else {\n // there is already a scheme (http, https, file), keep it\n // it means there is an absolute import starting with file:// or http:// for instance.\n importerHref = importer\n }\n } else {\n throw createImporterOutsideProjectError({ importer, projectPathname })\n }\n } else {\n importerHref = fakeOrigin\n }\n\n const resolvedHref = resolveImport({\n specifier,\n importer: importerHref,\n importMap,\n defaultExtension: importDefaultExtension,\n })\n\n let href\n if (resolvedHref.startsWith(\"file://\")) {\n if (!pathnameIsInside(hrefToPathname(resolvedHref), projectPathname)) {\n throw new Error(\n createMustBeInsideProjectMessage({\n href: resolvedHref,\n specifier,\n importer,\n projectPathname,\n }),\n )\n }\n href = resolvedHref\n } else if (hrefToOrigin(resolvedHref) === fakeOrigin) {\n href = `file://${projectPathname}${hrefToPathname(resolvedHref)}`\n } else {\n // allow external import like import \"https://cdn.com/jquery.js\"\n href = resolvedHref\n }\n\n if (href.startsWith(\"file://\")) {\n // TODO: open an issue rollup side\n // to explain the issue here\n // which is that if id is not an os path\n // sourcemap will be broken\n // (likely because they apply node.js path.resolve)\n // they could either use an other resolution system\n // or provide the ability to change how it's resolved\n // so that the sourcemap.sources does not get broken\n\n // rollup works with operating system path\n // return os path when possible\n // to ensure we can predict sourcemap.sources returned by rollup\n const filePathame = hrefToPathname(href)\n const filePath = pathnameToOperatingSystemPath(filePathame)\n if (href in importAbstractMap) {\n return filePath\n }\n // file presence is optionnal\n if (href in importFallbackMap) {\n return filePath\n }\n\n let stats\n try {\n stats = statSync(filePath)\n } catch (e) {\n if (e.code === \"ENOENT\") {\n throw new Error(\n createFileNotFoundForImportMessage({\n path: filePath,\n specifier,\n importer,\n }),\n )\n }\n throw e\n }\n\n if (!stats.isFile()) {\n throw new Error(\n createUnexpectedStatsForImportMessage({\n path: filePath,\n stats,\n specifier,\n importer,\n }),\n )\n }\n\n return filePath\n }\n\n return href\n },\n\n // https://rollupjs.org/guide/en#resolvedynamicimport\n // resolveDynamicImport: (specifier, importer) => {\n\n // },\n\n load: async (rollupId) => {\n const href = rollupIdToHref(rollupId)\n\n if (href in importAbstractMap) {\n const generateSourceForImport = importAbstractMap[href]\n if (typeof generateSourceForImport !== \"function\") {\n throw new Error(\n `importAbstractMap values must be functions, found ${generateSourceForImport} for ${href}`,\n )\n }\n\n return generateAbstractSourceForImport(href, generateSourceForImport)\n }\n\n const response = await fetchHref(href)\n const responseStatus = response.status\n\n if (!responseStatusIsOk(responseStatus)) {\n if (responseStatus === 404 && href in importFallbackMap) {\n return generateAbstractSourceForImport(href, importFallbackMap[href])\n }\n throw new Error(\n createUnexpectedResponseStatusMessage({\n responseStatus,\n href,\n }),\n )\n }\n\n let source = response.body\n\n if (href.endsWith(\".json\")) {\n source = `export default ${source}`\n }\n\n const sourcemapParsingResult = parseSourceMappingURL(source)\n\n if (!sourcemapParsingResult) {\n return { code: source }\n }\n\n if (sourcemapParsingResult.sourcemapString) {\n return { code: source, map: JSON.parse(sourcemapParsingResult.sourcemapString) }\n }\n\n const resolvedSourceMappingURL = resolve(href, sourcemapParsingResult.sourcemapURL)\n const sourcemapResponse = await fetchHref(resolvedSourceMappingURL)\n const sourcemapResponseStatus = sourcemapResponse.status\n if (!responseStatusIsOk(sourcemapResponse)) {\n logger.warn(\n createUnexpectedResponseStatusMessage({\n responseStatus: sourcemapResponseStatus,\n href: resolvedSourceMappingURL,\n }),\n )\n return { code: source }\n }\n\n return { code: source, map: JSON.parse(sourcemapResponse.body) }\n },\n\n // resolveImportMeta: () => {}\n\n transform: async (source, rollupId) => {\n const sourceHref = rollupIdToHref(rollupId)\n\n if (arrayOfHrefToSkipTransform.includes(sourceHref)) {\n return null\n }\n\n const transform = async () => {\n const { code, map } = await transformJs({\n source,\n sourceHref,\n projectPathname,\n babelPluginMap,\n convertMap,\n // false, rollup will take care to transform module into whatever format\n transformModuleIntoSystemFormat: false,\n })\n return { code, map }\n }\n\n if (!cache || !sourceHref.startsWith(`file://${projectPathname}/`)) {\n return transform()\n }\n\n const sourcePathname = hrefToPathname(sourceHref)\n const sourceRelativePath = pathnameToRelativePath(sourcePathname, projectPathname)\n\n const { compileResult } = await getOrGenerateCompiledFile({\n projectPathname,\n compileCacheFolderRelativePath,\n sourceRelativePath,\n compile: async () => {\n const transformResult = await transform()\n return transformResultToCompilationResult(transformResult, {\n source,\n sourceHref,\n projectPathname,\n })\n },\n })\n\n return compilationResultToTransformResult(compileResult)\n },\n\n renderChunk: (source) => {\n if (!minify) return null\n\n // https://github.com/terser-js/terser#minify-options\n const minifyOptions = format === \"global\" ? { toplevel: false } : { toplevel: true }\n const result = minifyCode(source, {\n sourceMap: true,\n ...minifyOptions,\n })\n if (result.error) {\n throw result.error\n } else {\n return result\n }\n },\n\n writeBundle: async (bundle) => {\n if (detectAndTransformIfNeededAsyncInsertedByRollup) {\n await transformAsyncInsertedByRollup({\n projectPathname,\n bundleIntoRelativePath,\n babelPluginMap,\n bundle,\n })\n }\n\n Object.keys(bundle).forEach((bundleFilename) => {\n logger.info(`-> ${projectPathname}${bundleIntoRelativePath}/${bundleFilename}`)\n })\n },\n }\n\n const markHrefAsAbstract = (href) => {\n if (!arrayOfAbstractHref.includes(href)) {\n arrayOfAbstractHref.push(href)\n }\n }\n\n const generateAbstractSourceForImport = async (href, generateSource) => {\n markHrefAsAbstract(href)\n\n const returnValue = await generateSource()\n\n if (typeof returnValue === \"string\") {\n return { code: returnValue }\n }\n\n const { skipTransform, code, map } = returnValue\n\n if (skipTransform) {\n arrayOfHrefToSkipTransform.push(href)\n }\n return { code, map }\n }\n\n const rollupIdToHref = (rollupId) => {\n if (isWindowsPath(rollupId)) {\n return `file://${operatingSystemPathToPathname(rollupId)}`\n }\n\n if (hrefToScheme(rollupId)) {\n return rollupId\n }\n\n return `file://${operatingSystemPathToPathname(rollupId)}`\n }\n\n const fetchHref = async (href) => {\n // this code allow you to have http/https dependency for convenience\n // but maybe we should warn about this.\n // it could also be vastly improved using a basic in memory cache\n if (href.startsWith(\"http://\")) {\n const response = await fetchUsingHttp(href, { cancellationToken })\n return response\n }\n\n if (href.startsWith(\"https://\")) {\n const response = await fetchUsingHttp(href, { cancellationToken })\n return response\n }\n\n if (href.startsWith(\"file:///\")) {\n try {\n const code = await createOperation({\n cancellationToken,\n start: () => fileRead(pathnameToOperatingSystemPath(hrefToPathname(href))),\n })\n return {\n status: 200,\n body: code,\n }\n } catch (e) {\n if (e.code === \"ENOENT\") {\n return {\n status: 404,\n }\n }\n return {\n status: 500,\n }\n }\n }\n\n throw new Error(`unsupported href: ${href}`)\n }\n\n return {\n jsenvRollupPlugin,\n getArrayOfAbstractHref,\n }\n}\n\nconst responseStatusIsOk = (responseStatus) => responseStatus >= 200 && responseStatus < 300\n\nconst createFileNotFoundForImportMessage = ({\n path,\n specifier,\n importer,\n}) => `import file not found.\n--- path ---\n${path}\n--- specifier ---\n${specifier}\n--- importer ---\n${importer}`\n\nconst createUnexpectedStatsForImportMessage = ({\n path,\n stats,\n specifier,\n importer,\n}) => `unexpected import file stats.\n--- path ---\n${path}\n--- found ---\n${stats.isDirectory()} ? 'directory' : 'not-a-file'\n--- specifier ---\n${specifier}\n--- importer ---\n${importer}`\n\nconst createUnexpectedResponseStatusMessage = ({\n responseStatus,\n href,\n}) => `unexpected response status.\n--- response status ---\n${responseStatus}\n--- href ---\n${href}`\n\nconst createMustBeInsideProjectMessage = ({ href, specifier, importer, projectPathname }) => `\nsource must be inside project.\n--- href ---\n${href}\n--- specifier ---\n${specifier}\n--- importer ---\n${importer}\n--- project path ---\n${pathnameToOperatingSystemPath(projectPathname)}`\n\nconst createImporterOutsideProjectError = ({ importer, projectPathname }) =>\n new Error(`importer must be inside project\n importer: ${importer}\n project: ${pathnameToOperatingSystemPath(projectPathname)}`)\n\nconst transformAsyncInsertedByRollup = async ({\n projectPathname,\n bundleIntoRelativePath,\n babelPluginMap,\n bundle,\n}) => {\n const bundleFolderPathname = `${projectPathname}${bundleIntoRelativePath}`\n const asyncPluginName = findAsyncPluginNameInBabelPluginMap(babelPluginMap)\n\n if (!asyncPluginName) return\n\n // we have to do this because rollup ads\n // an async wrapper function without transpiling it\n // if your bundle contains a dynamic import\n await Promise.all(\n Object.keys(bundle).map(async (bundleFilename) => {\n const bundleInfo = bundle[bundleFilename]\n\n const { code, map } = await transformJs({\n projectPathname,\n source: bundleInfo.code,\n sourceHref: `file://${operatingSystemPathToPathname(bundleFilename)}`,\n sourceMap: bundleInfo.map,\n babelPluginMap: { [asyncPluginName]: babelPluginMap[asyncPluginName] },\n transformModuleIntoSystemFormat: false, // already done by rollup\n transformGenerator: false, // already done\n })\n\n await Promise.all([\n fileWrite(\n pathnameToOperatingSystemPath(`${bundleFolderPathname}/${bundleFilename}`),\n writeSourceMappingURL(code, `./${bundleFilename}.map`),\n ),\n fileWrite(\n pathnameToOperatingSystemPath(`${bundleFolderPathname}/${bundleFilename}.map`),\n JSON.stringify(map),\n ),\n ])\n }),\n )\n}\n","import { createOperation } from \"@dmail/cancellation\"\n\nconst { rollup } = import.meta.require(\"rollup\")\n\nexport const generateBundleUsingRollup = async ({\n cancellationToken,\n rollupParseOptions,\n rollupGenerateOptions,\n writeOnFileSystem,\n}) => {\n const rollupBundle = await createOperation({\n cancellationToken,\n start: () =>\n rollup({\n // about cache here, we should/could reuse previous rollup call\n // to get the cache from the entryPointMap\n // as shown here: https://rollupjs.org/guide/en#cache\n // it could be passed in arguments to this function\n // however parallelism and having different rollup options per\n // call make it a bit complex\n // cache: null\n // https://rollupjs.org/guide/en#experimentaltoplevelawait\n experimentalTopLevelAwait: true,\n // if we want to ignore some warning\n // please use https://rollupjs.org/guide/en#onwarn\n // to be very clear about what we want to ignore\n onwarn: (warning, warn) => {\n if (warning.code === \"THIS_IS_UNDEFINED\") return\n warn(warning)\n },\n ...rollupParseOptions,\n }),\n })\n\n const rollupOutputArray = await createOperation({\n cancellationToken,\n start: () => {\n if (writeOnFileSystem) {\n return rollupBundle.write({\n // https://rollupjs.org/guide/en#experimentaltoplevelawait\n experimentalTopLevelAwait: true,\n // we could put prefConst to true by checking 'transform-block-scoping'\n // presence in babelPluginMap\n preferConst: false,\n ...rollupGenerateOptions,\n })\n }\n return rollupBundle.generate({\n // https://rollupjs.org/guide/en#experimentaltoplevelawait\n experimentalTopLevelAwait: true,\n // we could put prefConst to true by checking 'transform-block-scoping'\n // presence in babelPluginMap\n preferConst: false,\n ...rollupGenerateOptions,\n })\n },\n })\n\n return rollupOutputArray\n}\n","export const formatToRollupFormat = (format) => {\n if (format === \"global\") return \"iife\"\n if (format === \"commonjs\") return \"cjs\"\n if (format === \"systemjs\") return \"system\"\n throw new Error(`unexpected format, got ${format}`)\n}\n","import { pathnameToOperatingSystemPath } from \"@jsenv/operating-system-path\"\nimport { createLogger } from \"@jsenv/logger\"\nimport { createJsenvRollupPlugin } from \"./jsenv-rollup-plugin.js\"\nimport { generateBundleUsingRollup } from \"./generate-bundle-using-rollup.js\"\nimport { formatToRollupFormat } from \"./format-to-rollup-format.js\"\n\nexport const bundleWithoutBalancing = async ({\n cancellationToken,\n projectPathname,\n bundleIntoRelativePath,\n cache,\n cacheRelativePath,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n nativeModulePredicate,\n entryPointMap,\n babelPluginMap,\n convertMap,\n minify,\n logLevel,\n format,\n formatOutputOptions,\n writeOnFileSystem,\n}) => {\n const logger = createLogger({ logLevel })\n\n const dir = pathnameToOperatingSystemPath(`${projectPathname}${bundleIntoRelativePath}`)\n\n const { jsenvRollupPlugin, getArrayOfAbstractHref } = await createJsenvRollupPlugin({\n cancellationToken,\n projectPathname,\n bundleIntoRelativePath,\n cache,\n cacheRelativePath,\n entryPointMap,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n babelPluginMap,\n convertMap,\n featureNameArray: Object.keys(babelPluginMap),\n minify,\n format,\n logger,\n })\n\n logger.trace(`\nbundle entry points without balancing.\nformat: ${format}\nentry point names: ${Object.keys(entryPointMap)}\ndir: ${dir}\nminify: ${minify}\n`)\n\n const rollupBundle = await generateBundleUsingRollup({\n cancellationToken,\n writeOnFileSystem,\n rollupParseOptions: {\n input: entryPointMap,\n plugins: [jsenvRollupPlugin],\n external: (id) => nativeModulePredicate(id),\n },\n rollupGenerateOptions: {\n // https://rollupjs.org/guide/en#output-dir\n dir,\n // https://rollupjs.org/guide/en#output-format\n format: formatToRollupFormat(format),\n // entryFileNames: `./[name].js`,\n // https://rollupjs.org/guide/en#output-sourcemap\n sourcemap: true,\n // we could exclude them\n // but it's better to put them directly\n // in case source files are not reachable\n // for whatever reason\n sourcemapExcludeSources: false,\n ...formatOutputOptions,\n },\n })\n\n return { rollupBundle, arrayOfAbstractHref: getArrayOfAbstractHref() }\n}\n","import { pathnameToOperatingSystemPath } from \"@jsenv/operating-system-path\"\nimport { createLogger } from \"@jsenv/logger\"\nimport { createJsenvRollupPlugin } from \"./jsenv-rollup-plugin.js\"\nimport { generateBundleUsingRollup } from \"./generate-bundle-using-rollup.js\"\nimport { formatToRollupFormat } from \"./format-to-rollup-format.js\"\n\nexport const bundleWithBalancing = async ({\n cancellationToken,\n projectPathname,\n bundleIntoRelativePath,\n cache,\n cacheRelativePath,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n nativeModulePredicate,\n entryPointMap,\n babelPluginMap,\n convertMap,\n minify,\n logLevel,\n format,\n formatOutputOptions,\n groupMap,\n compileId,\n writeOnFileSystem,\n}) => {\n const logger = createLogger({ logLevel })\n\n const dir = pathnameToOperatingSystemPath(\n `${projectPathname}${bundleIntoRelativePath}/${compileId}`,\n )\n\n const { jsenvRollupPlugin, getArrayOfAbstractHref } = await createJsenvRollupPlugin({\n cancellationToken,\n projectPathname,\n bundleIntoRelativePath: `${bundleIntoRelativePath}/${compileId}`,\n cache,\n cacheRelativePath,\n entryPointMap,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n babelPluginMap,\n convertMap,\n featureNameArray: groupMap[compileId].incompatibleNameArray,\n minify,\n format,\n logger,\n })\n\n logger.trace(`\n bundle entry points with balancing.\n format: ${format}\n compileId: ${compileId}\n entryPointArray: ${Object.keys(entryPointMap)}\n dir: ${dir}\n minify: ${minify}\n `)\n\n const rollupBundle = await generateBundleUsingRollup({\n cancellationToken,\n writeOnFileSystem,\n rollupParseOptions: {\n input: entryPointMap,\n plugins: [jsenvRollupPlugin],\n external: (id) => nativeModulePredicate(id),\n },\n rollupGenerateOptions: {\n dir,\n format: formatToRollupFormat(format),\n sourcemap: true,\n sourceMapExcludeSources: true,\n ...formatOutputOptions,\n },\n })\n\n return { rollupBundle, arrayOfAbstractHref: getArrayOfAbstractHref() }\n}\n","import { pathnameToOperatingSystemPath } from \"@jsenv/operating-system-path\"\nimport { createLogger } from \"@jsenv/logger\"\nimport { composeTwoImportMaps } from \"@jsenv/import-map\"\nimport { createJsenvRollupPlugin } from \"./jsenv-rollup-plugin.js\"\nimport { generateBundleUsingRollup } from \"./generate-bundle-using-rollup.js\"\nimport { jsenvBundlingProjectPathname } from \"./jsenv-bundling-project.js\"\n\nexport const bundleBalancer = async ({\n cancellationToken,\n projectPathname,\n bundleIntoRelativePath,\n cache,\n cacheRelativePath,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n nativeModulePredicate,\n entryPointMap,\n babelPluginMap,\n convertMap,\n minify,\n logLevel,\n format,\n balancerDataAbstractPath,\n groupMap,\n writeOnFileSystem,\n}) => {\n const logger = createLogger({ logLevel })\n\n const entryPointName = Object.keys(entryPointMap)[0]\n const dir = pathnameToOperatingSystemPath(`${projectPathname}${bundleIntoRelativePath}`)\n\n const balancerDataHref = `file://${jsenvBundlingProjectPathname}${balancerDataAbstractPath}`\n\n const { jsenvRollupPlugin, getArrayOfAbstractHref } = await createJsenvRollupPlugin({\n cancellationToken,\n projectPathname,\n bundleIntoRelativePath,\n cache,\n cacheRelativePath,\n entryPointMap,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle: composeTwoImportMaps(importMapForBundle || {}, {\n imports: {\n [balancerDataAbstractPath]: balancerDataHref,\n },\n }),\n importAbstractMap: {\n ...importAbstractMap,\n [balancerDataHref]: () => `export const entryPointName = ${JSON.stringify(entryPointName)}\n export const groupMap = ${JSON.stringify(groupMap)}`,\n },\n importFallbackMap,\n babelPluginMap,\n convertMap,\n featureNameArray: groupMap.otherwise.incompatibleNameArray,\n minify,\n format,\n logger,\n })\n\n logger.trace(`\n bundle balancer file.\n format: ${format}\n entryPointName: ${entryPointName}\n file: ${dir}/${entryPointName}.js\n minify: ${minify}\n `)\n\n const rollupBundle = await generateBundleUsingRollup({\n cancellationToken,\n writeOnFileSystem,\n rollupParseOptions: {\n input: entryPointMap,\n plugins: [jsenvRollupPlugin],\n external: (id) => nativeModulePredicate(id),\n },\n rollupGenerateOptions: {\n dir,\n format: \"iife\",\n sourcemap: true,\n sourcemapExcludeSources: true,\n },\n })\n\n return { rollupBundle, arrayOfAbstractHref: getArrayOfAbstractHref() }\n}\n","const rimraf = import.meta.require(\"rimraf\")\n\nexport const removeFolder = (foldername) =>\n new Promise((resolve, reject) =>\n rimraf(foldername, (error) => {\n if (error) reject(error)\n else resolve()\n }),\n )\n","import { browserScoreMap, nodeVersionScoreMap } from \"@jsenv/core\"\n\nconst { jsenvBabelPluginMap } = import.meta.require(\"@jsenv/babel-plugin-map\")\n\nexport const DEFAULT_IMPORT_MAP_RELATIVE_PATH = \"/importMap.json\"\n\nexport const DEFAULT_ENTRY_POINT_MAP = {\n main: \"index.js\",\n}\n\n// https://github.com/browserify/resolve/blob/a09a2e7f16273970be4639313c83b913daea15d7/lib/core.json#L1\n// https://nodejs.org/api/modules.html#modules_module_builtinmodules\n// https://stackoverflow.com/a/35825896\n// https://github.com/browserify/resolve/blob/master/lib/core.json#L1\n\nconst NATIVE_NODE_MODULE_SPECIFIER_ARRAY = [\n \"assert\",\n \"async_hooks\",\n \"buffer_ieee754\",\n \"buffer\",\n \"child_process\",\n \"cluster\",\n \"console\",\n \"constants\",\n \"crypto\",\n \"_debugger\",\n \"dgram\",\n \"dns\",\n \"domain\",\n \"events\",\n \"freelist\",\n \"fs\",\n \"fs/promises\",\n \"_http_agent\",\n \"_http_client\",\n \"_http_common\",\n \"_http_incoming\",\n \"_http_outgoing\",\n \"_http_server\",\n \"http\",\n \"http2\",\n \"https\",\n \"inspector\",\n \"_linklist\",\n \"module\",\n \"net\",\n \"node-inspect/lib/_inspect\",\n \"node-inspect/lib/internal/inspect_client\",\n \"node-inspect/lib/internal/inspect_repl\",\n \"os\",\n \"path\",\n \"perf_hooks\",\n \"process\",\n \"punycode\",\n \"querystring\",\n \"readline\",\n \"repl\",\n \"smalloc\",\n \"_stream_duplex\",\n \"_stream_transform\",\n \"_stream_wrap\",\n \"_stream_passthrough\",\n \"_stream_readable\",\n \"_stream_writable\",\n \"stream\",\n \"string_decoder\",\n \"sys\",\n \"timers\",\n \"_tls_common\",\n \"_tls_legacy\",\n \"_tls_wrap\",\n \"tls\",\n \"trace_events\",\n \"tty\",\n \"url\",\n \"util\",\n \"v8/tools/arguments\",\n \"v8/tools/codemap\",\n \"v8/tools/consarray\",\n \"v8/tools/csvparser\",\n \"v8/tools/logreader\",\n \"v8/tools/profile_view\",\n \"v8/tools/splaytree\",\n \"v8\",\n \"vm\",\n \"worker_threads\",\n \"zlib\",\n // global is special\n \"global\",\n]\n\nexport const DEFAULT_NATIVE_MODULE_PREDICATE = (id) => {\n if (id === \"global\") return false\n\n if (NATIVE_NODE_MODULE_SPECIFIER_ARRAY.includes(id)) return true\n\n return false\n}\n\nexport const DEFAULT_BABEL_PLUGIN_MAP = jsenvBabelPluginMap\n\nexport const DEFAULT_PLATFORM_SCORE_MAP = {\n ...browserScoreMap,\n node: nodeVersionScoreMap,\n}\n","/* eslint-disable import/max-dependencies */\nimport {\n operatingSystemPathToPathname,\n pathnameToOperatingSystemPath,\n} from \"@jsenv/operating-system-path\"\nimport { generateGroupMap } from \"@jsenv/core\"\nimport {\n catchAsyncFunctionCancellation,\n createProcessInterruptionCancellationToken,\n} from \"@dmail/cancellation\"\nimport { jsenvBundlingRelativePathInception } from \"./jsenv-bundling-project.js\"\nimport { assertFile, assertFolder } from \"./filesystem-assertions.js\"\nimport { bundleWithoutBalancing } from \"./bundle-without-balancing.js\"\nimport { bundleWithBalancing } from \"./bundle-with-balancing.js\"\nimport { bundleBalancer } from \"./bundle-balancer.js\"\nimport { removeFolder } from \"./removeFolder.js\"\nimport {\n DEFAULT_IMPORT_MAP_RELATIVE_PATH,\n DEFAULT_ENTRY_POINT_MAP,\n DEFAULT_NATIVE_MODULE_PREDICATE,\n DEFAULT_BABEL_PLUGIN_MAP,\n DEFAULT_PLATFORM_SCORE_MAP,\n} from \"./generate-bundle-constant.js\"\n\nexport const generateBundle = ({\n projectPath,\n bundleIntoRelativePath,\n cleanBundleInto = false,\n cache = false,\n cacheRelativePath = \"/.cache\",\n importDefaultExtension,\n importMapRelativePath = DEFAULT_IMPORT_MAP_RELATIVE_PATH,\n importMapForBundle = {},\n importAbstractMap = {},\n importFallbackMap = {},\n nativeModulePredicate = DEFAULT_NATIVE_MODULE_PREDICATE,\n entryPointMap = DEFAULT_ENTRY_POINT_MAP,\n babelPluginMap = DEFAULT_BABEL_PLUGIN_MAP,\n convertMap,\n logLevel,\n minify = false,\n writeOnFileSystem = true,\n throwUnhandled = true,\n format,\n formatOutputOptions = {},\n // balancing\n compileGroupCount = 1,\n platformAlwaysInsidePlatformScoreMap,\n balancerTemplateRelativePath,\n defaultBalancerTemplateHref,\n balancerDataAbstractPath,\n platformScoreMap = DEFAULT_PLATFORM_SCORE_MAP,\n}) => {\n const promise = catchAsyncFunctionCancellation(async () => {\n if (typeof projectPath !== \"string\")\n throw new TypeError(`projectPath must be a string, got ${projectPath}`)\n if (typeof bundleIntoRelativePath !== \"string\")\n throw new TypeError(`bundleIntoRelativePath must be a string, got ${bundleIntoRelativePath}`)\n if (typeof entryPointMap !== \"object\")\n throw new TypeError(`entryPointMap must be an object, got ${entryPointMap}`)\n if (typeof compileGroupCount !== \"number\")\n throw new TypeError(`compileGroupCount must be a number, got ${compileGroupCount}`)\n if (compileGroupCount < 1)\n throw new Error(`compileGroupCount must be >= 1, got ${compileGroupCount}`)\n\n const cancellationToken = createProcessInterruptionCancellationToken()\n const projectPathname = operatingSystemPathToPathname(projectPath)\n\n await assertFolder(projectPathname)\n\n if (cleanBundleInto) {\n await removeFolder(\n pathnameToOperatingSystemPath(`${projectPathname}${bundleIntoRelativePath}`),\n )\n }\n\n if (compileGroupCount === 1) {\n return bundleWithoutBalancing({\n cancellationToken,\n projectPathname,\n bundleIntoRelativePath,\n cache,\n cacheRelativePath,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n nativeModulePredicate,\n entryPointMap,\n babelPluginMap,\n convertMap,\n minify,\n logLevel,\n format,\n formatOutputOptions,\n writeOnFileSystem,\n })\n }\n\n if (typeof balancerTemplateRelativePath === \"undefined\") {\n if (!defaultBalancerTemplateHref) {\n throw createFormatIncompatibleWithBalancingError({ format })\n }\n balancerTemplateRelativePath = jsenvBundlingRelativePathInception({\n jsenvBundlingRelativePath: defaultBalancerTemplateHref,\n projectPathname,\n })\n }\n const balancerTemplatePathname = `${projectPathname}${balancerTemplateRelativePath}`\n const balancerTemplateHref = `file://${balancerTemplatePathname}`\n\n await assertFile(pathnameToOperatingSystemPath(balancerTemplatePathname))\n\n const groupMap = generateGroupMap({\n babelPluginMap,\n platformScoreMap,\n groupCount: compileGroupCount,\n platformAlwaysInsidePlatformScoreMap,\n })\n\n return await Promise.all([\n generateEntryPointsFolders({\n cancellationToken,\n projectPathname,\n bundleIntoRelativePath,\n cache,\n cacheRelativePath,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n nativeModulePredicate,\n entryPointMap,\n babelPluginMap,\n convertMap,\n minify,\n logLevel,\n writeOnFileSystem,\n format,\n formatOutputOptions,\n groupMap,\n }),\n generateEntryPointsBalancerFiles({\n cancellationToken,\n projectPathname,\n bundleIntoRelativePath,\n cache,\n cacheRelativePath,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n nativeModulePredicate,\n entryPointMap,\n babelPluginMap,\n convertMap,\n minify,\n logLevel,\n writeOnFileSystem,\n format,\n balancerTemplateHref,\n balancerDataAbstractPath,\n groupMap,\n }),\n ])\n })\n\n if (!throwUnhandled) return promise\n return promise.catch((e) => {\n setTimeout(() => {\n throw e\n })\n })\n}\n\nconst generateEntryPointsFolders = async ({\n cancellationToken,\n projectPathname,\n bundleIntoRelativePath,\n cache,\n cacheRelativePath,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n nativeModulePredicate,\n entryPointMap,\n babelPluginMap,\n convertMap,\n minify,\n logLevel,\n writeOnFileSystem,\n format,\n formatOutputOptions,\n groupMap,\n}) =>\n Promise.all(\n Object.keys(groupMap).map(async (compileId) =>\n bundleWithBalancing({\n cancellationToken,\n projectPathname,\n bundleIntoRelativePath,\n cache,\n cacheRelativePath,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n nativeModulePredicate,\n entryPointMap,\n babelPluginMap,\n convertMap,\n minify,\n logLevel,\n format,\n formatOutputOptions,\n groupMap,\n compileId,\n writeOnFileSystem,\n }),\n ),\n )\n\nconst generateEntryPointsBalancerFiles = ({\n cancellationToken,\n projectPathname,\n bundleIntoRelativePath,\n cache,\n cacheRelativePath,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n nativeModulePredicate,\n entryPointMap,\n babelPluginMap,\n convertMap,\n minify,\n logLevel,\n writeOnFileSystem,\n format,\n balancerTemplateHref,\n balancerDataAbstractPath,\n groupMap,\n}) =>\n Promise.all(\n Object.keys(entryPointMap).map(async (entryPointName) =>\n bundleBalancer({\n cancellationToken,\n projectPathname,\n bundleIntoRelativePath,\n cache,\n cacheRelativePath,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n nativeModulePredicate,\n entryPointMap: {\n [entryPointName]: balancerTemplateHref,\n },\n babelPluginMap,\n convertMap,\n minify,\n logLevel,\n format,\n balancerDataAbstractPath,\n groupMap,\n writeOnFileSystem,\n }),\n ),\n )\n\nconst createFormatIncompatibleWithBalancingError = ({ format }) =>\n new Error(`format not compatible with balancing.\nformat: ${format}`)\n","export const DEFAULT_BUNDLE_INTO_RELATIVE_PATH = \"/dist/global\"\n","import { generateBundle } from \"../generate-bundle.js\"\nimport { DEFAULT_BUNDLE_INTO_RELATIVE_PATH } from \"./generate-global-bundle-constant.js\"\n\nexport const generateGlobalBundle = async ({\n projectPath,\n bundleIntoRelativePath = DEFAULT_BUNDLE_INTO_RELATIVE_PATH,\n cleanBundleInto,\n cache,\n cacheRelativePath,\n globalName,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n entryPointMap,\n babelPluginMap,\n convertMap,\n logLevel,\n minify,\n throwUnhandled,\n writeOnFileSystem,\n platformScoreMap,\n platformAlwaysInsidePlatformScoreMap,\n}) =>\n generateBundle({\n format: \"global\",\n formatOutputOptions: globalName\n ? {\n name: globalName,\n }\n : {},\n projectPath,\n bundleIntoRelativePath,\n cleanBundleInto,\n cache,\n cacheRelativePath,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n entryPointMap,\n babelPluginMap,\n convertMap,\n logLevel,\n minify,\n throwUnhandled,\n writeOnFileSystem,\n compileGroupCount: 1,\n platformScoreMap,\n platformAlwaysInsidePlatformScoreMap,\n })\n","export const DEFAULT_BUNDLE_INTO_RELATIVE_PATH = \"/dist/commonjs\"\n","import { generateBundle } from \"../generate-bundle.js\"\nimport { DEFAULT_BUNDLE_INTO_RELATIVE_PATH } from \"./generate-commonjs-bundle-constant.js\"\nimport { jsenvBundlingProjectPathname } from \"../jsenv-bundling-project.js\"\n\nexport const generateCommonJsBundle = async ({\n projectPath,\n bundleIntoRelativePath = DEFAULT_BUNDLE_INTO_RELATIVE_PATH,\n cleanBundleInto,\n cache,\n cacheRelativePath,\n balancerTemplateRelativePath,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n entryPointMap,\n babelPluginMap,\n convertMap,\n logLevel,\n minify,\n throwUnhandled,\n writeOnFileSystem,\n compileGroupCount,\n platformScoreMap,\n platformAlwaysInsidePlatformScoreMap,\n}) => {\n return generateBundle({\n format: \"commonjs\",\n balancerTemplateRelativePath,\n defaultBalancerTemplateHref: `file://${jsenvBundlingProjectPathname}/src/bundle-commonjs/commonjs-balancer-template.js`,\n balancerDataAbstractPath: \"/.jsenv/commonjs-balancer-data.js\",\n projectPath,\n bundleIntoRelativePath,\n cache,\n cacheRelativePath,\n cleanBundleInto,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n entryPointMap,\n babelPluginMap,\n convertMap,\n logLevel,\n minify,\n throwUnhandled,\n writeOnFileSystem,\n compileGroupCount,\n platformScoreMap,\n platformAlwaysInsidePlatformScoreMap,\n })\n}\n","export const DEFAULT_BUNDLE_INTO_RELATIVE_PATH = \"/dist/systemjs\"\n","import { generateBundle } from \"../generate-bundle.js\"\nimport { DEFAULT_BUNDLE_INTO_RELATIVE_PATH } from \"./generate-systemjs-bundle-constant.js\"\nimport { jsenvBundlingProjectPathname } from \"../jsenv-bundling-project.js\"\n\nexport const generateSystemJsBundle = async ({\n projectPath,\n bundleIntoRelativePath = DEFAULT_BUNDLE_INTO_RELATIVE_PATH,\n cleanBundleInto,\n cache,\n cacheRelativePath,\n balancerTemplateRelativePath,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n entryPointMap,\n babelPluginMap,\n convertMap,\n logLevel,\n minify,\n throwUnhandled,\n writeOnFileSystem,\n compileGroupCount,\n platformScoreMap,\n platformAlwaysInsidePlatformScoreMap,\n}) => {\n return generateBundle({\n format: \"systemjs\",\n balancerTemplateRelativePath,\n defaultBalancerTemplateHref: `file://${jsenvBundlingProjectPathname}/src/bundle-systemjs/systemjs-balancer-template.js`,\n balancerDataAbstractPath: \"/.jsenv/systemjs-balancer-data.js\",\n projectPath,\n bundleIntoRelativePath,\n cleanBundleInto,\n cache,\n cacheRelativePath,\n importDefaultExtension,\n importMapRelativePath,\n importMapForBundle,\n importAbstractMap,\n importFallbackMap,\n entryPointMap,\n babelPluginMap,\n convertMap,\n logLevel,\n minify,\n throwUnhandled,\n writeOnFileSystem,\n compileGroupCount,\n platformScoreMap,\n platformAlwaysInsidePlatformScoreMap,\n })\n}\n","/*\n\nbundleToCompilationResult does two things:\n\n1. Change every relative path inside rollup sourcemap to an \"absolute\" version.\nSomething like `../../importMap.json` becomes `/importMap.json`.\nIn the process // sourceMappingURL comment of the file referencing the sourcemap is updated.\n\nWe need this because vscode is configured with\n```json\n{\n \"sourceMapPathOverrides\": {\n \"/*\": \"${workspaceFolder}/*\"\n },\n```\nAnd we need to do that because I struggled to make vscode work with relative notations.\n\n2. Return { compiledSource, sources, sourcesContent, assets, assetsContent }\nIt is usefull because this object can be used to create a cache for the bundle.\nThis object is used by serveCompiledFile.\n\nOne thing to keep in mind:\nthe sourcemap.sourcesContent will contains a json file transformed to js\nwhile sourcesContent will contain the json file raw source because the corresponding\njson file etag is used to invalidate the cache\n*/\n\nimport { readFileSync } from \"fs\"\nimport { dirname, resolve } from \"path\"\nimport { pathnameIsInside, pathnameToRelativePath, hrefToScheme } from \"@jsenv/href\"\nimport {\n pathnameToOperatingSystemPath,\n operatingSystemPathToPathname,\n} from \"@jsenv/operating-system-path\"\nimport { writeOrUpdateSourceMappingURL } from \"./helpers/source-mapping-url.js\"\n\nexport const bundleToCompilationResult = (\n { rollupBundle, arrayOfAbstractHref },\n { projectPathname, entryRelativePath, sourcemapAssetPath, sourcemapPath = sourcemapAssetPath },\n) => {\n const sources = []\n const sourcesContent = []\n const assets = []\n const assetsContent = []\n\n const output = rollupBundle.output\n const main = output[0]\n const mainRollupSourcemap = main.map\n\n const mainDependencyMap = rollupSourcemapToDependencyMap({\n rollupSourcemap: mainRollupSourcemap,\n projectPathname,\n entryRelativePath,\n arrayOfAbstractHref,\n })\n\n const addDependencyMap = (dependencyMap) => {\n Object.keys(dependencyMap).forEach((relativePath) => {\n if (arrayOfAbstractHref.includes(`file://${projectPathname}${relativePath}`)) return\n if (sources.includes(relativePath)) return\n\n sources.push(relativePath)\n sourcesContent.push(dependencyMap[relativePath])\n })\n }\n\n // main file\n const mainSourceContent = writeOrUpdateSourceMappingURL(main.code, sourcemapPath)\n // main sourcemap\n assets.push(sourcemapAssetPath.slice(2))\n const mainSourcemap = {\n ...mainRollupSourcemap,\n ...dependencyMapToSourcemapSubset(mainDependencyMap),\n }\n assetsContent.push(JSON.stringify(mainSourcemap, null, \" \"))\n // main dependencies\n addDependencyMap(mainDependencyMap)\n\n output.slice(1).forEach((chunk) => {\n const chunkRollupSourcemap = chunk.map\n const chunkDependencyMap = rollupSourcemapToDependencyMap({\n rollupSourcemap: chunkRollupSourcemap,\n projectPathname,\n entryRelativePath,\n arrayOfAbstractHref,\n })\n\n // chunk file\n assets.push(chunk.fileName)\n const chunkSourceContent = writeOrUpdateSourceMappingURL(chunk.code, `./${chunk.fileName}.map`)\n assetsContent.push(chunkSourceContent)\n // chunk sourcemap\n assets.push(`${chunk.fileName}.map`)\n const chunkSourcemap = {\n ...chunkRollupSourcemap,\n ...dependencyMapToSourcemapSubset(chunkDependencyMap),\n }\n assetsContent.push(JSON.stringify(chunkSourcemap, null, \" \"))\n // chunk dependencies\n addDependencyMap(chunkDependencyMap)\n })\n\n return {\n contentType: \"application/javascript\",\n compiledSource: mainSourceContent,\n sources,\n sourcesContent,\n assets,\n assetsContent,\n }\n}\n\nconst dependencyMapToSourcemapSubset = (dependencyMap) => {\n const sources = Object.keys(dependencyMap)\n const sourcesContent = sources.map((source) => {\n // for sourcemap the source content of a json file is the js\n // transformation of that json\n if (source.endsWith(\".json\")) return `export default ${dependencyMap[source]}`\n return dependencyMap[source]\n })\n return {\n sources,\n sourcesContent,\n }\n}\n\nconst rollupSourcemapToDependencyMap = ({\n rollupSourcemap,\n projectPathname,\n entryRelativePath,\n arrayOfAbstractHref,\n}) => {\n const dependencyMap = {}\n\n rollupSourcemap.sources.forEach((source, index) => {\n if (hrefToScheme(source)) {\n // source is absolute\n return\n }\n\n // source is relative\n const sourcePath = resolve(\n dirname(pathnameToOperatingSystemPath(`${projectPathname}${entryRelativePath}`)),\n source,\n )\n const sourcePathname = operatingSystemPathToPathname(sourcePath)\n\n if (!pathnameIsInside(sourcePathname, projectPathname)) {\n throw createSourceOutsideProjectError({\n sourcePath,\n projectPathname,\n source,\n file: entryRelativePath,\n })\n }\n\n const sourceRelativePath = pathnameToRelativePath(sourcePathname, projectPathname)\n const isAbstract = arrayOfAbstractHref.includes(\n `file://${projectPathname}${sourceRelativePath}`,\n )\n\n let dependencyContent\n const sourcesContent = rollupSourcemap.sourcesContent || []\n if (index in sourcesContent) {\n // abstract ressource cannot be found on filesystem\n // so trust what we found in sourcesContent\n if (isAbstract) {\n dependencyContent = sourcesContent[index]\n }\n // .json file source content is not the one inside the file\n // because jsenv-rollup-plugin transforms it to\n // export default, so we must set back the\n // right file content\n else if (sourceRelativePath.endsWith(\".json\")) {\n dependencyContent = readSourceContent({\n projectPathname,\n sourceRelativePath,\n entryRelativePath,\n })\n } else {\n dependencyContent = sourcesContent[index]\n }\n } else {\n if (isAbstract) {\n throw createAbstractSourceMissingError({ sourceRelativePath, entryRelativePath })\n }\n dependencyContent = readSourceContent({\n projectPathname,\n sourceRelativePath,\n entryRelativePath,\n })\n }\n\n dependencyMap[sourceRelativePath] = dependencyContent\n })\n\n return dependencyMap\n}\n\nconst readSourceContent = ({ projectPathname, sourceRelativePath, entryRelativePath }) => {\n const sourcePath = pathnameToOperatingSystemPath(`${projectPathname}${sourceRelativePath}`)\n // this could be async but it's ok for now\n // making it async could be harder than it seems\n // because sourcesContent must be in sync with sources\n try {\n const buffer = readFileSync(sourcePath)\n return String(buffer)\n } catch (e) {\n if (e && e.code === \"ENOENT\") {\n throw createSourceNotFoundError({\n sourcePath,\n projectPathname,\n source: sourceRelativePath,\n file: entryRelativePath,\n })\n }\n throw e\n }\n}\n\nconst createAbstractSourceMissingError = ({ source, file }) =>\n new Error(`an abstract file source content is missing.\nsource: ${source}\nfile: ${file}`)\n\nconst createSourceNotFoundError = ({ sourcePath, projectPathname, source, file }) =>\n new Error(`a file source cannot be found.\nsource path: ${sourcePath}\nproject path: ${pathnameToOperatingSystemPath(projectPathname)}\nsource: ${source}\nfile: ${file}`)\n\nconst createSourceOutsideProjectError = ({ sourcePath, projectPathname, source, file }) =>\n new Error(`a file source is not inside project.\nsource path: ${sourcePath}\nproject path: ${pathnameToOperatingSystemPath(projectPathname)}\nsource: ${source}\nfile: ${file}`)\n"],"names":["obj","key","value","Object","defineProperty","enumerable","configurable","writable","nativeTypeOf","customTypeOf","Symbol","constructor","prototype","iterator","startsWithWindowsDriveLetter","string","firstChar","test","secondChar","replaceSlashesWithBackSlashes","replace","pathnameToOperatingSystemPath","pathname","Error","pathnameWithoutLeadingSlash","slice","isWindowsPath","path","replaceBackSlashesWithSlashes","operatingSystemPathToPathname","operatingSystemPath","pathnameToRelativePathname","otherPathname","length","babelCompatMap","chrome","edge","firefox","node","samsung","opera","electron","safari","ios","ie","android","phantom","hrefToScheme","href","colonIndex","indexOf","hrefToOrigin","scheme","secondProtocolSlashIndex","pathnameSlashIndex","hrefToPathname","ressourceToPathname","hrefToRessource","afterProtocol","ressource","searchSeparatorIndex","pathnameIsInside","startsWith","pathnameToDirname","slashLastIndex","lastIndexOf","pathnameToExtension","dotLastIndex","pathnameToRelativePath","target","i","arguments","source","ownKeys","forEach","getOwnPropertyDescriptors","defineProperties","getOwnPropertyDescriptor","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","push","apply","nodeRequire","require","filenameContainsBackSlashes","__filename","url","jsenvCorePath","resolve","selfPathname","selfPath","jsenvCorePathname","_require","list","babelHelperName","browserScoreMap","other","firstOperationMatching","array","start","predicate","TypeError","createArrayErrorMessage","createStartErrorMessage","createPredicateErrorMessage","Promise","reject","visit","index","input","returnValue","then","output","direct","body","result","e","f","args","promiseSequence","callbackArray","values","callback","fileMakeDirname","file","fileNormalized","normalizeSeparation","fileStartsWithSlash","folders","split","pop","map","_","folder","join","folderMake","mkdir","error","code","fileLastStat","stat","isDirectory","status","reason","lstat","copyFilePromisified","promisify","copyFile","_await","readFilePromisified","readFile","fileRead","buffer","toString","statPromisified","lstatPromisified","writeFilePromisified","writeFile","fileWrite","content","readdirPromisified","readdir","rimraf","BEST_ID","OTHERWISE_ID","buildExternalHelpers","getDependencies","polyfillCompatMap","arr","Array","isArray","arr2","iter","call","from","arrayWithoutHoles","iterableToArray","nonIterableSpread","valueToVersion","numberToVersion","stringToVersion","createValueErrorMessage","version","number","major","minor","patch","parts","Number","isNaN","versionCompare","versionA","versionB","semanticVersionA","semanticVersionB","majorDiff","minorDiff","patchDiff","versionIsBelow","versionSupposedBelow","versionSupposedAbove","findHighestVersion","reduce","highestVersion","computeIncompatibleNameArray","featureCompatMap","platformName","platformVersion","incompatibleNameArray","featureName","compatible","platformIsCompatibleWithFeature","featureCompat","platformCompatibleVersion","computePlatformCompatibleVersion","generatePlatformGroupArray","featureNameArray","featureNameArrayWithCompat","versionArray","String","concat","sort","platformGroupArray","groupWithSameIncompatibleFeatures","find","platformGroup","platformCompatMap","composePlatformCompatMap","secondPlatformCompatMap","objectComposeValue","normalizePlatformCompatMapVersions","secondVersion","platformCompatibility","objectMapValue","mapped","previous","composed","composeGroupArray","arrayOfGroupArray","groupArrayReducer","previousGroupArray","groupArray","reducedGroupArray","group","groupWithSameIncompatibleFeature","existingGroupCandidate","groupHaveSameIncompatibleFeatures","groupA","groupB","generateAllPlatformGroupArray","platformNames","platformCompatMapToScore","platformScoreMap","platformToScore","versionUsageMap","versionArrayAscending","closestVersion","reverse","generateGroupMap","babelPluginMap","defaultBabelCompatMap","polyfillConfigMap","defaulPolyfillCompatMap","groupCount","platformAlwaysInsidePlatformScoreMap","platformWillAlwaysBeKnown","groupMap","generateFeatureGroupMap","featureConfigMap","_typeof","groupWithoutFeature","featureCompatMapWithoutHole","allPlatformGroupArray","arrayWithoutValue","groupToScore","allPlatformGroupArraySortedByScore","a","b","addOtherwiseToBeSafe","lastGroupIndex","valueCandidate","LOG_LEVEL_OFF","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_TRACE","createLogger","logLevel","trace","info","warn","traceDisabled","infoDisabled","warnDisabled","errorDisabled","createUnexpectedLogLevelMessage","console","log","bufferToEtag","lockfile","nodeVersionScoreMap","assertImportMap","type","isWindowsDriveLetter","specifier","thirdChar","isAbsoluteSpecifier","resolveAbsoluteSpecifier","assertUrlLike","name","applyImportMap","importMap","importerHref","scopes","scopeKeyMatching","scopeKey","specifierIsPrefixOf","scopeValue","remappingFromScopeImports","applyImports","imports","remappingFromImports","importKeyArray","importKey","importValue","afterImportKey","specifierHref","composeTwoImportMaps","leftImportMap","rightImportMap","composeTwoImports","composeTwoScopes","leftImports","rightImports","leftScopes","rightScopes","hasOwnProperty","isSchemeRelativeSpecifier","resolveSchemeRelativeSpecifier","importer","isOriginRelativeSpecifier","resolveOriginRelativeSpecifier","importerOrigin","isPathnameRelativeSpecifier","resolvePathnameRelativeSpecifier","importerPathname","importerDirname","unresolvedPathname","importerFolders","resolvedPathname","resolveBareSpecifier","resolveSpecifier","createMissingImporterMessage","normalizeImportMap","normalizeImports","undefined","normalizeScopes","importsNormalized","importKeyNormalized","importValueNormalized","sortImports","scopesNormalized","scopeKeyNormalized","scopeValueNormalized","sortScopes","sortedImports","compareLengthOrLocaleCompare","sortedScopes","scopeName","localeCompare","resolveImport","defaultExtension","specifierResolved","specifierRemapped","extension","importerExtension","template","t","types","declare","hoistVariables","default","buildTemplate","buildExportAll","constructExportCall","exportIdent","exportNames","exportValues","exportStarTarget","statements","expressionStatement","callExpression","stringLiteral","objectProperties","exportName","exportValue","objectProperty","identifier","objectExpression","exportObj","scope","generateUid","variableDeclaration","variableDeclarator","KEY","generateUidIdentifier","EXPORT_OBJ","TARGET","assignmentExpression","memberExpression","TYPE_IMPORT","api","options","assertVersion","systemGlobal","IGNORE_REASSIGNMENT_SYMBOL","reassignmentVisitor","arg","get","isAssignmentExpression","isObjectPattern","isArrayPattern","exprs","getBindingIdentifiers","getBinding","exportedNames","exports","exportedName","buildCall","expression","replaceWith","sequenceExpression","isIdentifier","isPostUpdateExpression","isUpdateExpression","prefix","binaryExpression","operator","unaryExpression","cloneNode","argument","numericLiteral","visitor","CallExpression","state","callee","contextIdent","MetaProperty","meta","property","ReferencedIdentifier","hasBinding","Program","enter","exit","undefinedIdent","buildUndefinedNode","exportMap","create","modules","beforeBody","setters","sources","variableIds","removedPaths","addExportName","val","pushModule","specifiers","module","m","buildExportCall","isFunctionDeclaration","isClassDeclaration","id","toExpression","isImportDeclaration","removeBinding","remove","isExportAllDeclaration","isExportDefaultDeclaration","declar","isExportNamedDeclaration","isFunction","isClass","nodes","binding","local","exported","replaceWithMultiple","setterBody","isImportNamespaceSpecifier","isImportDefaultSpecifier","importSpecifier","isImportSpecifier","imported","hasExportStar","isExportSpecifier","functionExpression","blockStatement","moduleName","getModuleName","hasInit","unshift","traverse","SYSTEM_REGISTER","BEFORE_BODY","MODULE_NAME","SETTERS","arrayExpression","SOURCES","EXECUTE","topLevelAwait","programUsesTopLevelAwait","EXPORT_IDENTIFIER","CONTEXT_IDENTIFIER","hasTopLevelAwait","AwaitExpression","parent","getFunctionParent","Convert","addSideEffect","addDefault","transformAsync","transformFromAstAsync","syntaxDynamicImport","syntaxImportMeta","arrayWithout","item","arrayWithoutItem","createCancelError","cancelError","isCancelError","createCancellationSource","requested","registrationArray","cancel","registrationArrayCopy","registration","register","existingRegistration","unregister","throwIfRequested","token","cancellationRequested","createCancellationToken","excluded","sourceKeys","objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","createOperation","cancellationToken","rest","ensureExactParameters","promise","cancelPromise","cancelRegistration","operationPromise","race","extraParameters","extraParamNames","catchAsyncFunctionCancellation","asyncFunction","catch","createProcessInterruptionCancellationToken","SIGINTCancelSource","process","on","jsenvBundlingProjectPath","jsenvBundlingProjectPathname","jsenvBundlingRelativePathInception","jsenvBundlingRelativePath","projectPathname","jsenvPathname","relativePath","assertFolder","pathToFilesystemEntry","filesystemEntry","assertFile","stats","statsToEntry","isFile","sortImportMap","orderedImportMap","sortImportMapImports","sortImportMapScopes","sortScopedImports","scopedImports","compareScopedImport","sortedScopedImports","readPackageData","packageString","packageData","JSON","parse","recover","resolveNodeModule","rootPathname","packagePathname","dependencyName","dependencyVersionPattern","dependencyType","onWarn","packageFolderPathname","packageFolderRelativePath","nodeModuleCandidateArray","getCandidateArrayFromPackageFolder","nodeModuleCandidate","createDependencyPackageParsingError","parsingError","Boolean","message","createDendencyNotFoundMessage","data","candidateArray","relativeFolderNameArray","shift","SyntaxError","resolvePackageMain","resolveMainFile","main","extensionCandidateArray","packageDirname","extname","fileWithoutExtensionPathname","extensionCandidate","pathLeadsToAFile","extensionLeadingToFile","createMainFileNotFoundMessage","mainPathname","statObject","generateImportMapForPackage","projectPath","rootProjectPath","includeDevDependencies","projectPackagePathname","rootProjectPathname","rootImporterName","basename","rootPackagePathname","seen","markPackageAsSeen","importerPackagePathname","packageIsSeen","includes","packageName","visitPackage","visitDependencies","packagePathInfo","computePackagePathInfo","visitPackageMain","visitPackageImports","visitPackageExports","packageIsRoot","packageIsProject","importerPackageIsRoot","importerName","actualRelativePath","expectedRelativePath","to","addImportMapping","addScopedImportMapping","packageImports","createUnexpectedPackageImportsWarning","resolvedKey","resolvePathInPackage","resolvedValue","packageExports","createUnexpectedPackageExportsWarning","dependencyMap","dependencies","versionPattern","peerDependencies","isProjectPackage","devDependencies","all","dependency","visitDependency","findDependency","dependencyData","dependencyPackagePathname","dependencyPackageData","importerPackageIsProject","actualPathname","expectedPathname","createInvalidPackageRelativePathWarning","dependenciesCache","dependencyPromise","projectPackageData","addNamed","createImportMetaUrlNamedImportBabelPlugin","importMetaFacadePath","programPath","metaPropertyMap","MemberExpression","propertyName","importMetaPropertyId","generateBabelPluginMapOption","format","generateBabelPluginMapSubset","generateBabelPluginMapForBundle","babelPluginMapSubset","babelPluginName","bundleBabelPluginMap","fetch","_invoke","AbortController","globalAgent","rejectUnauthorized","fetchUsingHttp","signal","cancellationTokenToAbortSignal","response","normalizeResponse","text","statusText","headers","responseToHeaderMap","abortController","abort","headerMap","writeSourceMappingURL","location","updateSourceMappingURL","sourceMappingUrlRegExp","lastSourceMappingUrl","matchSourceMappingUrl","exec","before","after","mappedAfter","match","firstGroup","readSourceMappingURL","sourceMappingURL","parseSourceMappingURL","base64Prefix","mapBase64Source","sourcemapString","Buffer","sourcemapURL","writeOrUpdateSourceMappingURL","_empty","readProjectImportMap","babelHelperMap","generateBabelHelper","cleanCompileCacheFolderIfObsolete","getOrGenerateCompiledFile","transformJs","transformResultToCompilationResult","compilationResultToTransformResult","findAsyncPluginNameInBabelPluginMap","_awaitIgnored","minifyCode","minify","createJsenvRollupPlugin","bundleIntoRelativePath","importDefaultExtension","importMapRelativePath","importMapForBundle","importAbstractMap","importFallbackMap","cache","cacheRelativePath","convertMap","detectAndTransformIfNeededAsyncInsertedByRollup","entryPointMap","logger","fakeOrigin","arrayOfHrefToSkipTransform","arrayOfAbstractHref","getArrayOfAbstractHref","importMapAbstractPath","bundleConstantAbstractPath","bundleConstantsHref","importMapHref","chunkId","stringify","importMapForBundling","babelHelperPath","jsenvProjectPathname","importMapForProject","current","compileCacheFolderRelativePath","cacheMeta","cleanCallback","cacheFolderPath","jsenvRollupPlugin","resolveId","createImporterOutsideProjectError","resolvedHref","createMustBeInsideProjectMessage","filePathame","filePath","statSync","createFileNotFoundForImportMessage","createUnexpectedStatsForImportMessage","load","rollupId","rollupIdToHref","generateSourceForImport","generateAbstractSourceForImport","fetchHref","responseStatus","responseStatusIsOk","createUnexpectedResponseStatusMessage","endsWith","sourcemapParsingResult","resolvedSourceMappingURL","sourcemapResponse","sourcemapResponseStatus","transform","sourceHref","transformModuleIntoSystemFormat","sourcePathname","sourceRelativePath","compile","transformResult","compileResult","renderChunk","minifyOptions","toplevel","sourceMap","writeBundle","bundle","transformAsyncInsertedByRollup","bundleFilename","markHrefAsAbstract","generateSource","skipTransform","bundleFolderPathname","asyncPluginName","bundleInfo","transformGenerator","rollup","generateBundleUsingRollup","rollupParseOptions","rollupGenerateOptions","writeOnFileSystem","experimentalTopLevelAwait","onwarn","warning","rollupBundle","write","preferConst","generate","formatToRollupFormat","bundleWithoutBalancing","nativeModulePredicate","formatOutputOptions","dir","plugins","external","sourcemap","sourcemapExcludeSources","bundleWithBalancing","compileId","sourceMapExcludeSources","bundleBalancer","balancerDataAbstractPath","entryPointName","balancerDataHref","otherwise","removeFolder","foldername","jsenvBabelPluginMap","DEFAULT_IMPORT_MAP_RELATIVE_PATH","DEFAULT_ENTRY_POINT_MAP","NATIVE_NODE_MODULE_SPECIFIER_ARRAY","DEFAULT_NATIVE_MODULE_PREDICATE","DEFAULT_BABEL_PLUGIN_MAP","DEFAULT_PLATFORM_SCORE_MAP","generateBundle","cleanBundleInto","throwUnhandled","compileGroupCount","balancerTemplateRelativePath","defaultBalancerTemplateHref","createFormatIncompatibleWithBalancingError","balancerTemplatePathname","balancerTemplateHref","generateEntryPointsFolders","generateEntryPointsBalancerFiles","setTimeout","DEFAULT_BUNDLE_INTO_RELATIVE_PATH","generateGlobalBundle","globalName","generateCommonJsBundle","generateSystemJsBundle","bundleToCompilationResult","entryRelativePath","sourcemapAssetPath","sourcemapPath","sourcesContent","assets","assetsContent","mainRollupSourcemap","mainDependencyMap","rollupSourcemapToDependencyMap","rollupSourcemap","addDependencyMap","mainSourceContent","mainSourcemap","dependencyMapToSourcemapSubset","chunk","chunkRollupSourcemap","chunkDependencyMap","fileName","chunkSourceContent","chunkSourcemap","contentType","compiledSource","sourcePath","dirname","createSourceOutsideProjectError","isAbstract","dependencyContent","readSourceContent","createAbstractSourceMissingError","readFileSync","createSourceNotFoundError"],"mappings":"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"}
\No newline at end of file