@jsenv/core 27.0.0-alpha.8 → 27.0.0-alpha.82

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 (254) 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/applyDecs/applyDecs.js +756 -0
  5. package/dist/babel_helpers/arrayLikeToArray/arrayLikeToArray.js +9 -0
  6. package/dist/babel_helpers/arrayWithHoles/arrayWithHoles.js +4 -0
  7. package/dist/babel_helpers/arrayWithoutHoles/arrayWithoutHoles.js +5 -0
  8. package/dist/babel_helpers/assertThisInitialized/assertThisInitialized.js +8 -0
  9. package/dist/babel_helpers/asyncGeneratorDelegate/asyncGeneratorDelegate.js +52 -0
  10. package/dist/babel_helpers/asyncIterator/asyncIterator.js +78 -0
  11. package/dist/babel_helpers/asyncToGenerator/asyncToGenerator.js +39 -0
  12. package/dist/babel_helpers/awaitAsyncGenerator/awaitAsyncGenerator.js +4 -0
  13. package/dist/babel_helpers/classApplyDescriptorDestructureSet/classApplyDescriptorDestructureSet.js +24 -0
  14. package/dist/babel_helpers/classApplyDescriptorGet/classApplyDescriptorGet.js +7 -0
  15. package/dist/babel_helpers/classApplyDescriptorSet/classApplyDescriptorSet.js +14 -0
  16. package/dist/babel_helpers/classCallCheck/classCallCheck.js +5 -0
  17. package/dist/babel_helpers/classCheckPrivateStaticAccess/classCheckPrivateStaticAccess.js +5 -0
  18. package/dist/babel_helpers/classCheckPrivateStaticFieldDescriptor/classCheckPrivateStaticFieldDescriptor.js +6 -0
  19. package/dist/babel_helpers/classExtractFieldDescriptor/classExtractFieldDescriptor.js +8 -0
  20. package/dist/babel_helpers/classNameTDZError/classNameTDZError.js +4 -0
  21. package/dist/babel_helpers/classPrivateFieldDestructureSet/classPrivateFieldDestructureSet.js +6 -0
  22. package/dist/babel_helpers/classPrivateFieldGet/classPrivateFieldGet.js +6 -0
  23. package/dist/babel_helpers/classPrivateFieldLooseBase/classPrivateFieldLooseBase.js +7 -0
  24. package/dist/babel_helpers/classPrivateFieldLooseKey/classPrivateFieldLooseKey.js +5 -0
  25. package/dist/babel_helpers/classPrivateFieldSet/classPrivateFieldSet.js +7 -0
  26. package/dist/babel_helpers/classPrivateMethodGet/classPrivateMethodGet.js +7 -0
  27. package/dist/babel_helpers/classPrivateMethodSet/classPrivateMethodSet.js +3 -0
  28. package/dist/babel_helpers/classStaticPrivateFieldSpecGet/classStaticPrivateFieldSpecGet.js +8 -0
  29. package/dist/babel_helpers/classStaticPrivateFieldSpecSet/classStaticPrivateFieldSpecSet.js +9 -0
  30. package/dist/babel_helpers/classStaticPrivateMethodGet/classStaticPrivateMethodGet.js +5 -0
  31. package/dist/babel_helpers/classStaticPrivateMethodSet/classStaticPrivateMethodSet.js +3 -0
  32. package/dist/babel_helpers/construct/construct.js +15 -0
  33. package/dist/babel_helpers/createClass/createClass.js +18 -0
  34. package/dist/babel_helpers/createForOfIteratorHelper/createForOfIteratorHelper.js +63 -0
  35. package/dist/babel_helpers/createForOfIteratorHelperLoose/createForOfIteratorHelperLoose.js +22 -0
  36. package/dist/babel_helpers/createRawReactElement/createRawReactElement.js +50 -0
  37. package/dist/babel_helpers/createSuper/createSuper.js +22 -0
  38. package/dist/babel_helpers/decorate/decorate.js +622 -0
  39. package/dist/babel_helpers/defaults/defaults.js +14 -0
  40. package/dist/babel_helpers/defineEnumerableProperties/defineEnumerableProperties.js +26 -0
  41. package/dist/babel_helpers/defineProperty/defineProperty.js +19 -0
  42. package/dist/babel_helpers/extends/extends.js +16 -0
  43. package/dist/babel_helpers/get/get.js +21 -0
  44. package/dist/babel_helpers/getPrototypeOf/getPrototypeOf.js +2 -0
  45. package/dist/babel_helpers/identity/identity.js +3 -0
  46. package/dist/babel_helpers/inherits/inherits.js +21 -0
  47. package/dist/babel_helpers/inheritsLoose/inheritsLoose.js +6 -0
  48. package/dist/babel_helpers/initializerDefineProperty/initializerDefineProperty.js +10 -0
  49. package/dist/babel_helpers/initializerWarningHelper/initializerWarningHelper.js +3 -0
  50. package/dist/babel_helpers/instanceof/instanceof.js +7 -0
  51. package/dist/babel_helpers/interopRequireDefault/interopRequireDefault.js +5 -0
  52. package/dist/babel_helpers/interopRequireWildcard/interopRequireWildcard.js +49 -0
  53. package/dist/babel_helpers/isNativeFunction/isNativeFunction.js +4 -0
  54. package/dist/babel_helpers/isNativeReflectConstruct/isNativeReflectConstruct.js +21 -0
  55. package/dist/babel_helpers/iterableToArray/iterableToArray.js +3 -0
  56. package/dist/babel_helpers/iterableToArrayLimit/iterableToArrayLimit.js +38 -0
  57. package/dist/babel_helpers/iterableToArrayLimitLoose/iterableToArrayLimitLoose.js +13 -0
  58. package/dist/babel_helpers/jsx/jsx.js +49 -0
  59. package/dist/babel_helpers/maybeArrayLike/maybeArrayLike.js +10 -0
  60. package/dist/babel_helpers/newArrowCheck/newArrowCheck.js +5 -0
  61. package/dist/babel_helpers/nonIterableRest/nonIterableRest.js +3 -0
  62. package/dist/babel_helpers/nonIterableSpread/nonIterableSpread.js +3 -0
  63. package/dist/babel_helpers/objectDestructuringEmpty/objectDestructuringEmpty.js +3 -0
  64. package/dist/babel_helpers/objectSpread/objectSpread.js +22 -0
  65. package/dist/babel_helpers/objectSpread2/objectSpread2.js +41 -0
  66. package/dist/babel_helpers/objectWithoutProperties/objectWithoutProperties.js +20 -0
  67. package/dist/babel_helpers/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js +15 -0
  68. package/dist/babel_helpers/possibleConstructorReturn/possibleConstructorReturn.js +10 -0
  69. package/dist/babel_helpers/readOnlyError/readOnlyError.js +4 -0
  70. package/dist/babel_helpers/set/set.js +51 -0
  71. package/dist/babel_helpers/setPrototypeOf/setPrototypeOf.js +5 -0
  72. package/dist/babel_helpers/skipFirstGeneratorNext/skipFirstGeneratorNext.js +8 -0
  73. package/dist/babel_helpers/slicedToArray/slicedToArray.js +5 -0
  74. package/dist/babel_helpers/slicedToArrayLoose/slicedToArrayLoose.js +7 -0
  75. package/dist/babel_helpers/superPropBase/superPropBase.js +10 -0
  76. package/dist/babel_helpers/taggedTemplateLiteral/taggedTemplateLiteral.js +11 -0
  77. package/dist/babel_helpers/taggedTemplateLiteralLoose/taggedTemplateLiteralLoose.js +8 -0
  78. package/dist/babel_helpers/tdz/tdz.js +4 -0
  79. package/dist/babel_helpers/temporalRef/temporalRef.js +5 -0
  80. package/dist/babel_helpers/temporalUndefined/temporalUndefined.js +3 -0
  81. package/dist/babel_helpers/toArray/toArray.js +5 -0
  82. package/dist/babel_helpers/toConsumableArray/toConsumableArray.js +5 -0
  83. package/dist/babel_helpers/toPrimitive/toPrimitive.js +14 -0
  84. package/dist/babel_helpers/toPropertyKey/toPropertyKey.js +5 -0
  85. package/dist/babel_helpers/typeof/typeof.js +7 -0
  86. package/dist/babel_helpers/unsupportedIterableToArray/unsupportedIterableToArray.js +10 -0
  87. package/dist/babel_helpers/wrapAsyncGenerator/wrapAsyncGenerator.js +7 -0
  88. package/dist/babel_helpers/wrapNativeSuper/wrapNativeSuper.js +35 -0
  89. package/dist/babel_helpers/wrapRegExp/wrapRegExp.js +67 -0
  90. package/dist/babel_helpers/writeOnlyError/writeOnlyError.js +4 -0
  91. package/dist/html/explorer.html +557 -0
  92. package/dist/js/controllable_file.mjs +227 -0
  93. package/dist/js/event_source_client.js +324 -0
  94. package/dist/js/global_this.js +32 -0
  95. package/dist/js/html_supervisor_installer.js +522 -0
  96. package/dist/js/html_supervisor_setup.js +82 -0
  97. package/dist/js/import_meta_hot.js +84 -0
  98. package/dist/js/inline_content.js +8 -0
  99. package/dist/js/new_stylesheet.js +409 -0
  100. package/dist/js/regenerator_runtime.js +721 -0
  101. package/dist/js/s.js +429 -0
  102. package/dist/main.js +13422 -0
  103. package/dist/other/jsenv.png +0 -0
  104. package/dist/s.js +626 -0
  105. package/dist/s.js.map +204 -0
  106. package/package.json +57 -51
  107. package/readme.md +6 -14
  108. package/src/build/build.js +1074 -563
  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 +210 -0
  115. package/src/dev/plugins/explorer/client/explorer.html +1 -1
  116. package/src/dev/plugins/explorer/jsenv_plugin_explorer.js +9 -13
  117. package/src/dev/plugins/toolbar/jsenv_plugin_toolbar.js +3 -1
  118. package/src/dev/start_dev_server.js +165 -38
  119. package/src/execute/execute.js +35 -8
  120. package/src/execute/run.js +21 -57
  121. package/src/execute/runtimes/browsers/from_playwright.js +220 -150
  122. package/src/execute/runtimes/node/child_exec_options.js +1 -1
  123. package/src/execute/runtimes/node/controllable_file.mjs +26 -10
  124. package/src/execute/runtimes/node/kill_process_tree.js +2 -4
  125. package/src/execute/runtimes/node/node_execution_performance.js +67 -0
  126. package/src/execute/runtimes/node/node_process.js +288 -39
  127. package/src/main.js +27 -0
  128. package/src/omega/{runtime_support/features_compatibility.js → compat/features_compats.js} +30 -7
  129. package/src/omega/{runtime_support/runtime_support.js → compat/runtime_compat.js} +14 -16
  130. package/src/omega/errors.js +63 -67
  131. package/src/omega/fetched_content_compliance.js +24 -0
  132. package/src/omega/file_url_converter.js +9 -51
  133. package/src/omega/kitchen.js +605 -467
  134. package/src/omega/omega_server.js +2 -3
  135. package/src/omega/server/file_service.js +88 -41
  136. package/src/omega/server/user_agent.js +5 -6
  137. package/src/omega/url_graph/url_graph_load.js +31 -23
  138. package/src/omega/url_graph/url_graph_report.js +94 -51
  139. package/src/omega/url_graph/url_info_transformations.js +37 -17
  140. package/src/omega/url_graph.js +88 -19
  141. package/src/omega/url_specifier_encoding.js +59 -0
  142. package/src/omega/web_workers.js +42 -0
  143. package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/autoreload_preference.js +0 -0
  144. package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/event_source_client.js +19 -12
  145. package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/reload.js +0 -0
  146. package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/url_helpers.js +0 -0
  147. package/src/plugins/autoreload/dev_sse/jsenv_plugin_dev_sse_client.js +41 -0
  148. package/src/plugins/autoreload/dev_sse/jsenv_plugin_dev_sse_server.js +204 -0
  149. package/src/plugins/autoreload/jsenv_plugin_autoreload.js +25 -0
  150. package/src/plugins/autoreload/jsenv_plugin_hmr.js +35 -0
  151. package/src/plugins/bundling/css/bundle_css.js +140 -0
  152. package/src/plugins/bundling/js_classic_workers/bundle_js_classic_workers.js +13 -0
  153. package/src/plugins/bundling/js_module/bundle_js_module.js +343 -0
  154. package/src/plugins/bundling/jsenv_plugin_bundling.js +54 -0
  155. package/src/plugins/cache_control/jsenv_plugin_cache_control.js +34 -0
  156. package/src/{omega/core_plugins → plugins}/commonjs_globals/jsenv_plugin_commonjs_globals.js +54 -41
  157. package/src/plugins/file_urls/jsenv_plugin_file_urls.js +183 -0
  158. package/src/{omega/core_plugins → plugins}/html_supervisor/client/error_in_document.js +0 -0
  159. package/src/{omega/core_plugins → plugins}/html_supervisor/client/error_in_notification.js +0 -0
  160. package/src/plugins/html_supervisor/client/html_supervisor_installer.js +254 -0
  161. package/src/plugins/html_supervisor/client/html_supervisor_setup.js +82 -0
  162. package/src/{omega/core_plugins → plugins}/html_supervisor/client/perf_browser.js +0 -0
  163. package/src/{omega/core_plugins → plugins}/html_supervisor/client/uneval_exception.js +0 -0
  164. package/src/{omega/core_plugins → plugins}/html_supervisor/jsenv_plugin_html_supervisor.js +73 -55
  165. package/src/plugins/http_urls/jsenv_plugin_http_urls.js +12 -0
  166. package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/babel_plugin_metadata_import_meta_hot.js +4 -5
  167. package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/client/import_meta_hot.js +3 -1
  168. package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/html_hot_dependencies.js +7 -4
  169. package/src/plugins/import_meta_hot/jsenv_plugin_import_meta_hot.js +100 -0
  170. package/src/{omega/core_plugins → plugins}/import_meta_scenarios/jsenv_plugin_import_meta_scenarios.js +33 -8
  171. package/src/plugins/import_meta_url/client/import_meta_url_browser.js +52 -0
  172. package/src/plugins/import_meta_url/client/import_meta_url_commonjs.mjs +9 -0
  173. package/src/{omega/core_plugins → plugins}/importmap/jsenv_plugin_importmap.js +40 -36
  174. package/src/plugins/inject_globals/inject_globals.js +57 -0
  175. package/src/plugins/inject_globals/jsenv_plugin_inject_globals.js +24 -0
  176. package/src/{omega/core_plugins → plugins}/inline/client/inline_content.js +0 -0
  177. package/src/{omega/core_plugins → plugins}/inline/jsenv_plugin_data_urls.js +22 -21
  178. package/src/plugins/inline/jsenv_plugin_html_inline_content.js +161 -0
  179. package/src/plugins/inline/jsenv_plugin_inline.js +36 -0
  180. package/src/{omega/core_plugins → plugins}/inline/jsenv_plugin_inline_query_param.js +8 -11
  181. package/src/plugins/inline/jsenv_plugin_js_inline_content.js +294 -0
  182. package/src/plugins/leading_slash/jsenv_plugin_leading_slash.js +13 -0
  183. package/src/plugins/minification/css/minify_css.js +9 -0
  184. package/src/plugins/minification/html/minify_html.js +13 -0
  185. package/src/{build/plugins/minify_js/jsenv_plugin_minify_js.js → plugins/minification/js/minify_js.js} +6 -22
  186. package/src/plugins/minification/jsenv_plugin_minification.js +78 -0
  187. package/src/plugins/minification/json/minify_json.js +8 -0
  188. package/src/plugins/node_esm_resolution/jsenv_plugin_node_esm_resolution.js +162 -0
  189. package/src/plugins/node_runtime/jsenv_plugin_node_runtime.js +12 -0
  190. package/src/{omega → plugins}/plugin_controller.js +57 -12
  191. package/src/plugins/plugins.js +89 -0
  192. package/src/plugins/transpilation/as_js_classic/client/s.js +429 -0
  193. package/src/plugins/transpilation/as_js_classic/helpers/babel_plugin_transform_import_meta_url.js +47 -0
  194. package/src/plugins/transpilation/as_js_classic/helpers/systemjs_old.js +43 -0
  195. package/src/plugins/transpilation/as_js_classic/jsenv_plugin_as_js_classic.js +211 -0
  196. package/src/plugins/transpilation/as_js_classic/jsenv_plugin_as_js_classic_html.js +304 -0
  197. package/src/plugins/transpilation/as_js_classic/jsenv_plugin_as_js_classic_workers.js +55 -0
  198. package/src/{omega/core_plugins → plugins/transpilation}/babel/global_this/babel_plugin_global_this_as_jsenv_import.js +0 -0
  199. package/src/{omega/core_plugins → plugins/transpilation}/babel/global_this/client/global_this.js +0 -0
  200. package/src/{omega/core_plugins → plugins/transpilation}/babel/helpers/babel_plugin_babel_helpers_as_jsenv_imports.js +0 -0
  201. package/src/{omega/core_plugins → plugins/transpilation}/babel/helpers/babel_plugin_structure.js +14 -17
  202. package/src/{omega/core_plugins → plugins/transpilation}/babel/helpers/babel_plugins_compatibility.js +0 -0
  203. package/src/{omega/core_plugins → plugins/transpilation}/babel/jsenv_plugin_babel.js +39 -32
  204. package/src/{omega/core_plugins → plugins/transpilation}/babel/new_stylesheet/babel_plugin_new_stylesheet_as_jsenv_import.js +30 -6
  205. package/src/{omega/core_plugins → plugins/transpilation}/babel/new_stylesheet/client/new_stylesheet.js +0 -0
  206. package/src/{omega/core_plugins → plugins/transpilation}/babel/regenerator_runtime/babel_plugin_regenerator_runtime_as_jsenv_import.js +0 -0
  207. package/src/{omega/core_plugins → plugins/transpilation}/babel/regenerator_runtime/client/regenerator_runtime.js +0 -0
  208. package/src/plugins/transpilation/babel/require_babel_plugin.js +8 -0
  209. package/src/plugins/transpilation/css_parcel/jsenv_plugin_css_parcel.js +18 -0
  210. package/src/plugins/transpilation/import_assertions/jsenv_plugin_import_assertions.js +184 -0
  211. package/src/plugins/transpilation/jsenv_plugin_top_level_await.js +79 -0
  212. package/src/plugins/transpilation/jsenv_plugin_transpilation.js +46 -0
  213. package/src/plugins/url_analysis/css/css_urls.js +49 -0
  214. package/src/plugins/url_analysis/html/html_urls.js +272 -0
  215. package/src/plugins/url_analysis/js/js_urls.js +68 -0
  216. package/src/plugins/url_analysis/jsenv_plugin_url_analysis.js +103 -0
  217. package/src/plugins/url_analysis/webmanifest/webmanifest_urls.js +20 -0
  218. package/src/{omega/core_plugins → plugins}/url_resolution/jsenv_plugin_url_resolution.js +9 -5
  219. package/src/plugins/url_version/jsenv_plugin_url_version.js +28 -0
  220. package/src/require_from_jsenv.js +3 -0
  221. package/src/test/execute_plan.js +85 -44
  222. package/src/test/execute_test_plan.js +37 -25
  223. package/src/test/execution_steps.js +2 -5
  224. package/src/test/logs_file_execution.js +56 -49
  225. package/main.js +0 -19
  226. package/src/build/plugins/bundle_js_module/jsenv_plugin_bundle_js_module.js +0 -227
  227. package/src/build/plugins/minify_html/jsenv_plugin_minify_html.js +0 -30
  228. package/src/dev/plugins/autoreload/client/event_source_connection.js +0 -195
  229. package/src/dev/plugins/autoreload/jsenv_plugin_autoreload.js +0 -374
  230. package/src/dev/plugins/autoreload/sse_service.js +0 -149
  231. package/src/execute/runtimes/node/controlled_process.js +0 -316
  232. package/src/omega/core_plugins/babel/new_stylesheet/client/.eslintrc.cjs +0 -24
  233. package/src/omega/core_plugins/file_urls/jsenv_plugin_file_urls.js +0 -67
  234. package/src/omega/core_plugins/filesystem_magic/jsenv_plugin_filesystem_magic.js +0 -58
  235. package/src/omega/core_plugins/html_supervisor/client/html_supervisor_installer.js +0 -168
  236. package/src/omega/core_plugins/html_supervisor/client/html_supervisor_setup.js +0 -77
  237. package/src/omega/core_plugins/import_assertions/helpers/babel_plugin_metadata_import_assertions.js +0 -98
  238. package/src/omega/core_plugins/import_assertions/helpers/json_module.js +0 -12
  239. package/src/omega/core_plugins/import_assertions/helpers/text_module.js +0 -6
  240. package/src/omega/core_plugins/import_assertions/jsenv_plugin_import_assertions.js +0 -211
  241. package/src/omega/core_plugins/inline/jsenv_plugin_inline.js +0 -13
  242. package/src/omega/core_plugins/inline/jsenv_plugin_js_and_css_inside_html.js +0 -142
  243. package/src/omega/core_plugins/inline/jsenv_plugin_new_inline_content.js +0 -207
  244. package/src/omega/core_plugins/leading_slash/jsenv_plugin_leading_slash.js +0 -12
  245. package/src/omega/core_plugins/node_esm_resolution/jsenv_plugin_node_esm_resolution.js +0 -77
  246. package/src/omega/core_plugins/url_version/jsenv_plugin_url_version.js +0 -50
  247. package/src/omega/core_plugins.js +0 -39
  248. package/src/omega/runtime_support/default_runtime_support.js +0 -13
  249. package/src/omega/url_graph/url_graph_sort.js +0 -29
  250. package/src/omega/url_mentions/css_url_mentions.js +0 -63
  251. package/src/omega/url_mentions/html_url_mentions.js +0 -185
  252. package/src/omega/url_mentions/js_module_url_mentions.js +0 -91
  253. package/src/omega/url_mentions/parse_url_mentions.js +0 -37
  254. package/src/omega/url_mentions/worker_classic_url_mentions.js +0 -37
