@jsenv/core 27.0.0-alpha.3 → 27.0.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/package.json +2 -2
  2. package/src/build/build.js +47 -16
  3. package/src/build/build_urls_generator.js +16 -7
  4. package/src/omega/core_plugins/babel/{babel_helper → helpers}/babel_plugin_babel_helpers_as_jsenv_imports.js +1 -2
  5. package/src/omega/core_plugins/babel/helpers/babel_plugin_structure.js +68 -76
  6. package/src/omega/core_plugins/babel/jsenv_plugin_babel.js +1 -1
  7. package/src/omega/url_graph/url_graph_load.js +1 -0
  8. package/src/omega/core_plugins/babel/babel_helper/babel_helper_directory.js +0 -29
  9. package/src/omega/core_plugins/babel/babel_helper/client/.eslintrc.cjs +0 -24
  10. package/src/omega/core_plugins/babel/babel_helper/client/AsyncGenerator/AsyncGenerator.js +0 -81
  11. package/src/omega/core_plugins/babel/babel_helper/client/AwaitValue/AwaitValue.js +0 -3
  12. package/src/omega/core_plugins/babel/babel_helper/client/applyDecoratorDescriptor/applyDecoratorDescriptor.js +0 -33
  13. package/src/omega/core_plugins/babel/babel_helper/client/arrayLikeToArray/arrayLikeToArray.js +0 -7
  14. package/src/omega/core_plugins/babel/babel_helper/client/arrayWithHoles/arrayWithHoles.js +0 -4
  15. package/src/omega/core_plugins/babel/babel_helper/client/arrayWithoutHoles/arrayWithoutHoles.js +0 -6
  16. package/src/omega/core_plugins/babel/babel_helper/client/assertThisInitialized/assertThisInitialized.js +0 -7
  17. package/src/omega/core_plugins/babel/babel_helper/client/asyncGeneratorDelegate/asyncGeneratorDelegate.js +0 -40
  18. package/src/omega/core_plugins/babel/babel_helper/client/asyncIterator/asyncIterator.js +0 -65
  19. package/src/omega/core_plugins/babel/babel_helper/client/asyncToGenerator/asyncToGenerator.js +0 -34
  20. package/src/omega/core_plugins/babel/babel_helper/client/awaitAsyncGenerator/awaitAsyncGenerator.js +0 -5
  21. package/src/omega/core_plugins/babel/babel_helper/client/classApplyDescriptorDestructureSet/classApplyDescriptorDestructureSet.js +0 -20
  22. package/src/omega/core_plugins/babel/babel_helper/client/classApplyDescriptorGet/classApplyDescriptorGet.js +0 -6
  23. package/src/omega/core_plugins/babel/babel_helper/client/classApplyDescriptorSet/classApplyDescriptorSet.js +0 -13
  24. package/src/omega/core_plugins/babel/babel_helper/client/classCallCheck/classCallCheck.js +0 -5
  25. package/src/omega/core_plugins/babel/babel_helper/client/classCheckPrivateStaticAccess/classCheckPrivateStaticAccess.js +0 -5
  26. package/src/omega/core_plugins/babel/babel_helper/client/classCheckPrivateStaticFieldDescriptor/classCheckPrivateStaticFieldDescriptor.js +0 -6
  27. package/src/omega/core_plugins/babel/babel_helper/client/classExtractFieldDescriptor/classExtractFieldDescriptor.js +0 -7
  28. package/src/omega/core_plugins/babel/babel_helper/client/classNameTDZError/classNameTDZError.js +0 -4
  29. package/src/omega/core_plugins/babel/babel_helper/client/classPrivateFieldDestructureSet/classPrivateFieldDestructureSet.js +0 -7
  30. package/src/omega/core_plugins/babel/babel_helper/client/classPrivateFieldGet/classPrivateFieldGet.js +0 -7
  31. package/src/omega/core_plugins/babel/babel_helper/client/classPrivateFieldLooseBase/classPrivateFieldLooseBase.js +0 -6
  32. package/src/omega/core_plugins/babel/babel_helper/client/classPrivateFieldLooseKey/classPrivateFieldLooseKey.js +0 -5
  33. package/src/omega/core_plugins/babel/babel_helper/client/classPrivateFieldSet/classPrivateFieldSet.js +0 -8
  34. package/src/omega/core_plugins/babel/babel_helper/client/classPrivateMethodGet/classPrivateMethodGet.js +0 -6
  35. package/src/omega/core_plugins/babel/babel_helper/client/classPrivateMethodSet/classPrivateMethodSet.js +0 -3
  36. package/src/omega/core_plugins/babel/babel_helper/client/classStaticPrivateFieldSpecGet/classStaticPrivateFieldSpecGet.js +0 -9
  37. package/src/omega/core_plugins/babel/babel_helper/client/classStaticPrivateFieldSpecSet/classStaticPrivateFieldSpecSet.js +0 -15
  38. package/src/omega/core_plugins/babel/babel_helper/client/classStaticPrivateMethodGet/classStaticPrivateMethodGet.js +0 -6
  39. package/src/omega/core_plugins/babel/babel_helper/client/classStaticPrivateMethodSet/classStaticPrivateMethodSet.js +0 -3
  40. package/src/omega/core_plugins/babel/babel_helper/client/construct/construct.js +0 -16
  41. package/src/omega/core_plugins/babel/babel_helper/client/createClass/createClass.js +0 -15
  42. package/src/omega/core_plugins/babel/babel_helper/client/createForOfIteratorHelper/createForOfIteratorHelper.js +0 -60
  43. package/src/omega/core_plugins/babel/babel_helper/client/createForOfIteratorHelperLoose/createForOfIteratorHelperLoose.js +0 -23
  44. package/src/omega/core_plugins/babel/babel_helper/client/createRawReactElement/createRawReactElement.js +0 -50
  45. package/src/omega/core_plugins/babel/babel_helper/client/createSuper/createSuper.js +0 -22
  46. package/src/omega/core_plugins/babel/babel_helper/client/decorate/decorate.js +0 -403
  47. package/src/omega/core_plugins/babel/babel_helper/client/defaults/defaults.js +0 -11
  48. package/src/omega/core_plugins/babel/babel_helper/client/defineEnumerableProperties/defineEnumerableProperties.js +0 -23
  49. package/src/omega/core_plugins/babel/babel_helper/client/defineProperty/defineProperty.js +0 -18
  50. package/src/omega/core_plugins/babel/babel_helper/client/extends/extends.js +0 -14
  51. package/src/omega/core_plugins/babel/babel_helper/client/get/get.js +0 -19
  52. package/src/omega/core_plugins/babel/babel_helper/client/getPrototypeOf/getPrototypeOf.js +0 -4
  53. package/src/omega/core_plugins/babel/babel_helper/client/inherits/inherits.js +0 -19
  54. package/src/omega/core_plugins/babel/babel_helper/client/inheritsLoose/inheritsLoose.js +0 -7
  55. package/src/omega/core_plugins/babel/babel_helper/client/initializerDefineProperty/initializerDefineProperty.js +0 -10
  56. package/src/omega/core_plugins/babel/babel_helper/client/initializerWarningHelper/initializerWarningHelper.js +0 -6
  57. package/src/omega/core_plugins/babel/babel_helper/client/instanceof/instanceof.js +0 -6
  58. package/src/omega/core_plugins/babel/babel_helper/client/interopRequireDefault/interopRequireDefault.js +0 -3
  59. package/src/omega/core_plugins/babel/babel_helper/client/interopRequireWildcard/interopRequireWildcard.js +0 -37
  60. package/src/omega/core_plugins/babel/babel_helper/client/isNativeFunction/isNativeFunction.js +0 -4
  61. package/src/omega/core_plugins/babel/babel_helper/client/isNativeReflectConstruct/isNativeReflectConstruct.js +0 -21
  62. package/src/omega/core_plugins/babel/babel_helper/client/iterableToArray/iterableToArray.js +0 -7
  63. package/src/omega/core_plugins/babel/babel_helper/client/iterableToArrayLimit/iterableToArrayLimit.js +0 -36
  64. package/src/omega/core_plugins/babel/babel_helper/client/iterableToArrayLimitLoose/iterableToArrayLimitLoose.js +0 -10
  65. package/src/omega/core_plugins/babel/babel_helper/client/jsx/jsx.js +0 -50
  66. package/src/omega/core_plugins/babel/babel_helper/client/maybeArrayLike/maybeArrayLike.js +0 -10
  67. package/src/omega/core_plugins/babel/babel_helper/client/newArrowCheck/newArrowCheck.js +0 -5
  68. package/src/omega/core_plugins/babel/babel_helper/client/nonIterableRest/nonIterableRest.js +0 -5
  69. package/src/omega/core_plugins/babel/babel_helper/client/nonIterableSpread/nonIterableSpread.js +0 -5
  70. package/src/omega/core_plugins/babel/babel_helper/client/objectDestructuringEmpty/objectDestructuringEmpty.js +0 -3
  71. package/src/omega/core_plugins/babel/babel_helper/client/objectSpread/objectSpread.js +0 -23
  72. package/src/omega/core_plugins/babel/babel_helper/client/objectSpread2/objectSpread2.js +0 -41
  73. package/src/omega/core_plugins/babel/babel_helper/client/objectWithoutProperties/objectWithoutProperties.js +0 -19
  74. package/src/omega/core_plugins/babel/babel_helper/client/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js +0 -13
  75. package/src/omega/core_plugins/babel/babel_helper/client/possibleConstructorReturn/possibleConstructorReturn.js +0 -10
  76. package/src/omega/core_plugins/babel/babel_helper/client/readOnlyError/readOnlyError.js +0 -4
  77. package/src/omega/core_plugins/babel/babel_helper/client/readme.md +0 -8
  78. package/src/omega/core_plugins/babel/babel_helper/client/set/set.js +0 -44
  79. package/src/omega/core_plugins/babel/babel_helper/client/setPrototypeOf/setPrototypeOf.js +0 -6
  80. package/src/omega/core_plugins/babel/babel_helper/client/skipFirstGeneratorNext/skipFirstGeneratorNext.js +0 -8
  81. package/src/omega/core_plugins/babel/babel_helper/client/slicedToArray/slicedToArray.js +0 -10
  82. package/src/omega/core_plugins/babel/babel_helper/client/slicedToArrayLoose/slicedToArrayLoose.js +0 -13
  83. package/src/omega/core_plugins/babel/babel_helper/client/superPropBase/superPropBase.js +0 -10
  84. package/src/omega/core_plugins/babel/babel_helper/client/taggedTemplateLiteral/taggedTemplateLiteral.js +0 -10
  85. package/src/omega/core_plugins/babel/babel_helper/client/taggedTemplateLiteralLoose/taggedTemplateLiteralLoose.js +0 -7
  86. package/src/omega/core_plugins/babel/babel_helper/client/tdz/tdz.js +0 -4
  87. package/src/omega/core_plugins/babel/babel_helper/client/temporalRef/temporalRef.js +0 -6
  88. package/src/omega/core_plugins/babel/babel_helper/client/temporalUndefined/temporalUndefined.js +0 -3
  89. package/src/omega/core_plugins/babel/babel_helper/client/toArray/toArray.js +0 -10
  90. package/src/omega/core_plugins/babel/babel_helper/client/toConsumableArray/toConsumableArray.js +0 -10
  91. package/src/omega/core_plugins/babel/babel_helper/client/toPrimitive/toPrimitive.js +0 -10
  92. package/src/omega/core_plugins/babel/babel_helper/client/toPropertyKey/toPropertyKey.js +0 -6
  93. package/src/omega/core_plugins/babel/babel_helper/client/typeof/typeof.js +0 -14
  94. package/src/omega/core_plugins/babel/babel_helper/client/unsupportedIterableToArray/unsupportedIterableToArray.js +0 -12
  95. package/src/omega/core_plugins/babel/babel_helper/client/wrapAsyncGenerator/wrapAsyncGenerator.js +0 -8
  96. package/src/omega/core_plugins/babel/babel_helper/client/wrapNativeSuper/wrapNativeSuper.js +0 -30
  97. package/src/omega/core_plugins/babel/babel_helper/client/wrapRegExp/wrapRegExp.js +0 -63
  98. package/src/omega/core_plugins/babel/babel_helper/client/writeOnlyError/writeOnlyError.js +0 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsenv/core",
