@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,13 +1,17 @@
1
1
  import { createDetailedMessage } from "@jsenv/logger"
2
2
 
3
- export const createResolveError = ({ pluginController, reference, error }) => {
4
- const createFailedToResolveError = ({
5
- code = error.code || "RESOLVE_ERROR",
3
+ export const createResolveUrlError = ({
4
+ pluginController,
5
+ reference,
6
+ error,
7
+ }) => {
8
+ const createFailedToResolveUrlError = ({
9
+ code = error.code || "RESOLVE_URL_ERROR",
6
10
  reason,
7
11
  ...details
8
12
  }) => {
9
13
  const resolveError = new Error(
10
- createDetailedMessage(`Failed to resolve specifier`, {
14
+ createDetailedMessage(`Failed to resolve url reference`, {
11
15
  reason,
12
16
  ...details,
13
17
  "specifier": `"${reference.specifier}"`,
@@ -15,35 +19,35 @@ export const createResolveError = ({ pluginController, reference, error }) => {
15
19
  ...detailsFromPluginController(pluginController),
16
20
  }),
17
21
  )
18
- resolveError.name = "RESOLVE_ERROR"
22
+ resolveError.name = "RESOLVE_URL_ERROR"
19
23
  resolveError.code = code
20
24
  resolveError.reason = reason
21
25
  return resolveError
22
26
  }
23
27
  if (error.message === "NO_RESOLVE") {
24
- return createFailedToResolveError({
25
- reason: `no plugin has handled the specifier during "resolve" hook`,
28
+ return createFailedToResolveUrlError({
29
+ reason: `no plugin has handled the specifier during "resolveUrl" hook`,
26
30
  })
27
31
  }
28
- return createFailedToResolveError({
32
+ return createFailedToResolveUrlError({
29
33
  reason: `An error occured during specifier resolution`,
30
34
  ...detailsFromValueThrown(error),
31
35
  })
32
36
  }
33
37
 
34
- export const createLoadError = ({
38
+ export const createFetchUrlContentError = ({
35
39
  pluginController,
36
40
  reference,
37
41
  urlInfo,
38
42
  error,
39
43
  }) => {
40
- const createFailedToLoadError = ({
41
- code = error.code || "LOAD_ERROR",
44
+ const createFailedToFetchUrlContentError = ({
45
+ code = error.code || "FETCH_URL_CONTENT_ERROR",
42
46
  reason,
43
47
  ...details
44
48
  }) => {
45
- const loadError = new Error(
46
- createDetailedMessage(`Failed to load url`, {
49
+ const fetchContentError = new Error(
50
+ createDetailedMessage(`Failed to fetch url content`, {
47
51
  reason,
48
52
  ...details,
49
53
  "url": urlInfo.url,
@@ -51,98 +55,90 @@ export const createLoadError = ({
51
55
  ...detailsFromPluginController(pluginController),
52
56
  }),
53
57
  )
54
- loadError.name = "LOAD_ERROR"
55
- loadError.code = code
56
- loadError.reason = reason
57
- return loadError
58
+ fetchContentError.name = "FETCH_URL_CONTENT_ERROR"
59
+ fetchContentError.code = code
60
+ fetchContentError.reason = reason
61
+ return fetchContentError
58
62
  }
59
63
 
60
- if (error.message === "NO_LOAD") {
61
- return createFailedToLoadError({
62
- code: "NOT_FOUND",
63
- reason: `no plugin has handled the url during "load" hook`,
64
- })
65
- }
66
64
  if (error.code === "EPERM") {
67
- return createFailedToLoadError({
65
+ return createFailedToFetchUrlContentError({
68
66
  code: "NOT_ALLOWED",
69
67
  reason: `not allowed to read entry on filesystem`,
70
68
  })
71
69
  }
72
- if (error.code === "EISDIR") {
73
- return createFailedToLoadError({
74
- code: "EISDIR",
70
+ if (error.code === "DIRECTORY_REFERENCE_NOT_ALLOWED") {
71
+ return createFailedToFetchUrlContentError({
72
+ code: "DIRECTORY_REFERENCE_NOT_ALLOWED",
75
73
  reason: `found a directory on filesystem`,
76
74
  })
77
75
  }
78
76
  if (error.code === "ENOENT") {
79
- return createFailedToLoadError({
77
+ return createFailedToFetchUrlContentError({
80
78
  code: "NOT_FOUND",
81
79
  reason: "no entry on filesystem",
82
80
  })
83
81
  }
84
- return createFailedToLoadError({
85
- reason: `An error occured during "load"`,
86
- ...detailsFromValueThrown(error),
87
- })
88
- }
89
-
90
- export const createParseError = ({ reference, urlInfo, error }) => {
91
- const createFailedToParseError = ({
92
- code = error.code || "PARSE_ERROR",
93
- reason,
94
- ...details
95
- }) => {
96
- const parseError = new Error(
97
- createDetailedMessage(`Failed to parse ${urlInfo.type}`, {
98
- reason,
99
- ...details,
100
- "url": urlInfo.url,
101
- "url reference trace": reference.trace,
102
- }),
103
- )
104
- parseError.name = "PARSE_ERROR"
105
- parseError.code = code
106
- parseError.reason = reason
107
- return parseError
108
- }
109
- return createFailedToParseError({
110
- reason: `An error occured while parsing content`,
82
+ return createFailedToFetchUrlContentError({
83
+ reason: `An error occured during "fetchUrlContent"`,
111
84
  ...detailsFromValueThrown(error),
112
85
  })
113
86
  }
114
87
 
115
- export const createTransformError = ({
88
+ export const createTransformUrlContentError = ({
116
89
  pluginController,
117
90
  reference,
118
91
  urlInfo,
119
92
  error,
120
93
  }) => {
121
94
  const createFailedToTransformError = ({
122
- code = error.code || "TRANSFORM_ERROR",
95
+ code = error.code || "TRANSFORM_URL_CONTENT_ERROR",
123
96
  reason,
124
97
  ...details
125
98
  }) => {
126
99
  const transformError = new Error(
127
- createDetailedMessage(`Failed to transform ${urlInfo.type}`, {
128
- reason,
129
- ...details,
130
- "url": urlInfo.url,
131
- "url reference trace": reference.trace,
132
- ...detailsFromPluginController(pluginController),
133
- }),
100
+ createDetailedMessage(
101
+ `Failed to transform url content of "${urlInfo.type}"`,
102
+ {
103
+ reason,
104
+ ...details,
105
+ "url": urlInfo.url,
106
+ "url reference trace": reference.trace,
107
+ ...detailsFromPluginController(pluginController),
108
+ },
109
+ ),
134
110
  )
135
- transformError.name = "TRANSFORM_ERROR"
111
+ transformError.name = "TRANSFORM_URL_CONTENT_ERROR"
136
112
  transformError.code = code
137
113
  transformError.reason = reason
138
114
  return transformError
139
115
  }
140
116
  return createFailedToTransformError({
141
- reason: `An error occured during "transform"`,
117
+ reason: `An error occured during "transformUrlContent"`,
142
118
  ...detailsFromValueThrown(error),
143
119
  })
144
120
  }
145
121
 
122
+ export const createFinalizeUrlContentError = ({
123
+ pluginController,
124
+ reference,
125
+ urlInfo,
126
+ error,
127
+ }) => {
128
+ const finalizeError = new Error(
129
+ createDetailedMessage(`Failed to finalize ${urlInfo.type} url content`, {
130
+ "reason": `An error occured during "finalizeUrlContent"`,
131
+ ...detailsFromValueThrown(error),
132
+ "url": urlInfo.url,
133
+ "url reference trace": reference.trace,
134
+ ...detailsFromPluginController(pluginController),
135
+ }),
136
+ )
137
+ finalizeError.name = "FINALIZE_URL_CONTENT_ERROR"
138
+ finalizeError.reason = `An error occured during "finalizeUrlContent"`
139
+ return finalizeError
140
+ }
141
+
146
142
  const detailsFromPluginController = (pluginController) => {
147
143
  const currentPlugin = pluginController.getCurrentPlugin()
148
144
  if (!currentPlugin) {
@@ -0,0 +1,24 @@
1
+ import { validateResponseIntegrity } from "@jsenv/integrity"
2
+
3
+ export const assertFetchedContentCompliance = ({ reference, urlInfo }) => {
4
+ const { expectedContentType } = reference
5
+ if (expectedContentType && urlInfo.contentType !== expectedContentType) {
6
+ throw new Error(
7
+ `Unexpected content-type on url: got "${urlInfo.contentType}" instead of "${expectedContentType}"`,
8
+ )
9
+ }
10
+ const { expectedType } = reference
11
+ if (expectedType && urlInfo.type !== expectedType) {
12
+ throw new Error(
13
+ `Unexpected type on url: got "${urlInfo.type}" instead of "${expectedType}"`,
14
+ )
15
+ }
16
+ const { integrity } = reference
17
+ if (integrity) {
18
+ validateResponseIntegrity({
19
+ url: urlInfo.url,
20
+ type: "basic",
21
+ dataRepresentation: urlInfo.content,
22
+ })
23
+ }
24
+ }
@@ -1,59 +1,17 @@
1
- import { fileSystemPathToUrl, urlToFileSystemPath } from "@jsenv/filesystem"
1
+ import { fileSystemPathToUrl, urlToFileSystemPath } from "@jsenv/urls"
2
2
 
3
3
  export const fileUrlConverter = {
4
- asUrlWithoutSpecialParams: (fileUrl) => {
5
- const urlObject = new URL(fileUrl)
6
- let { origin, pathname, searchParams, hash } = urlObject
7
- // origin is "null" for "file://" urls with Node.js
8
- if (origin === "null" && urlObject.href.startsWith("file:")) {
9
- origin = "file://"
10
- }
11
- if (searchParams.has("json_module")) {
12
- searchParams.delete("json_module")
13
- return `${origin}${pathname}.json_module${stringifyQuery(
14
- searchParams,
15
- )}${hash}`
16
- }
17
- if (searchParams.has("css_module")) {
18
- searchParams.delete("css_module")
19
- return `${origin}${pathname}.css_module${stringifyQuery(
20
- searchParams,
21
- )}${hash}`
22
- }
23
- if (searchParams.has("text_module")) {
24
- searchParams.delete("text_module")
25
- return `${origin}${pathname}.text_module${stringifyQuery(
26
- searchParams,
27
- )}${hash}`
28
- }
29
- return fileUrl
30
- },
31
4
  asFilePath: (fileUrl) => {
32
- const fileUrlWithoutSpecialParam =
33
- fileUrlConverter.asUrlWithoutSpecialParams(fileUrl)
34
- const filePath = urlToFileSystemPath(fileUrlWithoutSpecialParam)
35
- return filePath
5
+ const filePath = urlToFileSystemPath(fileUrl)
6
+ const urlObject = new URL(fileUrl)
7
+ const { searchParams } = urlObject
8
+ return `${filePath}${stringifyQuery(searchParams)}`
36
9
  },
37
10
  asFileUrl: (filePath) => {
38
- if (filePath.endsWith(".json_module")) {
39
- const jsonFileUrl = fileSystemPathToUrl(
40
- filePath.slice(0, -".json_module".length),
41
- )
42
- return `${jsonFileUrl}?json_module`
43
- }
44
- if (filePath.endsWith(".css_module")) {
45
- const cssFileUrl = fileSystemPathToUrl(
46
- filePath.slice(0, -".css_module".length),
47
- )
48
- return `${cssFileUrl}?css_module`
49
- }
50
- if (filePath.endsWith(".text_module")) {
51
- const textFileUrl = fileSystemPathToUrl(
52
- filePath.slice(0, -".text_module".length),
53
- )
54
- return `${textFileUrl}?text_module`
55
- }
56
- return fileSystemPathToUrl(filePath)
11
+ return decodeURIComponent(fileSystemPathToUrl(filePath)).replace(
12
+ /[=](?=&|$)/g,
13
+ "",
14
+ )
57
15
  },
58
16
  }
59
17