@@ -0,0 +1,35 @@
1
+ import getPrototypeOf from "../getPrototypeOf/getPrototypeOf.js";
2
+ import setPrototypeOf from "../setPrototypeOf/setPrototypeOf.js";
3
+ import isNativeFunction from "../isNativeFunction/isNativeFunction.js";
4
+ import construct from "../construct/construct.js";
5
+
6
+ var _cache = typeof Map === "function" ? new Map() : undefined;
7
+
8
+ export default function (Class) {
9
+ if (Class === null || !isNativeFunction(Class)) return Class;
10
+
11
+ if (typeof Class !== "function") {
12
+ throw new TypeError("Super expression must either be null or a function");
13
+ }
14
+
15
+ if (typeof _cache !== "undefined") {
16
+ if (_cache.has(Class)) return _cache.get(Class);
17
+
18
+ _cache.set(Class, Wrapper);
19
+ }
20
+
21
+ function Wrapper() {
22
+ // eslint-disable-next-line prefer-rest-params
23
+ return construct(Class, arguments, getPrototypeOf(this).constructor);
24
+ }
25
+
26
+ Wrapper.prototype = Object.create(Class.prototype, {
27
+ constructor: {
28
+ value: Wrapper,
29
+ enumerable: false,
30
+ writable: true,
31
+ configurable: true
32
+ }
33
+ });
34
+ return setPrototypeOf(Wrapper, Class);
35
+ }
@@ -0,0 +1,67 @@
1
+ import setPrototypeOf from "../setPrototypeOf/setPrototypeOf.js";
2
+ import inherits from "../inherits/inherits.js";
3
+ export default function _wrapRegExp() {
4
+ _wrapRegExp = function (re, groups) {
5
+ return new BabelRegExp(re, undefined, groups);
6
+ };
7
+
8
+ var _super = RegExp.prototype;
9
+
10
+ var _groups = new WeakMap();
11
+
12
+ function BabelRegExp(re, flags, groups) {
13
+ var _this = new RegExp(re, flags); // if the regex is recreated with 'g' flag
14
+
15
+
16
+ _groups.set(_this, groups || _groups.get(re));
17
+
18
+ return setPrototypeOf(_this, BabelRegExp.prototype);
19
+ }
20
+
21
+ inherits(BabelRegExp, RegExp);
22
+
23
+ BabelRegExp.prototype.exec = function (str) {
24
+ var result = _super.exec.call(this, str);
25
+
26
+ if (result) result.groups = buildGroups(result, this);
27
+ return result;
28
+ };
29
+
30
+ BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {
31
+ if (typeof substitution === "string") {
32
+ var groups = _groups.get(this);
33
+
34
+ return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) {
35
+ return "$" + groups[name];
36
+ }));
37
+ } else if (typeof substitution === "function") {
38
+ var _this = this;
39
+
40
+ return _super[Symbol.replace].call(this, str, function () {
41
+ var args = arguments; // Modern engines already pass result.groups returned by exec() as the last arg.
42
+
43
+ if (typeof args[args.length - 1] !== "object") {
44
+ args = [].slice.call(args);
45
+ args.push(buildGroups(args, _this));
46
+ }
47
+
48
+ return substitution.apply(this, args);
49
+ });
50
+ } else {
51
+ return _super[Symbol.replace].call(this, str, substitution);
52
+ }
53
+ };
54
+
55
+ function buildGroups(result, re) {
56
+ // NOTE: This function should return undefined if there are no groups,
57
+ // but in that case Babel doesn't add the wrapper anyway.
58
+ var g = _groups.get(re);
59
+
60
+ return Object.keys(g).reduce(function (groups, name) {
61
+ groups[name] = result[g[name]];
62
+ return groups;
63
+ }, Object.create(null));
64
+ }
65
+
66
+ return _wrapRegExp.apply(this, arguments);
67
+ }
@@ -0,0 +1,4 @@
1
+ export default function (name) {
2
+ // eslint-disable-next-line prefer-template
3
+ throw new TypeError(name + " is write-only");
4
+ }
@@ -0,0 +1,557 @@
1
+ <!DOCTYPE html><html><head>
2
+ <title>Exploring</title>
3
+ <meta name="viewport" content="width=device-width, initial-scale=1">
4
+ <meta charset="utf-8">
5
+ <link rel="icon" href="virtual:FAVICON_HREF">
6
+ <style>button:focus, a:focus, input:focus, [data-contains-hidden-input] input:focus + * {
7
+ outline-offset: -2px;
8
+ outline-style: none;
9
+ }
10
+
11
+ [data-contains-hidden-input] input:focus + * {
12
+ outline-offset: -2px;
13
+ outline-width: 4px;
14
+ }
15
+
16
+ html[data-last-interaction="keyboard"] button:focus, html[data-last-interaction="keyboard"] a:focus, html[data-last-interaction="keyboard"] input:focus, html[data-last-interaction="keyboard"] [data-contains-hidden-input] input:focus + * {
17
+ outline-style: auto;
18
+ }
19
+
20
+ html[data-last-interaction="keyboard"] [data-contains-hidden-input] input:focus + * {
21
+ outline-color: #0096ff;
22
+ }
23
+
24
+ @-moz-document url-prefix() {
25
+ html[data-last-interaction="keyboard"] button:focus, html[data-last-interaction="keyboard"] a:focus, html[data-last-interaction="keyboard"] input:focus, html[data-last-interaction="keyboard"] [data-input-customized] input:focus + * {
26
+ outline-offset: 0;
27
+ outline: 2px solid #0096ff;
28
+ }
29
+ }
30
+
31
+ ::-moz-focus-inner {
32
+ border: 0;
33
+ }
34
+ </style>
35
+ <style>* {
36
+ box-sizing: border-box;
37
+ }
38
+
39
+ [data-force-hide] {
40
+ display: none !important;
41
+ }
42
+
43
+ html, body {
44
+ flex-direction: column;
45
+ flex: 1;
46
+ margin: 0;
47
+ padding: 0;
48
+ display: flex;
49
+ }
50
+
51
+ html {
52
+ height: 100%;
53
+ font-family: arial, sans;
54
+ }
55
+
56
+ main {
57
+ flex-direction: column;
58
+ flex: 1;
59
+ display: flex;
60
+ }
61
+
62
+ main > * {
63
+ min-width: 100%;
64
+ flex: 1;
65
+ }
66
+
67
+ hr {
68
+ color: #000;
69
+ background-color: #000;
70
+ border-color: #000;
71
+ margin: 15px 0;
72
+ }
73
+
74
+ article[data-page="file-list"] {
75
+ color: #97a0a0;
76
+ background-color: #204143;
77
+ }
78
+
79
+ nav, #explorables-message {
80
+ background: #1f262c;
81
+ }
82
+
83
+ #explorables nav {
84
+ overflow: hidden;
85
+ }
86
+
87
+ #explorables-message {
88
+ overflow: auto;
89
+ }
90
+
91
+ article h2 {
92
+ margin: 0;
93
+ display: flex;
94
+ }
95
+
96
+ article h2 svg {
97
+ margin-right: 15px;
98
+ }
99
+
100
+ #main_html_file {
101
+ padding: 25px 25px 0;
102
+ }
103
+
104
+ #main_file_link {
105
+ color: #e7f2f3;
106
+ }
107
+
108
+ h2 {
109
+ color: #24b1b0;
110
+ margin: 20px 0;
111
+ display: inline-block;
112
+ }
113
+
114
+ h4 {
115
+ color: #97a0a0;
116
+ padding: 0 25px;
117
+ font-size: 15px;
118
+ font-weight: normal;
119
+ }
120
+
121
+ #explorables {
122
+ word-break: break-word;
123
+ }
124
+
125
+ #explorables-header {
126
+ width: 100%;
127
+ position: sticky;
128
+ top: 0;
129
+ }
130
+
131
+ #explorables_header_and_menu {
132
+ background-color: #204143;
133
+ padding-top: 25px;
134
+ padding-left: 25px;
135
+ padding-right: 25px;
136
+ }
137
+
138
+ #explorables_header_bottom_spacing {
139
+ height: 20px;
140
+ background: #1f262c;
141
+ }
142
+
143
+ #directory_relative_url {
144
+ color: orange;
145
+ }
146
+
147
+ #explorables ul {
148
+ margin: 0;
149
+ padding: 0 25px 25px;
150
+ }
151
+
152
+ #explorables li {
153
+ margin: 10px 0;
154
+ list-style-type: none;
155
+ }
156
+
157
+ #explorables li:first-child {
158
+ margin-top: 0;
159
+ }
160
+
161
+ #explorables li .execution-link {
162
+ width: 100%;
163
+ word-break: break-all;
164
+ }
165
+
166
+ .execution-link {
167
+ color: #e7f2f3;
168
+ text-decoration: unset;
169
+ background: #204143;
170
+ padding: 6px 12px;
171
+ font-family: monospace;
172
+ font-size: 14px;
173
+ display: inline-block;
174
+ }
175
+
176
+ #main_file_icon {
177
+ fill: #24b1b0;
178
+ }
179
+
180
+ #fileIconSvgConfig {
181
+ width: 25px;
182
+ height: 25px;
183
+ stroke: none;
184
+ fill: #24b1b0;
185
+ }
186
+
187
+ #explorables fieldset {
188
+ border: none;
189
+ margin: 0;
190
+ padding: 0;
191
+ }
192
+
193
+ #explorables fieldset label {
194
+ padding: 0;
195
+ display: inline-block;
196
+ }
197
+
198
+ #explorables fieldset input {
199
+ opacity: 0;
200
+ position: absolute;
201
+ }
202
+
203
+ #explorables fieldset label input + * {
204
+ min-width: 8em;
205
+ text-align: center;
206
+ background-color: #204143;
207
+ border-radius: .1em;
208
+ padding: .7em 1em;
209
+ display: block;
210
+ }
211
+
212
+ #explorables fieldset input:checked + * {
213
+ color: orange;
214
+ background: #1f262c;
215
+ }
216
+
217
+ .menu-wrapper {
218
+ max-width: 100%;
219
+ margin-top: 25px;
220
+ transition: all .3s;
221
+ position: relative;
222
+ overflow: hidden;
223
+ }
224
+
225
+ .menu {
226
+ box-sizing: border-box;
227
+ white-space: nowrap;
228
+ -webkit-overflow-scrolling: touch;
229
+ overflow: auto hidden;
230
+ }
231
+
232
+ .menu .item {
233
+ height: 100%;
234
+ box-sizing: border-box;
235
+ padding: 1em;
236
+ display: inline-block;
237
+ }
238
+
239
+ .paddle {
240
+ height: 36px;
241
+ color: #1f262c;
242
+ background: #24b1b0;
243
+ border: none;
244
+ position: absolute;
245
+ bottom: 0;
246
+ }
247
+
248
+ .left-paddle {
249
+ left: 0;
250
+ }
251
+
252
+ .right-paddle {
253
+ right: 0;
254
+ }
255
+
256
+ .hidden {
257
+ display: none;
258
+ }
259
+ </style>
260
+ </head>
261
+
262
+ <body>
263
+ <main></main>
264
+ <div style="display: none">
265
+ <article data-page="file-list">
266
+ <!--
267
+ <section id="main_html_file">
268
+ <h2>
269
+ <svg id="main_file_icon" viewBox="0 0 16 16" width="25px" height="25px">
270
+ <path
271
+ d="M15.45,7L14,5.551V2c0-0.55-0.45-1-1-1h-1c-0.55,0-1,0.45-1,1v0.553L9,0.555C8.727,0.297,8.477,0,8,0S7.273,0.297,7,0.555 L0.55,7C0.238,7.325,0,7.562,0,8c0,0.563,0.432,1,1,1h1v6c0,0.55,0.45,1,1,1h3v-5c0-0.55,0.45-1,1-1h2c0.55,0,1,0.45,1,1v5h3 c0.55,0,1-0.45,1-1V9h1c0.568,0,1-0.437,1-1C16,7.562,15.762,7.325,15.45,7z"
272
+ />
273
+ </svg>
274
+ <span
275
+ >Main html file:
276
+ <a id="main_file_link" href="javascript:void(0)">${mainFileRelativeUrl}</a></span
277
+ >
278
+ </h2>
279
+ <div>
280
+ <iframe id="main_file_iframe" src="about:blank"></iframe>
281
+ </div>
282
+ </section>
283
+ <hr />
284
+ !-->
285
+ <section id="explorables">
286
+ <div id="explorables-header">
287
+ <div id="explorables_header_and_menu">
288
+ <h2 style="white-space: nowrap">
289
+ <svg id="fileIconSvgConfig" viewBox="0 0 24 24" width="32" height="32">
290
+ <path d="M0 0h24v24H0V0z" fill="none"></path>
291
+ <path d="M8 16h8v2H8zm0-4h8v2H8zm6-10H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11z"></path>
292
+ </svg>
293
+ <span>File(s) to explore in
294
+ <span id="directory_relative_url" title="${directoryUrl}">${directoryName}</span></span>
295
+ </h2>
296
+ <div class="menu-wrapper">
297
+ <fieldset id="filter-group-set" class="menu"></fieldset>
298
+ </div>
299
+ <div class="paddles">
300
+ <button class="left-paddle paddle hidden">&lt;</button>
301
+ <button class="right-paddle paddle">&gt;</button>
302
+ </div>
303
+ </div>
304
+ <div id="explorables_header_bottom_spacing"></div>
305
+ </div>
306
+ <div>
307
+ <div id="explorables-message">
308
+ <h4 style="margin-top: 0">${message}</h4>
309
+ </div>
310
+ <nav>
311
+ <ul></ul>
312
+ </nav>
313
+ </div>
314
+ </section>
315
+ </article>
316
+ </div>
317
+ <script>
318
+ // eslint-disable-next-line no-undef
319
+ const { rootDirectoryUrl, groups, files } = SERVER_PARAMS
320
+
321
+ const groupPreference = {
322
+ has: () => localStorage.hasOwnProperty("explorer_active_group"),
323
+ get: () =>
324
+ localStorage.hasOwnProperty("explorer_active_group")
325
+ ? JSON.parse(localStorage.getItem("explorer_active_group"))
326
+ : undefined,
327
+ set: (value) =>
328
+ localStorage.setItem("explorer_active_group", JSON.stringify(value)),
329
+ }
330
+ const directoryNameFromUrl = (directoryUrl) => {
331
+ const slashLastIndex = directoryUrl.lastIndexOf(
332
+ "/",
333
+ // ignore last slash
334
+ directoryUrl.length - 2,
335
+ )
336
+ if (slashLastIndex === -1) return ""
337
+ return directoryUrl.slice(slashLastIndex + 1)
338
+ }
339
+ const urlToVisitFromRelativeUrl = (relativeUrl) => {
340
+ return `${window.origin}/${relativeUrl}`
341
+ }
342
+
343
+ const fileListElement = document
344
+ .querySelector(`[data-page="file-list"]`)
345
+ .cloneNode(true)
346
+ const directoryName = directoryNameFromUrl(rootDirectoryUrl)
347
+ const span = fileListElement.querySelector("#directory_relative_url")
348
+ span.title = rootDirectoryUrl
349
+ span.textContent = directoryName
350
+
351
+ const h4 = fileListElement.querySelector("h4")
352
+ const ul = fileListElement.querySelector("ul")
353
+ ul.innerHTML = files
354
+ .map(
355
+ (file) =>
356
+ `<li>
357
+ <a
358
+ class="execution-link"
359
+ data-relative-url=${file.relativeUrl}
360
+ href=${urlToVisitFromRelativeUrl(file.relativeUrl)}
361
+ >
362
+ ${file.relativeUrl}
363
+ </a>
364
+ </li>`,
365
+ )
366
+ .join("")
367
+
368
+ const groupFieldset = fileListElement.querySelector("#filter-group-set")
369
+ const groupNames = Object.keys(groups)
370
+ groupFieldset.innerHTML = groupNames
371
+ .map(
372
+ (key) => `<label data-contains-hidden-input class="item">
373
+ <input type="radio" name="filter-group" value="${key}"/>
374
+ <span>${key}</span>
375
+ </label>`,
376
+ )
377
+ .join("")
378
+
379
+ const groupFromLocalStorage = groupPreference.get()
380
+ const currentGroup =
381
+ groupFromLocalStorage && groupNames.includes(groupFromLocalStorage)
382
+ ? groupFromLocalStorage
383
+ : groupNames[0]
384
+ Array.from(groupFieldset.querySelectorAll("input")).forEach(
385
+ (inputRadio) => {
386
+ inputRadio.checked = inputRadio.value === currentGroup
387
+ inputRadio.onchange = () => {
388
+ if (inputRadio.checked) {
389
+ groupPreference.set(inputRadio.value)
390
+ enableGroup(inputRadio.value)
391
+ }
392
+ }
393
+ },
394
+ )
395
+
396
+ const enableGroup = (groupName) => {
397
+ const arrayOfElementToShow = []
398
+ const arrayOfElementToHide = []
399
+ files.forEach((file) => {
400
+ const fileLink = fileListElement.querySelector(
401
+ `a[data-relative-url="${file.relativeUrl}"]`,
402
+ )
403
+ const fileLi = fileLink.parentNode
404
+ if (file.meta[groupName]) {
405
+ arrayOfElementToShow.push(fileLi)
406
+ } else {
407
+ arrayOfElementToHide.push(fileLi)
408
+ }
409
+ })
410
+ arrayOfElementToShow.forEach((element) => {
411
+ element.removeAttribute("data-force-hide")
412
+ })
413
+ arrayOfElementToHide.forEach((element) => {
414
+ element.setAttribute("data-force-hide", "")
415
+ })
416
+
417
+ h4.innerHTML =
418
+ arrayOfElementToShow.length === 0
419
+ ? `No file found.
420
+ Config for this section: <pre>${JSON.stringify(
421
+ groups[groupName],
422
+ null,
423
+ " ",
424
+ )}</pre>`
425
+ : `${arrayOfElementToShow.length} files found. Click on the one you want to execute`
426
+ }
427
+ enableGroup(currentGroup)
428
+
429
+ document.querySelector("main").appendChild(fileListElement)
430
+ </script>
431
+ <script>
432
+ // make menu scrollable
433
+ const getMenuWrapperSize = () => {
434
+ return document.querySelector(".menu-wrapper").getBoundingClientRect()
435
+ .width
436
+ }
437
+ const getMenuSize = () => {
438
+ return document.querySelector(".menu").getBoundingClientRect().width
439
+ }
440
+ const getMenuPosition = () => {
441
+ return document.querySelector(".menu-wrapper").scrollLeft
442
+ }
443
+
444
+ let menuWrapperSize = getMenuWrapperSize()
445
+ let menuSize = getMenuSize()
446
+ const menuVisibleSize = menuWrapperSize
447
+ let menuInvisibleSize = menuSize - menuVisibleSize
448
+ const scrollDuration = 300
449
+ const leftPaddle = document.querySelector(".left-paddle")
450
+ const rightPaddle = document.querySelector(".right-paddle")
451
+
452
+ const handleMenuScroll = () => {
453
+ menuInvisibleSize = menuSize - menuWrapperSize
454
+ const menuPosition = getMenuPosition()
455
+ const menuEndOffset = menuInvisibleSize
456
+ // show & hide the paddles, depending on scroll position
457
+ if (menuPosition <= 0 && menuEndOffset <= 0) {
458
+ // hide both paddles if the window is large enough to display all tabs
459
+ leftPaddle.classList.add("hidden")
460
+ rightPaddle.classList.add("hidden")
461
+ } else if (menuPosition <= 0) {
462
+ leftPaddle.classList.add("hidden")
463
+ rightPaddle.classList.remove("hidden")
464
+ } else if (menuPosition < Math.floor(menuEndOffset)) {
465
+ // show both paddles in the middle
466
+ leftPaddle.classList.remove("hidden")
467
+ rightPaddle.classList.remove("hidden")
468
+ } else if (menuPosition >= Math.floor(menuEndOffset)) {
469
+ leftPaddle.classList.remove("hidden")
470
+ rightPaddle.classList.add("hidden")
471
+ }
472
+ }
473
+ handleMenuScroll()
474
+
475
+ window.onresize = () => {
476
+ menuWrapperSize = getMenuWrapperSize()
477
+ menuSize = getMenuSize()
478
+ handleMenuScroll()
479
+ }
480
+ // finally, what happens when we are actually scrolling the menu
481
+ document.querySelector(".menu-wrapper").onscroll = () => {
482
+ handleMenuScroll()
483
+ }
484
+
485
+ const startJavaScriptAnimation = ({
486
+ duration = 300,
487
+ timingFunction = (t) => t,
488
+ onProgress = () => {},
489
+ onCancel = () => {},
490
+ onComplete = () => {},
491
+ }) => {
492
+ duration = parseInt(duration, 10)
493
+ const startMs = performance.now()
494
+ let currentRequestAnimationFrameId
495
+ let done = false
496
+ let rawProgress = 0
497
+ let progress = 0
498
+ const handler = () => {
499
+ currentRequestAnimationFrameId = null
500
+ const nowMs = performance.now()
501
+ rawProgress = Math.min((nowMs - startMs) / duration, 1)
502
+ progress = timingFunction(rawProgress)
503
+ done = rawProgress === 1
504
+ onProgress({
505
+ done,
506
+ rawProgress,
507
+ progress,
508
+ })
509
+ if (done) {
510
+ onComplete()
511
+ } else {
512
+ currentRequestAnimationFrameId =
513
+ window.requestAnimationFrame(handler)
514
+ }
515
+ }
516
+ handler()
517
+ const stop = () => {
518
+ if (currentRequestAnimationFrameId) {
519
+ window.cancelAnimationFrame(currentRequestAnimationFrameId)
520
+ currentRequestAnimationFrameId = null
521
+ }
522
+ if (!done) {
523
+ done = true
524
+ onCancel({
525
+ rawProgress,
526
+ progress,
527
+ })
528
+ }
529
+ }
530
+ return stop
531
+ }
532
+ rightPaddle.onclick = () => {
533
+ const scrollStart = document.querySelector(".menu-wrapper").scrollLeft
534
+ const scrollEnd = scrollStart + menuWrapperSize
535
+ startJavaScriptAnimation({
536
+ duration: scrollDuration,
537
+ onProgress: ({ progress }) => {
538
+ document.querySelector(".menu-wrapper").scrollLeft =
539
+ scrollStart + (scrollEnd - scrollStart) * progress
540
+ },
541
+ })
542
+ }
543
+ leftPaddle.onclick = () => {
544
+ const scrollStart = document.querySelector(".menu-wrapper").scrollLeft
545
+ const scrollEnd = scrollStart - menuWrapperSize
546
+ startJavaScriptAnimation({
547
+ duration: scrollDuration,
548
+ onProgress: ({ progress }) => {
549
+ document.querySelector(".menu-wrapper").scrollLeft =
550
+ scrollStart + (scrollEnd - scrollStart) * progress
551
+ },
552
+ })
553
+ }
554
+ </script>
555
+
556
+
557
+ </body></html>