@jsenv/core 27.0.0-alpha.7 → 27.0.0-alpha.70

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 (247) hide show
  1. package/dist/babel_helpers/AsyncGenerator/AsyncGenerator.js +95 -0
  2. package/dist/babel_helpers/AwaitValue/AwaitValue.js +3 -0
  3. package/dist/babel_helpers/applyDecoratorDescriptor/applyDecoratorDescriptor.js +29 -0
  4. package/dist/babel_helpers/arrayLikeToArray/arrayLikeToArray.js +9 -0
  5. package/dist/babel_helpers/arrayWithHoles/arrayWithHoles.js +4 -0
  6. package/dist/babel_helpers/arrayWithoutHoles/arrayWithoutHoles.js +5 -0
  7. package/dist/babel_helpers/assertThisInitialized/assertThisInitialized.js +8 -0
  8. package/dist/babel_helpers/asyncGeneratorDelegate/asyncGeneratorDelegate.js +52 -0
  9. package/dist/babel_helpers/asyncIterator/asyncIterator.js +78 -0
  10. package/dist/babel_helpers/asyncToGenerator/asyncToGenerator.js +39 -0
  11. package/dist/babel_helpers/awaitAsyncGenerator/awaitAsyncGenerator.js +4 -0
  12. package/dist/babel_helpers/classApplyDescriptorDestructureSet/classApplyDescriptorDestructureSet.js +24 -0
  13. package/dist/babel_helpers/classApplyDescriptorGet/classApplyDescriptorGet.js +7 -0
  14. package/dist/babel_helpers/classApplyDescriptorSet/classApplyDescriptorSet.js +14 -0
  15. package/dist/babel_helpers/classCallCheck/classCallCheck.js +5 -0
  16. package/dist/babel_helpers/classCheckPrivateStaticAccess/classCheckPrivateStaticAccess.js +5 -0
  17. package/dist/babel_helpers/classCheckPrivateStaticFieldDescriptor/classCheckPrivateStaticFieldDescriptor.js +6 -0
  18. package/dist/babel_helpers/classExtractFieldDescriptor/classExtractFieldDescriptor.js +8 -0
  19. package/dist/babel_helpers/classNameTDZError/classNameTDZError.js +4 -0
  20. package/dist/babel_helpers/classPrivateFieldDestructureSet/classPrivateFieldDestructureSet.js +6 -0
  21. package/dist/babel_helpers/classPrivateFieldGet/classPrivateFieldGet.js +6 -0
  22. package/dist/babel_helpers/classPrivateFieldLooseBase/classPrivateFieldLooseBase.js +7 -0
  23. package/dist/babel_helpers/classPrivateFieldLooseKey/classPrivateFieldLooseKey.js +5 -0
  24. package/dist/babel_helpers/classPrivateFieldSet/classPrivateFieldSet.js +7 -0
  25. package/dist/babel_helpers/classPrivateMethodGet/classPrivateMethodGet.js +7 -0
  26. package/dist/babel_helpers/classPrivateMethodSet/classPrivateMethodSet.js +3 -0
  27. package/dist/babel_helpers/classStaticPrivateFieldSpecGet/classStaticPrivateFieldSpecGet.js +8 -0
  28. package/dist/babel_helpers/classStaticPrivateFieldSpecSet/classStaticPrivateFieldSpecSet.js +9 -0
  29. package/dist/babel_helpers/classStaticPrivateMethodGet/classStaticPrivateMethodGet.js +5 -0
  30. package/dist/babel_helpers/classStaticPrivateMethodSet/classStaticPrivateMethodSet.js +3 -0
  31. package/dist/babel_helpers/construct/construct.js +15 -0
  32. package/dist/babel_helpers/createClass/createClass.js +18 -0
  33. package/dist/babel_helpers/createForOfIteratorHelper/createForOfIteratorHelper.js +63 -0
  34. package/dist/babel_helpers/createForOfIteratorHelperLoose/createForOfIteratorHelperLoose.js +22 -0
  35. package/dist/babel_helpers/createRawReactElement/createRawReactElement.js +50 -0
  36. package/dist/babel_helpers/createSuper/createSuper.js +22 -0
  37. package/dist/babel_helpers/decorate/decorate.js +622 -0
  38. package/dist/babel_helpers/defaults/defaults.js +14 -0
  39. package/dist/babel_helpers/defineEnumerableProperties/defineEnumerableProperties.js +26 -0
  40. package/dist/babel_helpers/defineProperty/defineProperty.js +19 -0
  41. package/dist/babel_helpers/extends/extends.js +16 -0
  42. package/dist/babel_helpers/get/get.js +21 -0
  43. package/dist/babel_helpers/getPrototypeOf/getPrototypeOf.js +2 -0
  44. package/dist/babel_helpers/inherits/inherits.js +21 -0
  45. package/dist/babel_helpers/inheritsLoose/inheritsLoose.js +6 -0
  46. package/dist/babel_helpers/initializerDefineProperty/initializerDefineProperty.js +10 -0
  47. package/dist/babel_helpers/initializerWarningHelper/initializerWarningHelper.js +3 -0
  48. package/dist/babel_helpers/instanceof/instanceof.js +7 -0
  49. package/dist/babel_helpers/interopRequireDefault/interopRequireDefault.js +5 -0
  50. package/dist/babel_helpers/interopRequireWildcard/interopRequireWildcard.js +49 -0
  51. package/dist/babel_helpers/isNativeFunction/isNativeFunction.js +4 -0
  52. package/dist/babel_helpers/isNativeReflectConstruct/isNativeReflectConstruct.js +21 -0
  53. package/dist/babel_helpers/iterableToArray/iterableToArray.js +3 -0
  54. package/dist/babel_helpers/iterableToArrayLimit/iterableToArrayLimit.js +38 -0
  55. package/dist/babel_helpers/iterableToArrayLimitLoose/iterableToArrayLimitLoose.js +13 -0
  56. package/dist/babel_helpers/jsx/jsx.js +49 -0
  57. package/dist/babel_helpers/maybeArrayLike/maybeArrayLike.js +10 -0
  58. package/dist/babel_helpers/newArrowCheck/newArrowCheck.js +5 -0
  59. package/dist/babel_helpers/nonIterableRest/nonIterableRest.js +3 -0
  60. package/dist/babel_helpers/nonIterableSpread/nonIterableSpread.js +3 -0
  61. package/dist/babel_helpers/objectDestructuringEmpty/objectDestructuringEmpty.js +3 -0
  62. package/dist/babel_helpers/objectSpread/objectSpread.js +22 -0
  63. package/dist/babel_helpers/objectSpread2/objectSpread2.js +41 -0
  64. package/dist/babel_helpers/objectWithoutProperties/objectWithoutProperties.js +20 -0
  65. package/dist/babel_helpers/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js +15 -0
  66. package/dist/babel_helpers/possibleConstructorReturn/possibleConstructorReturn.js +10 -0
  67. package/dist/babel_helpers/readOnlyError/readOnlyError.js +4 -0
  68. package/dist/babel_helpers/readme.md +8 -0
  69. package/dist/babel_helpers/set/set.js +51 -0
  70. package/dist/babel_helpers/setPrototypeOf/setPrototypeOf.js +5 -0
  71. package/dist/babel_helpers/skipFirstGeneratorNext/skipFirstGeneratorNext.js +8 -0
  72. package/dist/babel_helpers/slicedToArray/slicedToArray.js +5 -0
  73. package/dist/babel_helpers/slicedToArrayLoose/slicedToArrayLoose.js +7 -0
  74. package/dist/babel_helpers/superPropBase/superPropBase.js +10 -0
  75. package/dist/babel_helpers/taggedTemplateLiteral/taggedTemplateLiteral.js +11 -0
  76. package/dist/babel_helpers/taggedTemplateLiteralLoose/taggedTemplateLiteralLoose.js +8 -0
  77. package/dist/babel_helpers/tdz/tdz.js +4 -0
  78. package/dist/babel_helpers/temporalRef/temporalRef.js +5 -0
  79. package/dist/babel_helpers/temporalUndefined/temporalUndefined.js +3 -0
  80. package/dist/babel_helpers/toArray/toArray.js +5 -0
  81. package/dist/babel_helpers/toConsumableArray/toConsumableArray.js +5 -0
  82. package/dist/babel_helpers/toPrimitive/toPrimitive.js +14 -0
  83. package/dist/babel_helpers/toPropertyKey/toPropertyKey.js +5 -0
  84. package/dist/babel_helpers/typeof/typeof.js +7 -0
  85. package/dist/babel_helpers/unsupportedIterableToArray/unsupportedIterableToArray.js +10 -0
  86. package/dist/babel_helpers/wrapAsyncGenerator/wrapAsyncGenerator.js +7 -0
  87. package/dist/babel_helpers/wrapNativeSuper/wrapNativeSuper.js +35 -0
  88. package/dist/babel_helpers/wrapRegExp/wrapRegExp.js +67 -0
  89. package/dist/babel_helpers/writeOnlyError/writeOnlyError.js +4 -0
  90. package/dist/html/explorer.html +557 -0
  91. package/dist/js/controllable_file.mjs +227 -0
  92. package/dist/js/event_source_client.js +324 -0
  93. package/dist/js/global_this.js +32 -0
  94. package/dist/js/html_supervisor_installer.js +522 -0
  95. package/dist/js/html_supervisor_setup.js +79 -0
  96. package/dist/js/import_meta_hot.js +84 -0
  97. package/dist/js/inline_content.js +8 -0
  98. package/dist/js/new_stylesheet.js +409 -0
  99. package/dist/js/regenerator_runtime.js +721 -0
  100. package/dist/js/s.js +429 -0
  101. package/dist/main.js +13452 -0
  102. package/dist/other/jsenv.png +0 -0
  103. package/dist/s.js +626 -0
  104. package/dist/s.js.map +204 -0
  105. package/main.js +9 -1
  106. package/package.json +44 -32
  107. package/readme.md +6 -14
  108. package/src/build/build.js +1080 -562
  109. package/src/build/build_urls_generator.js +65 -24
  110. package/src/build/graph_utils.js +31 -0
  111. package/src/build/{inject_version_mappings.js → inject_global_version_mappings.js} +49 -18
  112. package/src/build/inject_service_worker_urls.js +79 -0
  113. package/src/build/resync_ressource_hints.js +115 -0
  114. package/src/build/start_build_server.js +211 -0
  115. package/src/dev/plugins/explorer/client/explorer.html +1 -1
  116. package/src/dev/plugins/explorer/jsenv_plugin_explorer.js +8 -12
  117. package/src/dev/plugins/toolbar/jsenv_plugin_toolbar.js +3 -1
  118. package/src/dev/start_dev_server.js +170 -38
  119. package/src/execute/execute.js +36 -6
  120. package/src/execute/run.js +21 -57
  121. package/src/execute/runtimes/browsers/from_playwright.js +218 -148
  122. package/src/execute/runtimes/node/controllable_file.mjs +26 -10
  123. package/src/execute/runtimes/node/node_execution_performance.js +67 -0
  124. package/src/execute/runtimes/node/node_process.js +288 -39
  125. package/src/omega/{runtime_support/features_compatibility.js → compat/features_compats.js} +30 -7
  126. package/src/omega/{runtime_support/runtime_support.js → compat/runtime_compat.js} +14 -16
  127. package/src/omega/errors.js +62 -66
  128. package/src/omega/fetched_content_compliance.js +24 -0
  129. package/src/omega/file_url_converter.js +9 -51
  130. package/src/omega/kitchen.js +593 -463
  131. package/src/omega/omega_server.js +2 -3
  132. package/src/omega/server/file_service.js +86 -38
  133. package/src/omega/server/user_agent.js +4 -2
  134. package/src/omega/url_graph/url_graph_load.js +31 -23
  135. package/src/omega/url_graph/url_graph_report.js +94 -51
  136. package/src/omega/url_graph/url_info_transformations.js +37 -17
  137. package/src/omega/url_graph.js +88 -19
  138. package/src/omega/url_specifier_encoding.js +59 -0
  139. package/src/omega/web_workers.js +42 -0
  140. package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/autoreload_preference.js +0 -0
  141. package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/event_source_client.js +19 -12
  142. package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/reload.js +0 -0
  143. package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/url_helpers.js +0 -0
  144. package/src/plugins/autoreload/dev_sse/jsenv_plugin_dev_sse_client.js +41 -0
  145. package/src/plugins/autoreload/dev_sse/jsenv_plugin_dev_sse_server.js +204 -0
  146. package/src/plugins/autoreload/jsenv_plugin_autoreload.js +25 -0
  147. package/src/plugins/autoreload/jsenv_plugin_hmr.js +35 -0
  148. package/src/plugins/bundling/css/bundle_css.js +140 -0
  149. package/src/plugins/bundling/js_classic_workers/bundle_js_classic_workers.js +13 -0
  150. package/src/plugins/bundling/js_module/bundle_js_module.js +342 -0
  151. package/src/plugins/bundling/jsenv_plugin_bundling.js +54 -0
  152. package/src/plugins/cache_control/jsenv_plugin_cache_control.js +34 -0
  153. package/src/{omega/core_plugins → plugins}/commonjs_globals/jsenv_plugin_commonjs_globals.js +54 -41
  154. package/src/plugins/file_urls/jsenv_plugin_file_urls.js +198 -0
  155. package/src/{omega/core_plugins → plugins}/html_supervisor/client/error_in_document.js +0 -0
  156. package/src/{omega/core_plugins → plugins}/html_supervisor/client/error_in_notification.js +0 -0
  157. package/src/plugins/html_supervisor/client/html_supervisor_installer.js +254 -0
  158. package/src/plugins/html_supervisor/client/html_supervisor_setup.js +79 -0
  159. package/src/{omega/core_plugins → plugins}/html_supervisor/client/perf_browser.js +0 -0
  160. package/src/{omega/core_plugins → plugins}/html_supervisor/client/uneval_exception.js +0 -0
  161. package/src/{omega/core_plugins → plugins}/html_supervisor/jsenv_plugin_html_supervisor.js +73 -55
  162. package/src/plugins/http_urls/jsenv_plugin_http_urls.js +12 -0
  163. package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/babel_plugin_metadata_import_meta_hot.js +4 -5
  164. package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/client/import_meta_hot.js +3 -1
  165. package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/html_hot_dependencies.js +7 -4
  166. package/src/plugins/import_meta_hot/jsenv_plugin_import_meta_hot.js +100 -0
  167. package/src/{omega/core_plugins → plugins}/import_meta_scenarios/jsenv_plugin_import_meta_scenarios.js +33 -8
  168. package/src/plugins/import_meta_url/client/import_meta_url_browser.js +52 -0
  169. package/src/plugins/import_meta_url/client/import_meta_url_commonjs.mjs +9 -0
  170. package/src/{omega/core_plugins → plugins}/importmap/jsenv_plugin_importmap.js +40 -36
  171. package/src/plugins/inject_globals/jsenv_plugin_inject_globals.js +76 -0
  172. package/src/{omega/core_plugins → plugins}/inline/client/inline_content.js +0 -0
  173. package/src/{omega/core_plugins → plugins}/inline/jsenv_plugin_data_urls.js +19 -18
  174. package/src/plugins/inline/jsenv_plugin_html_inline_content.js +161 -0
  175. package/src/plugins/inline/jsenv_plugin_inline.js +36 -0
  176. package/src/{omega/core_plugins → plugins}/inline/jsenv_plugin_inline_query_param.js +7 -10
  177. package/src/plugins/inline/jsenv_plugin_js_inline_content.js +294 -0
  178. package/src/plugins/leading_slash/jsenv_plugin_leading_slash.js +13 -0
  179. package/src/plugins/minification/css/minify_css.js +9 -0
  180. package/src/plugins/minification/html/minify_html.js +15 -0
  181. package/src/{build/plugins/minify_js/jsenv_plugin_minify_js.js → plugins/minification/js/minify_js.js} +6 -22
  182. package/src/plugins/minification/jsenv_plugin_minification.js +78 -0
  183. package/src/plugins/minification/json/minify_json.js +8 -0
  184. package/src/plugins/node_esm_resolution/jsenv_plugin_node_esm_resolution.js +160 -0
  185. package/src/plugins/node_runtime/jsenv_plugin_node_runtime.js +12 -0
  186. package/src/{omega → plugins}/plugin_controller.js +56 -11
  187. package/src/plugins/plugins.js +92 -0
  188. package/src/plugins/transpilation/as_js_classic/client/s.js +429 -0
  189. package/src/plugins/transpilation/as_js_classic/helpers/babel_plugin_transform_import_meta_url.js +47 -0
  190. package/src/plugins/transpilation/as_js_classic/helpers/systemjs_old.js +43 -0
  191. package/src/plugins/transpilation/as_js_classic/jsenv_plugin_as_js_classic.js +213 -0
  192. package/src/plugins/transpilation/as_js_classic/jsenv_plugin_as_js_classic_html.js +304 -0
  193. package/src/plugins/transpilation/as_js_classic/jsenv_plugin_as_js_classic_workers.js +55 -0
  194. package/src/{omega/core_plugins → plugins/transpilation}/babel/global_this/babel_plugin_global_this_as_jsenv_import.js +0 -0
  195. package/src/{omega/core_plugins → plugins/transpilation}/babel/global_this/client/global_this.js +0 -0
  196. package/src/{omega/core_plugins → plugins/transpilation}/babel/helpers/babel_plugin_babel_helpers_as_jsenv_imports.js +0 -0
  197. package/src/{omega/core_plugins → plugins/transpilation}/babel/helpers/babel_plugin_structure.js +12 -16
  198. package/src/{omega/core_plugins → plugins/transpilation}/babel/helpers/babel_plugins_compatibility.js +0 -0
  199. package/src/{omega/core_plugins → plugins/transpilation}/babel/jsenv_plugin_babel.js +39 -32
  200. package/src/{omega/core_plugins → plugins/transpilation}/babel/new_stylesheet/babel_plugin_new_stylesheet_as_jsenv_import.js +30 -6
  201. package/src/{omega/core_plugins → plugins/transpilation}/babel/new_stylesheet/client/new_stylesheet.js +0 -0
  202. package/src/{omega/core_plugins → plugins/transpilation}/babel/regenerator_runtime/babel_plugin_regenerator_runtime_as_jsenv_import.js +0 -0
  203. package/src/{omega/core_plugins → plugins/transpilation}/babel/regenerator_runtime/client/regenerator_runtime.js +0 -0
  204. package/src/plugins/transpilation/css_parcel/jsenv_plugin_css_parcel.js +18 -0
  205. package/src/plugins/transpilation/import_assertions/jsenv_plugin_import_assertions.js +184 -0
  206. package/src/plugins/transpilation/jsenv_plugin_top_level_await.js +80 -0
  207. package/src/plugins/transpilation/jsenv_plugin_transpilation.js +46 -0
  208. package/src/plugins/url_analysis/css/css_urls.js +49 -0
  209. package/src/plugins/url_analysis/html/html_urls.js +272 -0
  210. package/src/plugins/url_analysis/js/js_urls.js +68 -0
  211. package/src/plugins/url_analysis/jsenv_plugin_url_analysis.js +102 -0
  212. package/src/plugins/url_analysis/webmanifest/webmanifest_urls.js +20 -0
  213. package/src/{omega/core_plugins → plugins}/url_resolution/jsenv_plugin_url_resolution.js +9 -5
  214. package/src/plugins/url_version/jsenv_plugin_url_version.js +28 -0
  215. package/src/test/execute_plan.js +81 -44
  216. package/src/test/execute_test_plan.js +37 -24
  217. package/src/test/execution_steps.js +1 -4
  218. package/src/test/logs_file_execution.js +56 -49
  219. package/src/build/plugins/bundle_js_module/jsenv_plugin_bundle_js_module.js +0 -225
  220. package/src/build/plugins/minify_html/jsenv_plugin_minify_html.js +0 -30
  221. package/src/dev/plugins/autoreload/client/event_source_connection.js +0 -195
  222. package/src/dev/plugins/autoreload/jsenv_plugin_autoreload.js +0 -374
  223. package/src/dev/plugins/autoreload/sse_service.js +0 -149
  224. package/src/execute/runtimes/node/controlled_process.js +0 -316
  225. package/src/omega/core_plugins/babel/new_stylesheet/client/.eslintrc.cjs +0 -24
  226. package/src/omega/core_plugins/file_urls/jsenv_plugin_file_urls.js +0 -67
  227. package/src/omega/core_plugins/filesystem_magic/jsenv_plugin_filesystem_magic.js +0 -58
  228. package/src/omega/core_plugins/html_supervisor/client/html_supervisor_installer.js +0 -168
  229. package/src/omega/core_plugins/html_supervisor/client/html_supervisor_setup.js +0 -77
  230. package/src/omega/core_plugins/import_assertions/helpers/babel_plugin_metadata_import_assertions.js +0 -98
  231. package/src/omega/core_plugins/import_assertions/helpers/json_module.js +0 -12
  232. package/src/omega/core_plugins/import_assertions/helpers/text_module.js +0 -6
  233. package/src/omega/core_plugins/import_assertions/jsenv_plugin_import_assertions.js +0 -211
  234. package/src/omega/core_plugins/inline/jsenv_plugin_inline.js +0 -13
  235. package/src/omega/core_plugins/inline/jsenv_plugin_js_and_css_inside_html.js +0 -142
  236. package/src/omega/core_plugins/inline/jsenv_plugin_new_inline_content.js +0 -207
  237. package/src/omega/core_plugins/leading_slash/jsenv_plugin_leading_slash.js +0 -12
  238. package/src/omega/core_plugins/node_esm_resolution/jsenv_plugin_node_esm_resolution.js +0 -77
  239. package/src/omega/core_plugins/url_version/jsenv_plugin_url_version.js +0 -50
  240. package/src/omega/core_plugins.js +0 -39
  241. package/src/omega/runtime_support/default_runtime_support.js +0 -13
  242. package/src/omega/url_graph/url_graph_sort.js +0 -29
  243. package/src/omega/url_mentions/css_url_mentions.js +0 -63
  244. package/src/omega/url_mentions/html_url_mentions.js +0 -185
  245. package/src/omega/url_mentions/js_module_url_mentions.js +0 -91
  246. package/src/omega/url_mentions/parse_url_mentions.js +0 -37
  247. package/src/omega/url_mentions/worker_classic_url_mentions.js +0 -37