3
- "version": "27.0.0-alpha.3",
3
+ "version": "27.0.0-alpha.6",
4
4
  "description": "Tool to develop, test and build js projects",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -53,7 +53,7 @@
53
53
  "@c88/v8-coverage": "0.1.1",
54
54
  "@financial-times/polyfill-useragent-normaliser": "2.0.1",
55
55
  "@jsenv/abort": "4.1.2",
56
- "@jsenv/babel-plugins": "1.0.0",
56
+ "@jsenv/babel-plugins": "1.0.2",
57
57
  "@jsenv/filesystem": "3.1.0",
58
58
  "@jsenv/importmap": "1.2.0",
59
59
  "@jsenv/integrity": "0.0.1",
@@ -70,6 +70,8 @@ export const build = async ({
70
70
  writeOnFileSystem = true,
71
71
  buildDirectoryClean = true,
72
72
  baseUrl = "/",
73
+ assetManifest = true,
74
+ assetManifestFileRelativeUrl = "asset-manifest.json",
73
75
  }) => {
74
76
  const logger = createLogger({ logLevel })
75
77
  rootDirectoryUrl = assertAndNormalizeDirectoryUrl(rootDirectoryUrl)
@@ -84,7 +86,7 @@ export const build = async ({
84
86
  const entryPointKeys = Object.keys(entryPoints)
85
87
  if (entryPointKeys.length === 1) {
86
88
  logger.info(`
87
- build ${entryPointKeys[0]}`)
89
+ build "${entryPointKeys[0]}"`)
88
90
  } else {
89
91
  logger.info(`
90
92
  build ${entryPointKeys.length} entry points`)
@@ -119,22 +121,23 @@ build ${entryPointKeys.length} entry points`)
119
121
  scenario: "build",
120
122
  sourcemaps,
121
123
  })
122
- const loadEntryFiles = (cookEntryFile) => {
123
- Object.keys(entryPoints).forEach((key) => {
124
- cookEntryFile({
125
- trace: `"${key}" in entryPoints parameter`,
126
- type: "entry_point",
127
- specifier: key,
128
- })
129
- })
130
- }
124
+ const entryUrls = []
131
125
  try {
132
126
  await loadUrlGraph({
133
127
  urlGraph: rawGraph,
134
128
  kitchen: rawGraphKitchen,
135
129
  outDirectoryUrl: new URL(`.jsenv/build/`, rootDirectoryUrl),
136
130
  runtimeSupport,
137
- startLoading: loadEntryFiles,
131
+ startLoading: (cookEntryFile) => {
132
+ Object.keys(entryPoints).forEach((key) => {
133
+ const [, entryUrlInfo] = cookEntryFile({
134
+ trace: `"${key}" in entryPoints parameter`,
135
+ type: "entry_point",
136
+ specifier: key,
137
+ })
138
+ entryUrls.push(entryUrlInfo.url)
139
+ })
140
+ },
138
141
  })
139
142
  } catch (e) {
140
143
  prebuildTask.fail()
@@ -447,13 +450,23 @@ ${Object.keys(rawGraph.urlInfos).join("\n")}`,
447
450
  sourcemaps,
448
451
  })
449
452
  const buildTask = createTaskLog(logger, "build")
453
+ const postBuildEntryUrls = []
450
454
  try {
451
455
  await loadUrlGraph({
452
456
  urlGraph: finalGraph,
453
457
  kitchen: finalGraphKitchen,
454
458
  outDirectoryUrl: new URL(".jsenv/postbuild/", rootDirectoryUrl),
455
459
  runtimeSupport,
456
- startLoading: loadEntryFiles,
460
+ startLoading: (cookEntryFile) => {
461
+ entryUrls.forEach((entryUrl) => {
462
+ const [, postBuildEntryUrlInfo] = cookEntryFile({
463
+ trace: `entryPoint`,
464
+ type: "entry_point",
465
+ specifier: entryUrl,
466
+ })
467
+ postBuildEntryUrls.push(postBuildEntryUrlInfo.url)
468
+ })
469
+ },
457
470
  })
458
471
  } catch (e) {
459
472
  buildTask.fail()
@@ -540,12 +553,12 @@ ${Object.keys(finalGraph.urlInfos).join("\n")}`,
540
553
  {
541
554
  name: "jsenv:versioning",
542
555
  appliesDuring: { build: true },
543
- resolve: ({ parentUrl, specifier }) => {
544
- const buildUrl = buildUrls[specifier]
556
+ resolve: (reference) => {
557
+ const buildUrl = buildUrls[reference.specifier]
545
558
  if (buildUrl) {
546
559
  return buildUrl
547
560
  }
548
- const url = new URL(specifier, parentUrl).href
561
+ const url = new URL(reference.specifier, reference.parentUrl).href
549
562
  return url
550
563
  },
551
564
  formatReferencedUrl: (reference) => {
@@ -616,7 +629,15 @@ ${Object.keys(finalGraph.urlInfos).join("\n")}`,
616
629
  urlGraph: finalGraph,
617
630
  kitchen: versioningKitchen,
618
631
  runtimeSupport,
619
- startLoading: loadEntryFiles,
632
+ startLoading: (cookEntryFile) => {
633
+ postBuildEntryUrls.forEach((postBuildEntryUrl) => {
634
+ cookEntryFile({
635
+ trace: `entryPoint`,
636
+ type: "entry_point",
637
+ specifier: postBuildEntryUrl,
638
+ })
639
+ })
640
+ },
620
641
  })
621
642
  if (usedVersionMappings.length) {
622
643
  const versionMappingsNeeded = {}
@@ -689,6 +710,16 @@ ${Object.keys(finalGraph.urlInfos).join("\n")}`,
689
710
  )
690
711
  }),
691
712
  )
713
+ if (
714
+ versioning !== "none" &&
715
+ assetManifest &&
716
+ Object.keys(buildManifest).length
717
+ ) {
718
+ await writeFile(
719
+ new URL(assetManifestFileRelativeUrl, buildDirectoryUrl),
720
+ JSON.stringify(buildManifest, null, " "),
721
+ )
722
+ }
692
723
  }
693
724
  logger.info(createUrlGraphSummary(finalGraph, { title: "build files" }))
694
725
  return {
@@ -6,6 +6,12 @@ export const createBuilUrlsGenerator = ({ buildDirectoryUrl }) => {
6
6
  const cache = {}
7
7
  const generate = memoizeByUrl((url, urlInfo, parentUrlInfo) => {
8
8
  const directoryPath = determineDirectoryPath(urlInfo, parentUrlInfo)
9
+ let names = cache[directoryPath]
10
+ if (!names) {
11
+ names = []
12
+ cache[directoryPath] = names
13
+ }
14
+
9
15
  let name = urlToFilename(url)
10
16
  const { searchParams } = new URL(url)
11
17
  if (
@@ -15,12 +21,7 @@ export const createBuilUrlsGenerator = ({ buildDirectoryUrl }) => {
15
21
  ) {
16
22
  name = `${name}.js`
17
23
  }
18
- let names = cache[directoryPath]
19
- if (!names) {
20
- names = []
21
- cache[directoryPath] = names
22
- }
23
-
24
+ const [basename, extension] = splitFileExtension(name)
24
25
  let nameCandidate = name
25
26
  let integer = 1
26
27
  // eslint-disable-next-line no-constant-condition
@@ -30,7 +31,7 @@ export const createBuilUrlsGenerator = ({ buildDirectoryUrl }) => {
30
31
  break
31
32
  }
32
33
  integer++
33
- nameCandidate = `${name}${integer}`
34
+ nameCandidate = `${basename}${integer}${extension}`
34
35
  }
35
36
  return `${buildDirectoryUrl}${directoryPath}${nameCandidate}`
36
37
  })
@@ -40,6 +41,14 @@ export const createBuilUrlsGenerator = ({ buildDirectoryUrl }) => {
40
41
  }
41
42
  }
42
43
 
44
+ const splitFileExtension = (filename) => {
45
+ const dotLastIndex = filename.lastIndexOf(".")
46
+ if (dotLastIndex === -1) {
47
+ return [filename, ""]
48
+ }
49
+ return [filename.slice(0, dotLastIndex), filename.slice(dotLastIndex)]
50
+ }
51
+
43
52
  const determineDirectoryPath = (urlInfo, parentUrlInfo) => {
44
53
  if (urlInfo.isInline) {
45
54
  const parentDirectoryPath = determineDirectoryPath(parentUrlInfo)
@@ -1,11 +1,10 @@
1
1
  import { pathToFileURL } from "node:url"
2
2
 
3
3
  import { injectImport } from "@jsenv/utils/js_ast/babel_utils.js"
4
-
5
4
  import {
6
5
  getBabelHelperFileUrl,
7
6
  babelHelperNameFromUrl,
8
- } from "./babel_helper_directory.js"
7
+ } from "@jsenv/babel-plugins/main.js"
9
8
 
10
9
  // named import approach found here:
11
10
  // https://github.com/rollup/rollup-plugin-babel/blob/18e4232a450f320f44c651aa8c495f21c74d59ac/src/helperPlugin.js#L1
@@ -1,10 +1,6 @@
1
- import { createRequire } from "node:module"
2
-
3
- import { getBabelHelperFileUrl } from "../babel_helper/babel_helper_directory.js"
1
+ import { getBabelHelperFileUrl, requireBabelPlugin } from "@jsenv/babel-plugins"
4
2
  import { babelPluginCompatMap } from "./babel_plugins_compatibility.js"
5
3
 
6
- const require = createRequire(import.meta.url)
7
-
8
4
  export const getBaseBabelPluginStructure = ({
9
5
  url,
10
6
  isSupportedOnRuntime,
@@ -22,29 +18,27 @@ export const getBaseBabelPluginStructure = ({
22
18
 
23
19
  const babelPluginStructure = {}
24
20
  if (isBabelPluginNeeded("proposal-numeric-separator")) {
25
- babelPluginStructure[
26
- "proposal-numeric-separator"
27
- ] = require("@babel/plugin-proposal-numeric-separator")
21
+ babelPluginStructure["proposal-numeric-separator"] = requireBabelPlugin(
22
+ "@babel/plugin-proposal-numeric-separator",
23
+ )
28
24
  }
29
25
  if (isBabelPluginNeeded("proposal-json-strings")) {
30
- babelPluginStructure[
31
- "proposal-json-strings"
32
- ] = require("@babel/plugin-proposal-json-strings")
26
+ babelPluginStructure["proposal-json-strings"] = requireBabelPlugin(
27
+ "@babel/plugin-proposal-json-strings",
28
+ )
33
29
  }
34
30
  if (isBabelPluginNeeded("proposal-object-rest-spread")) {
35
- babelPluginStructure[
36
- "proposal-object-rest-spread"
37
- ] = require("@babel/plugin-proposal-object-rest-spread")
31
+ babelPluginStructure["proposal-object-rest-spread"] = requireBabelPlugin(
32
+ "@babel/plugin-proposal-object-rest-spread",
33
+ )
38
34
  }
39
35
  if (isBabelPluginNeeded("proposal-optional-catch-binding")) {
40
- babelPluginStructure[
41
- "proposal-optional-catch-binding"
42
- ] = require("@babel/plugin-proposal-optional-catch-binding")
36
+ babelPluginStructure["proposal-optional-catch-binding"] =
37
+ requireBabelPlugin("@babel/plugin-proposal-optional-catch-binding")
43
38
  }
44
39
  if (isBabelPluginNeeded("proposal-unicode-property-regex")) {
45
- babelPluginStructure[
46
- "proposal-unicode-property-regex"
47
- ] = require("@babel/plugin-proposal-unicode-property-regex")
40
+ babelPluginStructure["proposal-unicode-property-regex"] =
41
+ requireBabelPlugin("@babel/plugin-proposal-unicode-property-regex")
48
42
  }
49
43
  if (
50
44
  isJsModule &&
@@ -52,94 +46,92 @@ export const getBaseBabelPluginStructure = ({
52
46
  !isSupportedOnRuntime("top_level_await")
53
47
  ) {
54
48
  babelPluginStructure["transform-async-to-promises"] = [
55
- require("babel-plugin-transform-async-to-promises"),
49
+ requireBabelPlugin("babel-plugin-transform-async-to-promises"),
56
50
  {
57
51
  topLevelAwait,
58
52
  },
59
53
  ]
60
54
  } else if (isBabelPluginNeeded("transform-async-to-promises")) {
61
- babelPluginStructure[
62
- "transform-async-to-promises"
63
- ] = require("babel-plugin-transform-async-to-promises")
55
+ babelPluginStructure["transform-async-to-promises"] = requireBabelPlugin(
56
+ "babel-plugin-transform-async-to-promises",
57
+ )
64
58
  }
65
59
  if (isBabelPluginNeeded("transform-arrow-functions")) {
66
- babelPluginStructure[
67
- "transform-arrow-functions"
68
- ] = require("@babel/plugin-transform-arrow-functions")
60
+ babelPluginStructure["transform-arrow-functions"] = requireBabelPlugin(
61
+ "@babel/plugin-transform-arrow-functions",
62
+ )
69
63
  }
70
64
  if (isBabelPluginNeeded("transform-block-scoped-functions")) {
71
- babelPluginStructure[
72
- "transform-block-scoped-functions"
73
- ] = require("@babel/plugin-transform-block-scoped-functions")
65
+ babelPluginStructure["transform-block-scoped-functions"] =
66
+ requireBabelPlugin("@babel/plugin-transform-block-scoped-functions")
74
67
  }
75
68
  if (isBabelPluginNeeded("transform-block-scoping")) {
76
- babelPluginStructure[
77
- "transform-block-scoping"
78
- ] = require("@babel/plugin-transform-block-scoping")
69
+ babelPluginStructure["transform-block-scoping"] = requireBabelPlugin(
70
+ "@babel/plugin-transform-block-scoping",
71
+ )
79
72
  }
80
73
  if (isBabelPluginNeeded("transform-classes")) {
81
- babelPluginStructure[
82
- "transform-classes"
83
- ] = require("@babel/plugin-transform-classes")
74
+ babelPluginStructure["transform-classes"] = requireBabelPlugin(
75
+ "@babel/plugin-transform-classes",
76
+ )
84
77
  }
85
78
  if (isBabelPluginNeeded("transform-computed-properties")) {
86
- babelPluginStructure[
87
- "transform-computed-properties"
88
- ] = require("@babel/plugin-transform-computed-properties")
79
+ babelPluginStructure["transform-computed-properties"] = requireBabelPlugin(
80
+ "@babel/plugin-transform-computed-properties",
81
+ )
89
82
  }
90
83
  if (isBabelPluginNeeded("transform-destructuring")) {
91
- babelPluginStructure[
92
- "transform-destructuring"
93
- ] = require("@babel/plugin-transform-destructuring")
84
+ babelPluginStructure["transform-destructuring"] = requireBabelPlugin(
85
+ "@babel/plugin-transform-destructuring",
86
+ )
94
87
  }
95
88
  if (isBabelPluginNeeded("transform-dotall-regex")) {
96
- babelPluginStructure[
97
- "transform-dotall-regex"
98
- ] = require("@babel/plugin-transform-dotall-regex")
89
+ babelPluginStructure["transform-dotall-regex"] = requireBabelPlugin(
90
+ "@babel/plugin-transform-dotall-regex",
91
+ )
99
92
  }
100
93
  if (isBabelPluginNeeded("transform-duplicate-keys")) {
101
- babelPluginStructure[
102
- "transform-duplicate-keys"
103
- ] = require("@babel/plugin-transform-duplicate-keys")
94
+ babelPluginStructure["transform-duplicate-keys"] = requireBabelPlugin(
95
+ "@babel/plugin-transform-duplicate-keys",
96
+ )
104
97
  }
105
98
  if (isBabelPluginNeeded("transform-exponentiation-operator")) {
106
- babelPluginStructure[
107
- "transform-exponentiation-operator"
108
- ] = require("@babel/plugin-transform-exponentiation-operator")
99
+ babelPluginStructure["transform-exponentiation-operator"] =
100
+ requireBabelPlugin("@babel/plugin-transform-exponentiation-operator")
109
101
  }
110
102
  if (isBabelPluginNeeded("transform-for-of")) {
111
- babelPluginStructure[
112
- "transform-for-of"
113
- ] = require("@babel/plugin-transform-for-of")
103
+ babelPluginStructure["transform-for-of"] = requireBabelPlugin(
104
+ "@babel/plugin-transform-for-of",
105
+ )
114
106
  }
115
107
  if (isBabelPluginNeeded("transform-function-name")) {
116
- babelPluginStructure[
117
- "transform-function-name"
118
- ] = require("@babel/plugin-transform-function-name")
108
+ babelPluginStructure["transform-function-name"] = requireBabelPlugin(
109
+ "@babel/plugin-transform-function-name",
110
+ )
119
111
  }
120
112
  if (isBabelPluginNeeded("transform-literals")) {
121
- babelPluginStructure[
122
- "transform-literals"
123
- ] = require("@babel/plugin-transform-literals")
113
+ babelPluginStructure["transform-literals"] = requireBabelPlugin(
114
+ "@babel/plugin-transform-literals",
115
+ )
124
116
  }
125
117
  if (isBabelPluginNeeded("transform-new-target")) {
126
- babelPluginStructure[
127
- "transform-new-target"
128
- ] = require("@babel/plugin-transform-new-target")
118
+ babelPluginStructure["transform-new-target"] = requireBabelPlugin(
119
+ "@babel/plugin-transform-new-target",
120
+ )
129
121
  }
130
122
  if (isBabelPluginNeeded("transform-object-super")) {
131
- babelPluginStructure[
132
- "transform-object-super"
133
- ] = require("@babel/plugin-transform-object-super")
123
+ babelPluginStructure["transform-object-super"] = requireBabelPlugin(
124
+ "@babel/plugin-transform-object-super",
125
+ )
134
126
  }
135
127
  if (isBabelPluginNeeded("transform-parameters")) {
136
- babelPluginStructure[
137
- "transform-parameters"
138
- ] = require("@babel/plugin-transform-parameters")
128
+ babelPluginStructure["transform-parameters"] = requireBabelPlugin(
129
+ "@babel/plugin-transform-parameters",
130
+ )
139
131
  }
140
132
  if (isBabelPluginNeeded("transform-regenerator")) {
141
133
  babelPluginStructure["transform-regenerator"] = [
142
- require("@babel/plugin-transform-regenerator"),
134
+ requireBabelPlugin("@babel/plugin-transform-regenerator"),
143
135
  {
144
136
  asyncGenerators: true,
145
137
  generators: true,
@@ -149,22 +141,22 @@ export const getBaseBabelPluginStructure = ({
149
141
  }
150
142
  if (isBabelPluginNeeded("transform-shorthand-properties")) {
151
143
  babelPluginStructure["transform-shorthand-properties"] = [
152
- require("@babel/plugin-transform-shorthand-properties"),
144
+ requireBabelPlugin("@babel/plugin-transform-shorthand-properties"),
153
145
  ]
154
146
  }
155
147
  if (isBabelPluginNeeded("transform-spread")) {
156
148
  babelPluginStructure["transform-spread"] = [
157
- require("@babel/plugin-transform-spread"),
149
+ requireBabelPlugin("@babel/plugin-transform-spread"),
158
150
  ]
159
151
  }
160
152
  if (isBabelPluginNeeded("transform-sticky-regex")) {
161
153
  babelPluginStructure["transform-sticky-regex"] = [
162
- require("@babel/plugin-transform-sticky-regex"),
154
+ requireBabelPlugin("@babel/plugin-transform-sticky-regex"),
163
155
  ]
164
156
  }
165
157
  if (isBabelPluginNeeded("transform-template-literals")) {
166
158
  babelPluginStructure["transform-template-literals"] = [
167
- require("@babel/plugin-transform-template-literals"),
159
+ requireBabelPlugin("@babel/plugin-transform-template-literals"),
168
160
  ]
169
161
  }
170
162
  if (
@@ -175,12 +167,12 @@ export const getBaseBabelPluginStructure = ({
175
167
  url !== getBabelHelperFileUrl("typeof")
176
168
  ) {
177
169
  babelPluginStructure["transform-typeof-symbol"] = [
178
- require("@babel/plugin-transform-typeof-symbol"),
170
+ requireBabelPlugin("@babel/plugin-transform-typeof-symbol"),
179
171
  ]
180
172
  }
181
173
  if (isBabelPluginNeeded("transform-unicode-regex")) {
182
174
  babelPluginStructure["transform-unicode-regex"] = [
183
- require("@babel/plugin-transform-unicode-regex"),
175
+ requireBabelPlugin("@babel/plugin-transform-unicode-regex"),
184
176
  ]
185
177
  }
186
178
  return babelPluginStructure
@@ -1,10 +1,10 @@
1
1
  import { applyBabelPlugins } from "@jsenv/utils/js_ast/apply_babel_plugins.js"
2
2
 
3
3
  import { getBaseBabelPluginStructure } from "./helpers/babel_plugin_structure.js"
4
+ import { babelPluginBabelHelpersAsJsenvImports } from "./helpers/babel_plugin_babel_helpers_as_jsenv_imports.js"
4
5
  import { babelPluginNewStylesheetAsJsenvImport } from "./new_stylesheet/babel_plugin_new_stylesheet_as_jsenv_import.js"
5
6
  import { babelPluginGlobalThisAsJsenvImport } from "./global_this/babel_plugin_global_this_as_jsenv_import.js"
6
7
  import { babelPluginRegeneratorRuntimeAsJsenvImport } from "./regenerator_runtime/babel_plugin_regenerator_runtime_as_jsenv_import.js"
7
- import { babelPluginBabelHelpersAsJsenvImports } from "./babel_helper/babel_plugin_babel_helpers_as_jsenv_imports.js"
8
8
 
9
9
  export const jsenvPluginBabel = ({
10
10
  getCustomBabelPlugins,
@@ -52,6 +52,7 @@ export const loadUrlGraph = async ({
52
52
  reference: entryReference,
53
53
  urlInfo: entryUrlInfo,
54
54
  })
55
+ return [entryReference, entryUrlInfo]
55
56
  },
56
57
  )
57
58
 
@@ -1,29 +0,0 @@
1
- // https://github.com/babel/babel/blob/99f4f6c3b03c7f3f67cf1b9f1a21b80cfd5b0224/packages/babel-core/src/tools/build-external-helpers.js
2
- // the list of possible helpers:
3
- // https://github.com/babel/babel/blob/99f4f6c3b03c7f3f67cf1b9f1a21b80cfd5b0224/packages/babel-helpers/src/helpers.js#L13
4
-
5
- const babelHelperClientDirectoryUrl = new URL("./client/", import.meta.url).href
6
-
7
- // we cannot use "@jsenv/core/src/*" because babel helper might be injected
8
- // into node_modules not depending on "@jsenv/core"
9
- export const getBabelHelperFileUrl = (babelHelperName) => {
10
- const babelHelperFileUrl = new URL(
11
- `./${babelHelperName}/${babelHelperName}.js`,
12
- babelHelperClientDirectoryUrl,
13
- ).href
14
- return babelHelperFileUrl
15
- }
16
-
17
- export const babelHelperNameFromUrl = (url) => {
18
- if (!url.startsWith(babelHelperClientDirectoryUrl)) {
19
- return null
20
- }
21
- const afterBabelHelperDirectory = url.slice(
22
- babelHelperClientDirectoryUrl.length,
23
- )
24
- const babelHelperName = afterBabelHelperDirectory.slice(
25
- 0,
26
- afterBabelHelperDirectory.indexOf("/"),
27
- )
28
- return babelHelperName
29
- }
@@ -1,24 +0,0 @@
1
- const eslintConfig = require("../../.eslintrc.cjs")
2
-
3
- // babel helpers are copy pasted from the babel repository
4
- Object.assign(eslintConfig.rules, {
5
- "eqeqeq": ["off"],
6
- "no-eq-null": ["off"],
7
- "no-undef-init": ["off"],
8
- "dot-notation": ["off"],
9
- "consistent-return": ["off"],
10
- "one-var": ["off"],
11
- "object-shorthand": ["off"],
12
- "no-return-assign": ["off"],
13
- "prefer-template": ["off"],
14
- "prefer-rest-params": ["off"],
15
- "no-void": ["off"],
16
- "no-implicit-coercion": ["off"],
17
- "prefer-spread": ["off"],
18
- "no-loop-func": ["off"],
19
- "no-negated-condition": ["off"],
20
- "no-func-assign": ["off"],
21
- "no-else-return": ["off"],
22
- })
23
-
24
- module.exports = eslintConfig
@@ -1,81 +0,0 @@
1
- import AwaitValue from "../AwaitValue/AwaitValue.js"
2
-
3
- export default function AsyncGenerator(gen) {
4
- var front, back
5
- function send(key, arg) {
6
- return new Promise(function (resolve, reject) {
7
- var request = {
8
- key: key,
9
- arg: arg,
10
- resolve: resolve,
11
- reject: reject,
12
- next: null,
13
- }
14
- if (back) {
15
- back = back.next = request
16
- } else {
17
- front = back = request
18
- resume(key, arg)
19
- }
20
- })
21
- }
22
- function resume(key, arg) {
23
- try {
24
- var result = gen[key](arg)
25
- var value = result.value
26
- var wrappedAwait = value instanceof AwaitValue
27
- Promise.resolve(wrappedAwait ? value.wrapped : value).then(
28
- function (arg) {
29
- if (wrappedAwait) {
30
- resume(key === "return" ? "return" : "next", arg)
31
- return
32
- }
33
- settle(result.done ? "return" : "normal", arg)
34
- },
35
- function (err) {
36
- resume("throw", err)
37
- },
38
- )
39
- } catch (err) {
40
- settle("throw", err)
41
- }
42
- }
43
- function settle(type, value) {
44
- switch (type) {
45
- case "return":
46
- front.resolve({ value: value, done: true })
47
- break
48
- case "throw":
49
- front.reject(value)
50
- break
51
- default:
52
- front.resolve({ value: value, done: false })
53
- break
54
- }
55
- front = front.next
56
- if (front) {
57
- resume(front.key, front.arg)
58
- } else {
59
- back = null
60
- }
61
- }
62
- this._invoke = send
63
- // Hide "return" method if generator return is not supported
64
- if (typeof gen.return !== "function") {
65
- this.return = undefined
66
- }
67
- }
68
- AsyncGenerator.prototype[
69
- (typeof Symbol === "function" && Symbol.asyncIterator) || "@@asyncIterator"
70
- ] = function () {
71
- return this
72
- }
73
- AsyncGenerator.prototype.next = function (arg) {
74
- return this._invoke("next", arg)
75
- }
76
- AsyncGenerator.prototype.throw = function (arg) {
77
- return this._invoke("throw", arg)
78
- }
79
- AsyncGenerator.prototype.return = function (arg) {
80
- return this._invoke("return", arg)
81
- }
@@ -1,3 +0,0 @@
1
- export default function _AwaitValue (value) {
2
- this.wrapped = value
3
- }
@@ -1,33 +0,0 @@
1
- /* eslint-disable no-void */
2
- export default function _applyDecoratedDescriptor(
3
- target,
4
- property,
5
- decorators,
6
- descriptor,
7
- context,
8
- ) {
9
- var desc = {}
10
- Object.keys(descriptor).forEach(function (key) {
11
- desc[key] = descriptor[key]
12
- })
13
- desc.enumerable = Boolean(desc.enumerable)
14
- desc.configurable = Boolean(desc.configurable)
15
- if ("value" in desc || desc.initializer) {
16
- desc.writable = true
17
- }
18
- desc = decorators
19
- .slice()
20
- .reverse()
21
- .reduce(function (desc, decorator) {
22
- return decorator(target, property, desc) || desc
23
- }, desc)
24
- if (context && desc.initializer !== void 0) {
25
- desc.value = desc.initializer ? desc.initializer.call(context) : void 0
26
- desc.initializer = undefined
27
- }
28
- if (desc.initializer === void 0) {
29
- Object.defineProperty(target, property, desc)
30
- desc = null
31
- }
32
- return desc
33
- }
@@ -1,7 +0,0 @@
1
- /* eslint-disable no-eq-null, eqeqeq */
2
- export default function arrayLikeToArray(arr, len) {
3
- if (len == null || len > arr.length) len = arr.length
4
- var arr2 = new Array(len)
5
- for (var i = 0; i < len; i++) arr2[i] = arr[i]
6
- return arr2
7
- }
@@ -1,4 +0,0 @@
1
- // eslint-disable-next-line consistent-return
2
- export default (arr) => {
3
- if (Array.isArray(arr)) return arr
4
- }
@@ -1,6 +0,0 @@
1
- import arrayLikeToArray from "../arrayLikeToArray/arrayLikeToArray.js"
2
-
3
- // eslint-disable-next-line consistent-return
4
- export default (arr) => {
5
- if (Array.isArray(arr)) return arrayLikeToArray(arr)
6
- }