@@ -1,225 +0,0 @@
1
- import { isFileSystemPath, urlToRelativeUrl } from "@jsenv/filesystem"
2
-
3
- import { applyRollupPlugins } from "@jsenv/utils/js_ast/apply_rollup_plugins.js"
4
- import { sourcemapConverter } from "@jsenv/utils/sourcemap/sourcemap_converter.js"
5
- import { fileUrlConverter } from "@jsenv/core/src/omega/file_url_converter.js"
6
-
7
- export const jsenvPluginBundleJsModule = () => {
8
- return {
9
- name: "jsenv:bundle_js_module",
10
- appliesDuring: {
11
- build: true,
12
- },
13
- bundle: {
14
- js_module: async (
15
- jsModuleUrlInfos,
16
- {
17
- signal,
18
- logger,
19
- rootDirectoryUrl,
20
- buildDirectoryUrl,
21
- urlGraph,
22
- runtimeSupport,
23
- sourcemaps,
24
- },
25
- ) => {
26
- const { jsModuleBundleUrlInfos } = await buildWithRollup({
27
- signal,
28
- logger,
29
- rootDirectoryUrl,
30
- buildDirectoryUrl,
31
- urlGraph,
32
- jsModuleUrlInfos,
33
-
34
- runtimeSupport,
35
- sourcemaps,
36
- })
37
- return jsModuleBundleUrlInfos
38
- },
39
- },
40
- }
41
- }
42
-
43
- export const buildWithRollup = async ({
44
- signal,
45
- logger,
46
- rootDirectoryUrl,
47
- buildDirectoryUrl,
48
- urlGraph,
49
- jsModuleUrlInfos,
50
-
51
- runtimeSupport,
52
- sourcemaps,
53
- }) => {
54
- const resultRef = { current: null }
55
- await applyRollupPlugins({
56
- rollupPlugins: [
57
- rollupPluginJsenv({
58
- signal,
59
- logger,
60
- rootDirectoryUrl,
61
- buildDirectoryUrl,
62
- urlGraph,
63
- jsModuleUrlInfos,
64
-
65
- runtimeSupport,
66
- sourcemaps,
67
- resultRef,
68
- }),
69
- ],
70
- inputOptions: {
71
- input: [],
72
- onwarn: (warning) => {
73
- if (warning.code === "CIRCULAR_DEPENDENCY") {
74
- return
75
- }
76
- logger.warn(String(warning))
77
- },
78
- },
79
- })
80
- return resultRef.current
81
- }
82
-
83
- const rollupPluginJsenv = ({
84
- // logger,
85
- rootDirectoryUrl,
86
- buildDirectoryUrl,
87
- urlGraph,
88
- jsModuleUrlInfos,
89
- sourcemaps,
90
-
91
- resultRef,
92
- }) => {
93
- let _rollupEmitFile = () => {
94
- throw new Error("not implemented")
95
- }
96
- const emitChunk = (chunk) => {
97
- return _rollupEmitFile({
98
- type: "chunk",
99
- ...chunk,
100
- })
101
- }
102
- const urlImporters = {}
103
-
104
- return {
105
- name: "jsenv",
106
- async buildStart() {
107
- _rollupEmitFile = (...args) => this.emitFile(...args)
108
- let previousNonEntryPointModuleId
109
- jsModuleUrlInfos.forEach((jsModuleUrlInfo) => {
110
- const id = jsModuleUrlInfo.url
111
- if (jsModuleUrlInfo.data.isEntryPoint) {
112
- emitChunk({
113
- id,
114
- })
115
- return
116
- }
117
- emitChunk({
118
- id,
119
- implicitlyLoadedAfterOneOf: previousNonEntryPointModuleId
120
- ? [previousNonEntryPointModuleId]
121
- : null,
122
- })
123
- previousNonEntryPointModuleId = id
124
- })
125
- },
126
- async generateBundle(outputOptions, rollupResult) {
127
- _rollupEmitFile = (...args) => this.emitFile(...args)
128
-
129
- const jsModuleBundleUrlInfos = {}
130
- Object.keys(rollupResult).forEach((fileName) => {
131
- const rollupFileInfo = rollupResult[fileName]
132
- // there is 3 types of file: "placeholder", "asset", "chunk"
133
- if (rollupFileInfo.type === "chunk") {
134
- const { facadeModuleId } = rollupFileInfo
135
- let url
136
- if (facadeModuleId) {
137
- url = fileUrlConverter.asFileUrl(facadeModuleId)
138
- } else {
139
- const { sources } = rollupFileInfo.map
140
- const sourcePath = sources[sources.length - 1]
141
- url = fileUrlConverter.asFileUrl(sourcePath)
142
- }
143
- const jsModuleBundleUrlInfo = {
144
- // buildRelativeUrl: rollupFileInfo.fileName,
145
- data: {
146
- generatedBy: "rollup",
147
- },
148
- contentType: "application/javascript",
149
- content: rollupFileInfo.code,
150
- sourcemap: rollupFileInfo.map,
151
- }
152
- jsModuleBundleUrlInfos[url] = jsModuleBundleUrlInfo
153
- }
154
- })
155
- resultRef.current = {
156
- jsModuleBundleUrlInfos,
157
- }
158
- },
159
- outputOptions: (outputOptions) => {
160
- // const sourcemapFile = buildDirectoryUrl
161
- Object.assign(outputOptions, {
162
- format: "esm",
163
- dir: fileUrlConverter.asFilePath(buildDirectoryUrl),
164
- sourcemap: sourcemaps === "file" || sourcemaps === "inline",
165
- // sourcemapFile,
166
- sourcemapPathTransform: (relativePath) => {
167
- return new URL(relativePath, buildDirectoryUrl).href
168
- },
169
- entryFileNames: () => {
170
- return `[name].js`
171
- },
172
- chunkFileNames: (chunkInfo) => {
173
- // preserves relative path parts:
174
- // the goal is to mantain the original relative path (relative to the root directory)
175
- // so that later in the build process, when resolving these urls, we are able to
176
- // re-resolve the specifier againt the original parent url and find the original url
177
- const { facadeModuleId } = chunkInfo
178
- const fileUrl = fileUrlConverter.asFileUrl(facadeModuleId)
179
- const relativePath = urlToRelativeUrl(fileUrl, rootDirectoryUrl)
180
- return relativePath
181
- },
182
- // https://rollupjs.org/guide/en/#outputpaths
183
- // paths: (id) => {
184
- // return id
185
- // },
186
- })
187
- },
188
- resolveId: (specifier, importer = rootDirectoryUrl) => {
189
- if (isFileSystemPath(importer)) {
190
- importer = fileUrlConverter.asFileUrl(importer)
191
- }
192
- const url = new URL(specifier, importer).href
193
- const existingImporter = urlImporters[url]
194
- if (!existingImporter) {
195
- urlImporters[url] = importer
196
- }
197
- if (!url.startsWith("file:")) {
198
- return { url, external: true }
199
- }
200
- const filePath = fileUrlConverter.asFilePath(url)
201
- return filePath
202
- },
203
- async load(rollupId) {
204
- const fileUrl = fileUrlConverter.asFileUrl(rollupId)
205
- const urlInfo = urlGraph.getUrlInfo(fileUrl)
206
- return {
207
- code: urlInfo.content,
208
- map: urlInfo.sourcemap
209
- ? sourcemapConverter.toFilePaths(urlInfo.sourcemap)
210
- : urlInfo.sourcemap,
211
- }
212
- },
213
- // resolveFileUrl: ({ moduleId }) => {
214
- // return `${fileUrlConverter.asFileUrl(moduleId)}`
215
- // },
216
- renderChunk: (code, chunkInfo) => {
217
- const { facadeModuleId } = chunkInfo
218
- if (!facadeModuleId) {
219
- // happens for inline module scripts for instance
220
- return null
221
- }
222
- return null
223
- },
224
- }
225
- }
@@ -1,30 +0,0 @@
1
- import { createRequire } from "node:module"
2
-
3
- const require = createRequire(import.meta.url)
4
-
5
- // https://github.com/kangax/html-minifier#options-quick-reference
6
- export const jsenvPluginMinifyHtml = ({
7
- collapseWhitespace = true,
8
- removeComments = true,
9
- } = {}) => {
10
- return {
11
- name: "jsenv:minify_html",
12
- appliesDuring: {
13
- build: true,
14
- },
15
- optimize: {
16
- html: async (htmlUrlInfo) => {
17
- return minifyHtml(htmlUrlInfo.content, {
18
- collapseWhitespace,
19
- removeComments,
20
- })
21
- },
22
- },
23
- }
24
- }
25
-
26
- const minifyHtml = (htmlString, options) => {
27
- const { minify } = require("html-minifier")
28
- const htmlMinified = minify(htmlString, options)
29
- return htmlMinified
30
- }
@@ -1,195 +0,0 @@
1
- export const createEventSourceConnection = (
2
- eventSourceUrl,
3
- events = {},
4
- { retryMaxAttempt = Infinity, retryAllocatedMs = Infinity, lastEventId } = {},
5
- ) => {
6
- const { EventSource } = window
7
- if (typeof EventSource !== "function") {
8
- return () => {}
9
- }
10
-
11
- const eventSourceOrigin = new URL(eventSourceUrl).origin
12
- Object.keys(events).forEach((eventName) => {
13
- const eventCallback = events[eventName]
14
- events[eventName] = (e) => {
15
- if (e.origin === eventSourceOrigin) {
16
- if (e.lastEventId) {
17
- lastEventId = e.lastEventId
18
- }
19
- eventCallback(e)
20
- }
21
- }
22
- })
23
-
24
- const status = {
25
- value: "default",
26
- goTo: (value) => {
27
- if (value === status.value) {
28
- return
29
- }
30
- status.value = value
31
- status.onchange()
32
- },
33
- onchange: () => {},
34
- }
35
- let _disconnect = () => {}
36
-
37
- const attemptConnection = (url) => {
38
- const eventSource = new EventSource(url, {
39
- withCredentials: true,
40
- })
41
- _disconnect = () => {
42
- if (status.value !== "connecting" && status.value !== "connected") {
43
- console.warn(
44
- `disconnect() ignored because connection is ${status.value}`,
45
- )
46
- return
47
- }
48
- eventSource.onerror = undefined
49
- eventSource.close()
50
- Object.keys(events).forEach((eventName) => {
51
- eventSource.removeEventListener(eventName, events[eventName])
52
- })
53
- status.goTo("disconnected")
54
- }
55
- let retryCount = 0
56
- let firstRetryMs = Date.now()
57
- eventSource.onerror = (errorEvent) => {
58
- if (errorEvent.target.readyState === EventSource.CONNECTING) {
59
- if (retryCount > retryMaxAttempt) {
60
- console.info(`could not connect after ${retryMaxAttempt} attempt`)
61
- _disconnect()
62
- return
63
- }
64
-
65
- if (retryCount === 0) {
66
- firstRetryMs = Date.now()
67
- } else {
68
- const allRetryDuration = Date.now() - firstRetryMs
69
- if (retryAllocatedMs && allRetryDuration > retryAllocatedMs) {
70
- console.info(
71
- `could not connect in less than ${retryAllocatedMs} ms`,
72
- )
73
- _disconnect()
74
- return
75
- }
76
- }
77
-
78
- retryCount++
79
- status.goTo("connecting")
80
- return
81
- }
82
-
83
- if (errorEvent.target.readyState === EventSource.CLOSED) {
84
- _disconnect()
85
- return
86
- }
87
- }
88
- eventSource.onopen = () => {
89
- status.goTo("connected")
90
- }
91
- Object.keys(events).forEach((eventName) => {
92
- eventSource.addEventListener(eventName, events[eventName])
93
- })
94
- if (!events.hasOwnProperty("welcome")) {
95
- eventSource.addEventListener("welcome", (e) => {
96
- if (e.origin === eventSourceOrigin && e.lastEventId) {
97
- lastEventId = e.lastEventId
98
- }
99
- })
100
- }
101
- status.goTo("connecting")
102
- }
103
-
104
- let connect = () => {
105
- attemptConnection(eventSourceUrl)
106
- connect = () => {
107
- attemptConnection(
108
- lastEventId
109
- ? addLastEventIdIntoUrlSearchParams(eventSourceUrl, lastEventId)
110
- : eventSourceUrl,
111
- )
112
- }
113
- }
114
-
115
- const removePageUnloadListener = listenPageUnload(() => {
116
- if (status.value === "connecting" || status.value === "connected") {
117
- _disconnect()
118
- }
119
- })
120
-
121
- const destroy = () => {
122
- removePageUnloadListener()
123
- _disconnect()
124
- }
125
-
126
- return {
127
- status,
128
- connect,
129
- disconnect: () => _disconnect(),
130
- destroy,
131
- }
132
- }
133
-
134
- const addLastEventIdIntoUrlSearchParams = (url, lastEventId) => {
135
- if (url.indexOf("?") === -1) {
136
- url += "?"
137
- } else {
138
- url += "&"
139
- }
140
- return `${url}last-event-id=${encodeURIComponent(lastEventId)}`
141
- }
142
-
143
- // const listenPageMightFreeze = (callback) => {
144
- // const removePageHideListener = listenEvent(window, "pagehide", (pageHideEvent) => {
145
- // if (pageHideEvent.persisted === true) {
146
- // callback(pageHideEvent)
147
- // }
148
- // })
149
- // return removePageHideListener
150
- // }
151
-
152
- // const listenPageFreeze = (callback) => {
153
- // const removeFreezeListener = listenEvent(document, "freeze", (freezeEvent) => {
154
- // callback(freezeEvent)
155
- // })
156
- // return removeFreezeListener
157
- // }
158
-
159
- // const listenPageIsRestored = (callback) => {
160
- // const removeResumeListener = listenEvent(document, "resume", (resumeEvent) => {
161
- // removePageshowListener()
162
- // callback(resumeEvent)
163
- // })
164
- // const removePageshowListener = listenEvent(window, "pageshow", (pageshowEvent) => {
165
- // if (pageshowEvent.persisted === true) {
166
- // removePageshowListener()
167
- // removeResumeListener()
168
- // callback(pageshowEvent)
169
- // }
170
- // })
171
- // return () => {
172
- // removeResumeListener()
173
- // removePageshowListener()
174
- // }
175
- // }
176
-
177
- const listenPageUnload = (callback) => {
178
- const removePageHideListener = listenEvent(
179
- window,
180
- "pagehide",
181
- (pageHideEvent) => {
182
- if (pageHideEvent.persisted !== true) {
183
- callback(pageHideEvent)
184
- }
185
- },
186
- )
187
- return removePageHideListener
188
- }
189
-
190
- const listenEvent = (emitter, event, callback) => {
191
- emitter.addEventListener(event, callback)
192
- return () => {
193
- emitter.removeEventListener(event, callback)
194
- }
195
- }