@venos-inc/venos 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1552) hide show
  1. package/dist/index.js +120 -68
  2. package/etc/mcp-server/bin.js +0 -0
  3. package/etc/mcp-server/client.js +7 -0
  4. package/etc/mcp-server/device.js +122 -0
  5. package/etc/mcp-server/node_modules/@babel/code-frame/LICENSE +22 -0
  6. package/etc/mcp-server/node_modules/@babel/code-frame/README.md +19 -0
  7. package/etc/mcp-server/node_modules/@babel/code-frame/lib/index.js +217 -0
  8. package/etc/mcp-server/node_modules/@babel/code-frame/lib/index.js.map +1 -0
  9. package/etc/mcp-server/node_modules/@babel/code-frame/package.json +32 -0
  10. package/etc/mcp-server/node_modules/@babel/compat-data/LICENSE +22 -0
  11. package/etc/mcp-server/node_modules/@babel/compat-data/README.md +19 -0
  12. package/etc/mcp-server/node_modules/@babel/compat-data/corejs2-built-ins.js +2 -0
  13. package/etc/mcp-server/node_modules/@babel/compat-data/corejs3-shipped-proposals.js +2 -0
  14. package/etc/mcp-server/node_modules/@babel/compat-data/data/corejs2-built-ins.json +2120 -0
  15. package/etc/mcp-server/node_modules/@babel/compat-data/data/corejs3-shipped-proposals.json +5 -0
  16. package/etc/mcp-server/node_modules/@babel/compat-data/data/native-modules.json +18 -0
  17. package/etc/mcp-server/node_modules/@babel/compat-data/data/overlapping-plugins.json +38 -0
  18. package/etc/mcp-server/node_modules/@babel/compat-data/data/plugin-bugfixes.json +231 -0
  19. package/etc/mcp-server/node_modules/@babel/compat-data/data/plugins.json +843 -0
  20. package/etc/mcp-server/node_modules/@babel/compat-data/native-modules.js +2 -0
  21. package/etc/mcp-server/node_modules/@babel/compat-data/overlapping-plugins.js +2 -0
  22. package/etc/mcp-server/node_modules/@babel/compat-data/package.json +40 -0
  23. package/etc/mcp-server/node_modules/@babel/compat-data/plugin-bugfixes.js +2 -0
  24. package/etc/mcp-server/node_modules/@babel/compat-data/plugins.js +2 -0
  25. package/etc/mcp-server/node_modules/@babel/core/LICENSE +22 -0
  26. package/etc/mcp-server/node_modules/@babel/core/README.md +19 -0
  27. package/etc/mcp-server/node_modules/@babel/core/lib/config/cache-contexts.js +5 -0
  28. package/etc/mcp-server/node_modules/@babel/core/lib/config/cache-contexts.js.map +1 -0
  29. package/etc/mcp-server/node_modules/@babel/core/lib/config/caching.js +261 -0
  30. package/etc/mcp-server/node_modules/@babel/core/lib/config/caching.js.map +1 -0
  31. package/etc/mcp-server/node_modules/@babel/core/lib/config/config-chain.js +469 -0
  32. package/etc/mcp-server/node_modules/@babel/core/lib/config/config-chain.js.map +1 -0
  33. package/etc/mcp-server/node_modules/@babel/core/lib/config/config-descriptors.js +190 -0
  34. package/etc/mcp-server/node_modules/@babel/core/lib/config/config-descriptors.js.map +1 -0
  35. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/configuration.js +290 -0
  36. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/configuration.js.map +1 -0
  37. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/import.cjs +6 -0
  38. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/import.cjs.map +1 -0
  39. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/index-browser.js +58 -0
  40. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/index-browser.js.map +1 -0
  41. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/index.js +78 -0
  42. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/index.js.map +1 -0
  43. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/module-types.js +203 -0
  44. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/module-types.js.map +1 -0
  45. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/package.js +61 -0
  46. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/package.js.map +1 -0
  47. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/plugins.js +220 -0
  48. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/plugins.js.map +1 -0
  49. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/types.js +5 -0
  50. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/types.js.map +1 -0
  51. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/utils.js +36 -0
  52. package/etc/mcp-server/node_modules/@babel/core/lib/config/files/utils.js.map +1 -0
  53. package/etc/mcp-server/node_modules/@babel/core/lib/config/full.js +312 -0
  54. package/etc/mcp-server/node_modules/@babel/core/lib/config/full.js.map +1 -0
  55. package/etc/mcp-server/node_modules/@babel/core/lib/config/helpers/config-api.js +85 -0
  56. package/etc/mcp-server/node_modules/@babel/core/lib/config/helpers/config-api.js.map +1 -0
  57. package/etc/mcp-server/node_modules/@babel/core/lib/config/helpers/deep-array.js +23 -0
  58. package/etc/mcp-server/node_modules/@babel/core/lib/config/helpers/deep-array.js.map +1 -0
  59. package/etc/mcp-server/node_modules/@babel/core/lib/config/helpers/environment.js +12 -0
  60. package/etc/mcp-server/node_modules/@babel/core/lib/config/helpers/environment.js.map +1 -0
  61. package/etc/mcp-server/node_modules/@babel/core/lib/config/index.js +87 -0
  62. package/etc/mcp-server/node_modules/@babel/core/lib/config/index.js.map +1 -0
  63. package/etc/mcp-server/node_modules/@babel/core/lib/config/item.js +67 -0
  64. package/etc/mcp-server/node_modules/@babel/core/lib/config/item.js.map +1 -0
  65. package/etc/mcp-server/node_modules/@babel/core/lib/config/partial.js +158 -0
  66. package/etc/mcp-server/node_modules/@babel/core/lib/config/partial.js.map +1 -0
  67. package/etc/mcp-server/node_modules/@babel/core/lib/config/pattern-to-regex.js +38 -0
  68. package/etc/mcp-server/node_modules/@babel/core/lib/config/pattern-to-regex.js.map +1 -0
  69. package/etc/mcp-server/node_modules/@babel/core/lib/config/plugin.js +33 -0
  70. package/etc/mcp-server/node_modules/@babel/core/lib/config/plugin.js.map +1 -0
  71. package/etc/mcp-server/node_modules/@babel/core/lib/config/printer.js +113 -0
  72. package/etc/mcp-server/node_modules/@babel/core/lib/config/printer.js.map +1 -0
  73. package/etc/mcp-server/node_modules/@babel/core/lib/config/resolve-targets-browser.js +41 -0
  74. package/etc/mcp-server/node_modules/@babel/core/lib/config/resolve-targets-browser.js.map +1 -0
  75. package/etc/mcp-server/node_modules/@babel/core/lib/config/resolve-targets.js +61 -0
  76. package/etc/mcp-server/node_modules/@babel/core/lib/config/resolve-targets.js.map +1 -0
  77. package/etc/mcp-server/node_modules/@babel/core/lib/config/util.js +31 -0
  78. package/etc/mcp-server/node_modules/@babel/core/lib/config/util.js.map +1 -0
  79. package/etc/mcp-server/node_modules/@babel/core/lib/config/validation/option-assertions.js +277 -0
  80. package/etc/mcp-server/node_modules/@babel/core/lib/config/validation/option-assertions.js.map +1 -0
  81. package/etc/mcp-server/node_modules/@babel/core/lib/config/validation/options.js +187 -0
  82. package/etc/mcp-server/node_modules/@babel/core/lib/config/validation/options.js.map +1 -0
  83. package/etc/mcp-server/node_modules/@babel/core/lib/config/validation/plugins.js +67 -0
  84. package/etc/mcp-server/node_modules/@babel/core/lib/config/validation/plugins.js.map +1 -0
  85. package/etc/mcp-server/node_modules/@babel/core/lib/config/validation/removed.js +68 -0
  86. package/etc/mcp-server/node_modules/@babel/core/lib/config/validation/removed.js.map +1 -0
  87. package/etc/mcp-server/node_modules/@babel/core/lib/errors/config-error.js +18 -0
  88. package/etc/mcp-server/node_modules/@babel/core/lib/errors/config-error.js.map +1 -0
  89. package/etc/mcp-server/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js +98 -0
  90. package/etc/mcp-server/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js.map +1 -0
  91. package/etc/mcp-server/node_modules/@babel/core/lib/gensync-utils/async.js +90 -0
  92. package/etc/mcp-server/node_modules/@babel/core/lib/gensync-utils/async.js.map +1 -0
  93. package/etc/mcp-server/node_modules/@babel/core/lib/gensync-utils/fs.js +31 -0
  94. package/etc/mcp-server/node_modules/@babel/core/lib/gensync-utils/fs.js.map +1 -0
  95. package/etc/mcp-server/node_modules/@babel/core/lib/gensync-utils/functional.js +58 -0
  96. package/etc/mcp-server/node_modules/@babel/core/lib/gensync-utils/functional.js.map +1 -0
  97. package/etc/mcp-server/node_modules/@babel/core/lib/index.js +230 -0
  98. package/etc/mcp-server/node_modules/@babel/core/lib/index.js.map +1 -0
  99. package/etc/mcp-server/node_modules/@babel/core/lib/parse.js +45 -0
  100. package/etc/mcp-server/node_modules/@babel/core/lib/parse.js.map +1 -0
  101. package/etc/mcp-server/node_modules/@babel/core/lib/parser/index.js +85 -0
  102. package/etc/mcp-server/node_modules/@babel/core/lib/parser/index.js.map +1 -0
  103. package/etc/mcp-server/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js +337 -0
  104. package/etc/mcp-server/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js.map +1 -0
  105. package/etc/mcp-server/node_modules/@babel/core/lib/tools/build-external-helpers.js +144 -0
  106. package/etc/mcp-server/node_modules/@babel/core/lib/tools/build-external-helpers.js.map +1 -0
  107. package/etc/mcp-server/node_modules/@babel/core/lib/transform-ast.js +48 -0
  108. package/etc/mcp-server/node_modules/@babel/core/lib/transform-ast.js.map +1 -0
  109. package/etc/mcp-server/node_modules/@babel/core/lib/transform-file-browser.js +23 -0
  110. package/etc/mcp-server/node_modules/@babel/core/lib/transform-file-browser.js.map +1 -0
  111. package/etc/mcp-server/node_modules/@babel/core/lib/transform-file.js +40 -0
  112. package/etc/mcp-server/node_modules/@babel/core/lib/transform-file.js.map +1 -0
  113. package/etc/mcp-server/node_modules/@babel/core/lib/transform.js +47 -0
  114. package/etc/mcp-server/node_modules/@babel/core/lib/transform.js.map +1 -0
  115. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js +84 -0
  116. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js.map +1 -0
  117. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs +4 -0
  118. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs.map +1 -0
  119. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/file/file.js +204 -0
  120. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/file/file.js.map +1 -0
  121. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/file/generate.js +84 -0
  122. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/file/generate.js.map +1 -0
  123. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/file/merge-map.js +37 -0
  124. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/file/merge-map.js.map +1 -0
  125. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/index.js +90 -0
  126. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/index.js.map +1 -0
  127. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/normalize-file.js +113 -0
  128. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/normalize-file.js.map +1 -0
  129. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/normalize-opts.js +59 -0
  130. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/normalize-opts.js.map +1 -0
  131. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/plugin-pass.js +48 -0
  132. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/plugin-pass.js.map +1 -0
  133. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/read-input-source-map-file-browser.js +12 -0
  134. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/read-input-source-map-file-browser.js.map +1 -0
  135. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/read-input-source-map-file.js +88 -0
  136. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/read-input-source-map-file.js.map +1 -0
  137. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/util/clone-deep.js +54 -0
  138. package/etc/mcp-server/node_modules/@babel/core/lib/transformation/util/clone-deep.js.map +1 -0
  139. package/etc/mcp-server/node_modules/@babel/core/lib/vendor/import-meta-resolve.js +1042 -0
  140. package/etc/mcp-server/node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map +1 -0
  141. package/etc/mcp-server/node_modules/@babel/core/node_modules/.bin/json5 +17 -0
  142. package/etc/mcp-server/node_modules/@babel/core/node_modules/.bin/parser +17 -0
  143. package/etc/mcp-server/node_modules/@babel/core/node_modules/.bin/semver +17 -0
  144. package/etc/mcp-server/node_modules/@babel/core/package.json +84 -0
  145. package/etc/mcp-server/node_modules/@babel/core/src/config/files/index-browser.ts +115 -0
  146. package/etc/mcp-server/node_modules/@babel/core/src/config/files/index.ts +30 -0
  147. package/etc/mcp-server/node_modules/@babel/core/src/config/resolve-targets-browser.ts +42 -0
  148. package/etc/mcp-server/node_modules/@babel/core/src/config/resolve-targets.ts +54 -0
  149. package/etc/mcp-server/node_modules/@babel/core/src/transform-file-browser.ts +33 -0
  150. package/etc/mcp-server/node_modules/@babel/core/src/transform-file.ts +56 -0
  151. package/etc/mcp-server/node_modules/@babel/core/src/transformation/read-input-source-map-file-browser.ts +5 -0
  152. package/etc/mcp-server/node_modules/@babel/core/src/transformation/read-input-source-map-file.ts +89 -0
  153. package/etc/mcp-server/node_modules/@babel/generator/LICENSE +22 -0
  154. package/etc/mcp-server/node_modules/@babel/generator/README.md +19 -0
  155. package/etc/mcp-server/node_modules/@babel/generator/lib/buffer.js +247 -0
  156. package/etc/mcp-server/node_modules/@babel/generator/lib/buffer.js.map +1 -0
  157. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/base.js +86 -0
  158. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/base.js.map +1 -0
  159. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/classes.js +215 -0
  160. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/classes.js.map +1 -0
  161. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/deprecated.js +73 -0
  162. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/deprecated.js.map +1 -0
  163. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/expressions.js +309 -0
  164. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/expressions.js.map +1 -0
  165. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/flow.js +658 -0
  166. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/flow.js.map +1 -0
  167. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/index.js +128 -0
  168. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/index.js.map +1 -0
  169. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/jsx.js +124 -0
  170. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/jsx.js.map +1 -0
  171. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/methods.js +207 -0
  172. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/methods.js.map +1 -0
  173. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/modules.js +290 -0
  174. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/modules.js.map +1 -0
  175. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/statements.js +297 -0
  176. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/statements.js.map +1 -0
  177. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/template-literals.js +38 -0
  178. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/template-literals.js.map +1 -0
  179. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/types.js +183 -0
  180. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/types.js.map +1 -0
  181. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/typescript.js +726 -0
  182. package/etc/mcp-server/node_modules/@babel/generator/lib/generators/typescript.js.map +1 -0
  183. package/etc/mcp-server/node_modules/@babel/generator/lib/index.js +108 -0
  184. package/etc/mcp-server/node_modules/@babel/generator/lib/index.js.map +1 -0
  185. package/etc/mcp-server/node_modules/@babel/generator/lib/node/index.js +81 -0
  186. package/etc/mcp-server/node_modules/@babel/generator/lib/node/index.js.map +1 -0
  187. package/etc/mcp-server/node_modules/@babel/generator/lib/node/parentheses.js +298 -0
  188. package/etc/mcp-server/node_modules/@babel/generator/lib/node/parentheses.js.map +1 -0
  189. package/etc/mcp-server/node_modules/@babel/generator/lib/nodes.js +19 -0
  190. package/etc/mcp-server/node_modules/@babel/generator/lib/nodes.js.map +1 -0
  191. package/etc/mcp-server/node_modules/@babel/generator/lib/printer.js +783 -0
  192. package/etc/mcp-server/node_modules/@babel/generator/lib/printer.js.map +1 -0
  193. package/etc/mcp-server/node_modules/@babel/generator/lib/source-map.js +88 -0
  194. package/etc/mcp-server/node_modules/@babel/generator/lib/source-map.js.map +1 -0
  195. package/etc/mcp-server/node_modules/@babel/generator/lib/token-map.js +195 -0
  196. package/etc/mcp-server/node_modules/@babel/generator/lib/token-map.js.map +1 -0
  197. package/etc/mcp-server/node_modules/@babel/generator/node_modules/.bin/jsesc +17 -0
  198. package/etc/mcp-server/node_modules/@babel/generator/node_modules/.bin/parser +17 -0
  199. package/etc/mcp-server/node_modules/@babel/generator/package.json +39 -0
  200. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/LICENSE +22 -0
  201. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/README.md +19 -0
  202. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/lib/debug.js +28 -0
  203. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/lib/debug.js.map +1 -0
  204. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/lib/filter-items.js +67 -0
  205. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/lib/filter-items.js.map +1 -0
  206. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/lib/index.js +229 -0
  207. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/lib/index.js.map +1 -0
  208. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/lib/options.js +24 -0
  209. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/lib/options.js.map +1 -0
  210. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/lib/pretty.js +40 -0
  211. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/lib/pretty.js.map +1 -0
  212. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/lib/targets.js +28 -0
  213. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/lib/targets.js.map +1 -0
  214. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/lib/utils.js +58 -0
  215. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/lib/utils.js.map +1 -0
  216. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/node_modules/.bin/browserslist +17 -0
  217. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/node_modules/.bin/semver +17 -0
  218. package/etc/mcp-server/node_modules/@babel/helper-compilation-targets/package.json +43 -0
  219. package/etc/mcp-server/node_modules/@babel/helper-globals/LICENSE +22 -0
  220. package/etc/mcp-server/node_modules/@babel/helper-globals/README.md +19 -0
  221. package/etc/mcp-server/node_modules/@babel/helper-globals/data/browser-upper.json +911 -0
  222. package/etc/mcp-server/node_modules/@babel/helper-globals/data/builtin-lower.json +15 -0
  223. package/etc/mcp-server/node_modules/@babel/helper-globals/data/builtin-upper.json +51 -0
  224. package/etc/mcp-server/node_modules/@babel/helper-globals/package.json +32 -0
  225. package/etc/mcp-server/node_modules/@babel/helper-module-imports/LICENSE +22 -0
  226. package/etc/mcp-server/node_modules/@babel/helper-module-imports/README.md +19 -0
  227. package/etc/mcp-server/node_modules/@babel/helper-module-imports/lib/import-builder.js +122 -0
  228. package/etc/mcp-server/node_modules/@babel/helper-module-imports/lib/import-builder.js.map +1 -0
  229. package/etc/mcp-server/node_modules/@babel/helper-module-imports/lib/import-injector.js +304 -0
  230. package/etc/mcp-server/node_modules/@babel/helper-module-imports/lib/import-injector.js.map +1 -0
  231. package/etc/mcp-server/node_modules/@babel/helper-module-imports/lib/index.js +37 -0
  232. package/etc/mcp-server/node_modules/@babel/helper-module-imports/lib/index.js.map +1 -0
  233. package/etc/mcp-server/node_modules/@babel/helper-module-imports/lib/is-module.js +11 -0
  234. package/etc/mcp-server/node_modules/@babel/helper-module-imports/lib/is-module.js.map +1 -0
  235. package/etc/mcp-server/node_modules/@babel/helper-module-imports/package.json +28 -0
  236. package/etc/mcp-server/node_modules/@babel/helper-module-transforms/LICENSE +22 -0
  237. package/etc/mcp-server/node_modules/@babel/helper-module-transforms/README.md +19 -0
  238. package/etc/mcp-server/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js +46 -0
  239. package/etc/mcp-server/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js.map +1 -0
  240. package/etc/mcp-server/node_modules/@babel/helper-module-transforms/lib/get-module-name.js +46 -0
  241. package/etc/mcp-server/node_modules/@babel/helper-module-transforms/lib/get-module-name.js.map +1 -0
  242. package/etc/mcp-server/node_modules/@babel/helper-module-transforms/lib/index.js +396 -0
  243. package/etc/mcp-server/node_modules/@babel/helper-module-transforms/lib/index.js.map +1 -0
  244. package/etc/mcp-server/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js +31 -0
  245. package/etc/mcp-server/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js.map +1 -0
  246. package/etc/mcp-server/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js +362 -0
  247. package/etc/mcp-server/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js.map +1 -0
  248. package/etc/mcp-server/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js +360 -0
  249. package/etc/mcp-server/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js.map +1 -0
  250. package/etc/mcp-server/node_modules/@babel/helper-module-transforms/lib/rewrite-this.js +22 -0
  251. package/etc/mcp-server/node_modules/@babel/helper-module-transforms/lib/rewrite-this.js.map +1 -0
  252. package/etc/mcp-server/node_modules/@babel/helper-module-transforms/package.json +32 -0
  253. package/etc/mcp-server/node_modules/@babel/helper-plugin-utils/LICENSE +22 -0
  254. package/etc/mcp-server/node_modules/@babel/helper-plugin-utils/README.md +19 -0
  255. package/etc/mcp-server/node_modules/@babel/helper-plugin-utils/lib/index.js +74 -0
  256. package/etc/mcp-server/node_modules/@babel/helper-plugin-utils/lib/index.js.map +1 -0
  257. package/etc/mcp-server/node_modules/@babel/helper-plugin-utils/package.json +24 -0
  258. package/etc/mcp-server/node_modules/@babel/helper-string-parser/LICENSE +22 -0
  259. package/etc/mcp-server/node_modules/@babel/helper-string-parser/README.md +19 -0
  260. package/etc/mcp-server/node_modules/@babel/helper-string-parser/lib/index.js +295 -0
  261. package/etc/mcp-server/node_modules/@babel/helper-string-parser/lib/index.js.map +1 -0
  262. package/etc/mcp-server/node_modules/@babel/helper-string-parser/package.json +31 -0
  263. package/etc/mcp-server/node_modules/@babel/helper-validator-identifier/LICENSE +22 -0
  264. package/etc/mcp-server/node_modules/@babel/helper-validator-identifier/README.md +19 -0
  265. package/etc/mcp-server/node_modules/@babel/helper-validator-identifier/lib/identifier.js +70 -0
  266. package/etc/mcp-server/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map +1 -0
  267. package/etc/mcp-server/node_modules/@babel/helper-validator-identifier/lib/index.js +57 -0
  268. package/etc/mcp-server/node_modules/@babel/helper-validator-identifier/lib/index.js.map +1 -0
  269. package/etc/mcp-server/node_modules/@babel/helper-validator-identifier/lib/keyword.js +35 -0
  270. package/etc/mcp-server/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map +1 -0
  271. package/etc/mcp-server/node_modules/@babel/helper-validator-identifier/package.json +31 -0
  272. package/etc/mcp-server/node_modules/@babel/helper-validator-option/LICENSE +22 -0
  273. package/etc/mcp-server/node_modules/@babel/helper-validator-option/README.md +19 -0
  274. package/etc/mcp-server/node_modules/@babel/helper-validator-option/lib/find-suggestion.js +39 -0
  275. package/etc/mcp-server/node_modules/@babel/helper-validator-option/lib/find-suggestion.js.map +1 -0
  276. package/etc/mcp-server/node_modules/@babel/helper-validator-option/lib/index.js +21 -0
  277. package/etc/mcp-server/node_modules/@babel/helper-validator-option/lib/index.js.map +1 -0
  278. package/etc/mcp-server/node_modules/@babel/helper-validator-option/lib/validator.js +48 -0
  279. package/etc/mcp-server/node_modules/@babel/helper-validator-option/lib/validator.js.map +1 -0
  280. package/etc/mcp-server/node_modules/@babel/helper-validator-option/package.json +27 -0
  281. package/etc/mcp-server/node_modules/@babel/helpers/LICENSE +23 -0
  282. package/etc/mcp-server/node_modules/@babel/helpers/README.md +19 -0
  283. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/AwaitValue.js +11 -0
  284. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/AwaitValue.js.map +1 -0
  285. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/OverloadYield.js +12 -0
  286. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/OverloadYield.js.map +1 -0
  287. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/applyDecoratedDescriptor.js +31 -0
  288. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/applyDecoratedDescriptor.js.map +1 -0
  289. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/applyDecs.js +459 -0
  290. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/applyDecs.js.map +1 -0
  291. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/applyDecs2203.js +363 -0
  292. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/applyDecs2203.js.map +1 -0
  293. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/applyDecs2203R.js +376 -0
  294. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/applyDecs2203R.js.map +1 -0
  295. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/applyDecs2301.js +421 -0
  296. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/applyDecs2301.js.map +1 -0
  297. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js +235 -0
  298. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js.map +1 -0
  299. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/applyDecs2311.js +236 -0
  300. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/applyDecs2311.js.map +1 -0
  301. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/arrayLikeToArray.js +13 -0
  302. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/arrayLikeToArray.js.map +1 -0
  303. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/arrayWithHoles.js +11 -0
  304. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/arrayWithHoles.js.map +1 -0
  305. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/arrayWithoutHoles.js +12 -0
  306. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/arrayWithoutHoles.js.map +1 -0
  307. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/assertClassBrand.js +14 -0
  308. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/assertClassBrand.js.map +1 -0
  309. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/assertThisInitialized.js +14 -0
  310. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/assertThisInitialized.js.map +1 -0
  311. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/asyncGeneratorDelegate.js +52 -0
  312. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/asyncGeneratorDelegate.js.map +1 -0
  313. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/asyncIterator.js +72 -0
  314. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/asyncIterator.js.map +1 -0
  315. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/asyncToGenerator.js +38 -0
  316. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/asyncToGenerator.js.map +1 -0
  317. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/awaitAsyncGenerator.js +12 -0
  318. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/awaitAsyncGenerator.js.map +1 -0
  319. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/callSuper.js +15 -0
  320. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/callSuper.js.map +1 -0
  321. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/checkInRHS.js +14 -0
  322. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/checkInRHS.js.map +1 -0
  323. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/checkPrivateRedeclaration.js +13 -0
  324. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/checkPrivateRedeclaration.js.map +1 -0
  325. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classApplyDescriptorDestructureSet.js +25 -0
  326. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classApplyDescriptorDestructureSet.js.map +1 -0
  327. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classApplyDescriptorGet.js +14 -0
  328. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classApplyDescriptorGet.js.map +1 -0
  329. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classApplyDescriptorSet.js +18 -0
  330. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classApplyDescriptorSet.js.map +1 -0
  331. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classCallCheck.js +13 -0
  332. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classCallCheck.js.map +1 -0
  333. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classCheckPrivateStaticAccess.js +12 -0
  334. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classCheckPrivateStaticAccess.js.map +1 -0
  335. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classCheckPrivateStaticFieldDescriptor.js +13 -0
  336. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classCheckPrivateStaticFieldDescriptor.js.map +1 -0
  337. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classExtractFieldDescriptor.js +12 -0
  338. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classExtractFieldDescriptor.js.map +1 -0
  339. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classNameTDZError.js +11 -0
  340. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classNameTDZError.js.map +1 -0
  341. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateFieldDestructureSet.js +14 -0
  342. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateFieldDestructureSet.js.map +1 -0
  343. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateFieldGet.js +14 -0
  344. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateFieldGet.js.map +1 -0
  345. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateFieldGet2.js +12 -0
  346. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateFieldGet2.js.map +1 -0
  347. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateFieldInitSpec.js +13 -0
  348. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateFieldInitSpec.js.map +1 -0
  349. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateFieldLooseBase.js +14 -0
  350. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateFieldLooseBase.js.map +1 -0
  351. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateFieldLooseKey.js +12 -0
  352. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateFieldLooseKey.js.map +1 -0
  353. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateFieldSet.js +15 -0
  354. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateFieldSet.js.map +1 -0
  355. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateFieldSet2.js +13 -0
  356. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateFieldSet2.js.map +1 -0
  357. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateGetter.js +12 -0
  358. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateGetter.js.map +1 -0
  359. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateMethodGet.js +13 -0
  360. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateMethodGet.js.map +1 -0
  361. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateMethodInitSpec.js +13 -0
  362. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateMethodInitSpec.js.map +1 -0
  363. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateMethodSet.js +11 -0
  364. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateMethodSet.js.map +1 -0
  365. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateSetter.js +13 -0
  366. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classPrivateSetter.js.map +1 -0
  367. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classStaticPrivateFieldDestructureSet.js +16 -0
  368. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classStaticPrivateFieldDestructureSet.js.map +1 -0
  369. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classStaticPrivateFieldSpecGet.js +16 -0
  370. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classStaticPrivateFieldSpecGet.js.map +1 -0
  371. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classStaticPrivateFieldSpecSet.js +17 -0
  372. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classStaticPrivateFieldSpecSet.js.map +1 -0
  373. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classStaticPrivateMethodGet.js +13 -0
  374. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classStaticPrivateMethodGet.js.map +1 -0
  375. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classStaticPrivateMethodSet.js +11 -0
  376. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/classStaticPrivateMethodSet.js.map +1 -0
  377. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/construct.js +20 -0
  378. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/construct.js.map +1 -0
  379. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/createClass.js +26 -0
  380. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/createClass.js.map +1 -0
  381. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/createForOfIteratorHelper.js +64 -0
  382. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/createForOfIteratorHelper.js.map +1 -0
  383. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/createForOfIteratorHelperLoose.js +29 -0
  384. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/createForOfIteratorHelperLoose.js.map +1 -0
  385. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/createSuper.js +25 -0
  386. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/createSuper.js.map +1 -0
  387. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/decorate.js +350 -0
  388. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/decorate.js.map +1 -0
  389. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/defaults.js +18 -0
  390. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/defaults.js.map +1 -0
  391. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/defineAccessor.js +16 -0
  392. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/defineAccessor.js.map +1 -0
  393. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/defineEnumerableProperties.js +27 -0
  394. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/defineEnumerableProperties.js.map +1 -0
  395. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/defineProperty.js +23 -0
  396. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/defineProperty.js.map +1 -0
  397. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/dispose.js +47 -0
  398. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/dispose.js.map +1 -0
  399. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/extends.js +22 -0
  400. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/extends.js.map +1 -0
  401. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/get.js +25 -0
  402. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/get.js.map +1 -0
  403. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/getPrototypeOf.js +14 -0
  404. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/getPrototypeOf.js.map +1 -0
  405. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/identity.js +11 -0
  406. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/identity.js.map +1 -0
  407. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/importDeferProxy.js +35 -0
  408. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/importDeferProxy.js.map +1 -0
  409. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/inherits.js +25 -0
  410. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/inherits.js.map +1 -0
  411. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/inheritsLoose.js +14 -0
  412. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/inheritsLoose.js.map +1 -0
  413. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/initializerDefineProperty.js +17 -0
  414. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/initializerDefineProperty.js.map +1 -0
  415. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/initializerWarningHelper.js +11 -0
  416. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/initializerWarningHelper.js.map +1 -0
  417. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/instanceof.js +15 -0
  418. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/instanceof.js.map +1 -0
  419. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/interopRequireDefault.js +13 -0
  420. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/interopRequireDefault.js.map +1 -0
  421. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/interopRequireWildcard.js +44 -0
  422. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/interopRequireWildcard.js.map +1 -0
  423. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/isNativeFunction.js +15 -0
  424. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/isNativeFunction.js.map +1 -0
  425. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/isNativeReflectConstruct.js +16 -0
  426. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/isNativeReflectConstruct.js.map +1 -0
  427. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/iterableToArray.js +13 -0
  428. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/iterableToArray.js.map +1 -0
  429. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/iterableToArrayLimit.js +41 -0
  430. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/iterableToArrayLimit.js.map +1 -0
  431. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/jsx.js +47 -0
  432. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/jsx.js.map +1 -0
  433. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/maybeArrayLike.js +16 -0
  434. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/maybeArrayLike.js.map +1 -0
  435. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/newArrowCheck.js +13 -0
  436. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/newArrowCheck.js.map +1 -0
  437. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/nonIterableRest.js +11 -0
  438. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/nonIterableRest.js.map +1 -0
  439. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/nonIterableSpread.js +11 -0
  440. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/nonIterableSpread.js.map +1 -0
  441. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/nullishReceiverError.js +11 -0
  442. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/nullishReceiverError.js.map +1 -0
  443. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/objectDestructuringEmpty.js +11 -0
  444. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/objectDestructuringEmpty.js.map +1 -0
  445. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/objectSpread.js +24 -0
  446. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/objectSpread.js.map +1 -0
  447. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/objectSpread2.js +39 -0
  448. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/objectSpread2.js.map +1 -0
  449. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/objectWithoutProperties.js +24 -0
  450. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/objectWithoutProperties.js.map +1 -0
  451. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/objectWithoutPropertiesLoose.js +19 -0
  452. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/objectWithoutPropertiesLoose.js.map +1 -0
  453. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/possibleConstructorReturn.js +17 -0
  454. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/possibleConstructorReturn.js.map +1 -0
  455. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/readOnlyError.js +11 -0
  456. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/readOnlyError.js.map +1 -0
  457. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/regenerator.js +188 -0
  458. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/regenerator.js.map +1 -0
  459. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/regeneratorAsync.js +15 -0
  460. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/regeneratorAsync.js.map +1 -0
  461. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/regeneratorAsyncGen.js +13 -0
  462. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/regeneratorAsyncGen.js.map +1 -0
  463. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/regeneratorAsyncIterator.js +49 -0
  464. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/regeneratorAsyncIterator.js.map +1 -0
  465. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/regeneratorDefine.js +40 -0
  466. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/regeneratorDefine.js.map +1 -0
  467. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/regeneratorKeys.js +28 -0
  468. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/regeneratorKeys.js.map +1 -0
  469. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/regeneratorRuntime.js +98 -0
  470. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/regeneratorRuntime.js.map +1 -0
  471. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/regeneratorValues.js +32 -0
  472. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/regeneratorValues.js.map +1 -0
  473. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/set.js +48 -0
  474. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/set.js.map +1 -0
  475. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/setFunctionName.js +21 -0
  476. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/setFunctionName.js.map +1 -0
  477. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/setPrototypeOf.js +15 -0
  478. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/setPrototypeOf.js.map +1 -0
  479. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/skipFirstGeneratorNext.js +15 -0
  480. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/skipFirstGeneratorNext.js.map +1 -0
  481. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/slicedToArray.js +15 -0
  482. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/slicedToArray.js.map +1 -0
  483. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/superPropBase.js +16 -0
  484. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/superPropBase.js.map +1 -0
  485. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/superPropGet.js +16 -0
  486. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/superPropGet.js.map +1 -0
  487. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/superPropSet.js +13 -0
  488. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/superPropSet.js.map +1 -0
  489. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/taggedTemplateLiteral.js +18 -0
  490. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/taggedTemplateLiteral.js.map +1 -0
  491. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/taggedTemplateLiteralLoose.js +15 -0
  492. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/taggedTemplateLiteralLoose.js.map +1 -0
  493. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/tdz.js +11 -0
  494. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/tdz.js.map +1 -0
  495. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/temporalRef.js +13 -0
  496. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/temporalRef.js.map +1 -0
  497. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/temporalUndefined.js +9 -0
  498. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/temporalUndefined.js.map +1 -0
  499. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/toArray.js +15 -0
  500. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/toArray.js.map +1 -0
  501. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/toConsumableArray.js +15 -0
  502. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/toConsumableArray.js.map +1 -0
  503. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/toPrimitive.js +18 -0
  504. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/toPrimitive.js.map +1 -0
  505. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/toPropertyKey.js +13 -0
  506. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/toPropertyKey.js.map +1 -0
  507. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/toSetter.js +18 -0
  508. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/toSetter.js.map +1 -0
  509. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/tsRewriteRelativeImportExtensions.js +16 -0
  510. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/tsRewriteRelativeImportExtensions.js.map +1 -0
  511. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/typeof.js +22 -0
  512. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/typeof.js.map +1 -0
  513. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/unsupportedIterableToArray.js +19 -0
  514. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/unsupportedIterableToArray.js.map +1 -0
  515. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/using.js +29 -0
  516. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/using.js.map +1 -0
  517. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/usingCtx.js +103 -0
  518. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/usingCtx.js.map +1 -0
  519. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/wrapAsyncGenerator.js +88 -0
  520. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/wrapAsyncGenerator.js.map +1 -0
  521. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/wrapNativeSuper.js +38 -0
  522. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/wrapNativeSuper.js.map +1 -0
  523. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/wrapRegExp.js +72 -0
  524. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/wrapRegExp.js.map +1 -0
  525. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/writeOnlyError.js +11 -0
  526. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers/writeOnlyError.js.map +1 -0
  527. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers-generated.js +1440 -0
  528. package/etc/mcp-server/node_modules/@babel/helpers/lib/helpers-generated.js.map +1 -0
  529. package/etc/mcp-server/node_modules/@babel/helpers/lib/index.js +122 -0
  530. package/etc/mcp-server/node_modules/@babel/helpers/lib/index.js.map +1 -0
  531. package/etc/mcp-server/node_modules/@babel/helpers/package.json +31 -0
  532. package/etc/mcp-server/node_modules/@babel/parser/CHANGELOG.md +1073 -0
  533. package/etc/mcp-server/node_modules/@babel/parser/LICENSE +19 -0
  534. package/etc/mcp-server/node_modules/@babel/parser/README.md +19 -0
  535. package/etc/mcp-server/node_modules/@babel/parser/bin/babel-parser.js +15 -0
  536. package/etc/mcp-server/node_modules/@babel/parser/lib/index.js +14599 -0
  537. package/etc/mcp-server/node_modules/@babel/parser/lib/index.js.map +1 -0
  538. package/etc/mcp-server/node_modules/@babel/parser/package.json +50 -0
  539. package/etc/mcp-server/node_modules/@babel/parser/typings/babel-parser.d.ts +262 -0
  540. package/etc/mcp-server/node_modules/@babel/template/LICENSE +22 -0
  541. package/etc/mcp-server/node_modules/@babel/template/README.md +19 -0
  542. package/etc/mcp-server/node_modules/@babel/template/lib/builder.js +69 -0
  543. package/etc/mcp-server/node_modules/@babel/template/lib/builder.js.map +1 -0
  544. package/etc/mcp-server/node_modules/@babel/template/lib/formatters.js +61 -0
  545. package/etc/mcp-server/node_modules/@babel/template/lib/formatters.js.map +1 -0
  546. package/etc/mcp-server/node_modules/@babel/template/lib/index.js +23 -0
  547. package/etc/mcp-server/node_modules/@babel/template/lib/index.js.map +1 -0
  548. package/etc/mcp-server/node_modules/@babel/template/lib/literal.js +69 -0
  549. package/etc/mcp-server/node_modules/@babel/template/lib/literal.js.map +1 -0
  550. package/etc/mcp-server/node_modules/@babel/template/lib/options.js +73 -0
  551. package/etc/mcp-server/node_modules/@babel/template/lib/options.js.map +1 -0
  552. package/etc/mcp-server/node_modules/@babel/template/lib/parse.js +163 -0
  553. package/etc/mcp-server/node_modules/@babel/template/lib/parse.js.map +1 -0
  554. package/etc/mcp-server/node_modules/@babel/template/lib/populate.js +138 -0
  555. package/etc/mcp-server/node_modules/@babel/template/lib/populate.js.map +1 -0
  556. package/etc/mcp-server/node_modules/@babel/template/lib/string.js +20 -0
  557. package/etc/mcp-server/node_modules/@babel/template/lib/string.js.map +1 -0
  558. package/etc/mcp-server/node_modules/@babel/template/node_modules/.bin/parser +17 -0
  559. package/etc/mcp-server/node_modules/@babel/template/package.json +27 -0
  560. package/etc/mcp-server/node_modules/@babel/traverse/LICENSE +22 -0
  561. package/etc/mcp-server/node_modules/@babel/traverse/README.md +19 -0
  562. package/etc/mcp-server/node_modules/@babel/traverse/lib/cache.js +37 -0
  563. package/etc/mcp-server/node_modules/@babel/traverse/lib/cache.js.map +1 -0
  564. package/etc/mcp-server/node_modules/@babel/traverse/lib/context.js +125 -0
  565. package/etc/mcp-server/node_modules/@babel/traverse/lib/context.js.map +1 -0
  566. package/etc/mcp-server/node_modules/@babel/traverse/lib/hub.js +19 -0
  567. package/etc/mcp-server/node_modules/@babel/traverse/lib/hub.js.map +1 -0
  568. package/etc/mcp-server/node_modules/@babel/traverse/lib/index.js +87 -0
  569. package/etc/mcp-server/node_modules/@babel/traverse/lib/index.js.map +1 -0
  570. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/ancestry.js +139 -0
  571. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/ancestry.js.map +1 -0
  572. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/comments.js +52 -0
  573. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/comments.js.map +1 -0
  574. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/context.js +254 -0
  575. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/context.js.map +1 -0
  576. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/conversion.js +608 -0
  577. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/conversion.js.map +1 -0
  578. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/evaluation.js +373 -0
  579. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/evaluation.js.map +1 -0
  580. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/family.js +346 -0
  581. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/family.js.map +1 -0
  582. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/index.js +288 -0
  583. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/index.js.map +1 -0
  584. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/inference/index.js +149 -0
  585. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/inference/index.js.map +1 -0
  586. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/inference/inferer-reference.js +151 -0
  587. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/inference/inferer-reference.js.map +1 -0
  588. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/inference/inferers.js +207 -0
  589. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/inference/inferers.js.map +1 -0
  590. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/inference/util.js +28 -0
  591. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/inference/util.js.map +1 -0
  592. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/introspection.js +395 -0
  593. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/introspection.js.map +1 -0
  594. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/lib/hoister.js +172 -0
  595. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/lib/hoister.js.map +1 -0
  596. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js +38 -0
  597. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js.map +1 -0
  598. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js +162 -0
  599. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js.map +1 -0
  600. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/lib/virtual-types.js +26 -0
  601. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/lib/virtual-types.js.map +1 -0
  602. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/modification.js +229 -0
  603. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/modification.js.map +1 -0
  604. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/removal.js +67 -0
  605. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/removal.js.map +1 -0
  606. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/replacement.js +264 -0
  607. package/etc/mcp-server/node_modules/@babel/traverse/lib/path/replacement.js.map +1 -0
  608. package/etc/mcp-server/node_modules/@babel/traverse/lib/scope/binding.js +84 -0
  609. package/etc/mcp-server/node_modules/@babel/traverse/lib/scope/binding.js.map +1 -0
  610. package/etc/mcp-server/node_modules/@babel/traverse/lib/scope/index.js +1018 -0
  611. package/etc/mcp-server/node_modules/@babel/traverse/lib/scope/index.js.map +1 -0
  612. package/etc/mcp-server/node_modules/@babel/traverse/lib/scope/lib/renamer.js +132 -0
  613. package/etc/mcp-server/node_modules/@babel/traverse/lib/scope/lib/renamer.js.map +1 -0
  614. package/etc/mcp-server/node_modules/@babel/traverse/lib/scope/traverseForScope.js +66 -0
  615. package/etc/mcp-server/node_modules/@babel/traverse/lib/scope/traverseForScope.js.map +1 -0
  616. package/etc/mcp-server/node_modules/@babel/traverse/lib/traverse-node.js +137 -0
  617. package/etc/mcp-server/node_modules/@babel/traverse/lib/traverse-node.js.map +1 -0
  618. package/etc/mcp-server/node_modules/@babel/traverse/lib/types.js +3 -0
  619. package/etc/mcp-server/node_modules/@babel/traverse/lib/types.js.map +1 -0
  620. package/etc/mcp-server/node_modules/@babel/traverse/lib/visitors.js +252 -0
  621. package/etc/mcp-server/node_modules/@babel/traverse/lib/visitors.js.map +1 -0
  622. package/etc/mcp-server/node_modules/@babel/traverse/node_modules/.bin/parser +17 -0
  623. package/etc/mcp-server/node_modules/@babel/traverse/package.json +35 -0
  624. package/etc/mcp-server/node_modules/@babel/traverse/tsconfig.overrides.json +6 -0
  625. package/etc/mcp-server/node_modules/@babel/types/LICENSE +22 -0
  626. package/etc/mcp-server/node_modules/@babel/types/README.md +19 -0
  627. package/etc/mcp-server/node_modules/@babel/types/lib/asserts/assertNode.js +16 -0
  628. package/etc/mcp-server/node_modules/@babel/types/lib/asserts/assertNode.js.map +1 -0
  629. package/etc/mcp-server/node_modules/@babel/types/lib/asserts/generated/index.js +1251 -0
  630. package/etc/mcp-server/node_modules/@babel/types/lib/asserts/generated/index.js.map +1 -0
  631. package/etc/mcp-server/node_modules/@babel/types/lib/ast-types/generated/index.js +3 -0
  632. package/etc/mcp-server/node_modules/@babel/types/lib/ast-types/generated/index.js.map +1 -0
  633. package/etc/mcp-server/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js +18 -0
  634. package/etc/mcp-server/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js.map +1 -0
  635. package/etc/mcp-server/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js +31 -0
  636. package/etc/mcp-server/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map +1 -0
  637. package/etc/mcp-server/node_modules/@babel/types/lib/builders/generated/index.js +29 -0
  638. package/etc/mcp-server/node_modules/@babel/types/lib/builders/generated/index.js.map +1 -0
  639. package/etc/mcp-server/node_modules/@babel/types/lib/builders/generated/lowercase.js +2902 -0
  640. package/etc/mcp-server/node_modules/@babel/types/lib/builders/generated/lowercase.js.map +1 -0
  641. package/etc/mcp-server/node_modules/@babel/types/lib/builders/generated/uppercase.js +272 -0
  642. package/etc/mcp-server/node_modules/@babel/types/lib/builders/generated/uppercase.js.map +1 -0
  643. package/etc/mcp-server/node_modules/@babel/types/lib/builders/productions.js +12 -0
  644. package/etc/mcp-server/node_modules/@babel/types/lib/builders/productions.js.map +1 -0
  645. package/etc/mcp-server/node_modules/@babel/types/lib/builders/react/buildChildren.js +24 -0
  646. package/etc/mcp-server/node_modules/@babel/types/lib/builders/react/buildChildren.js.map +1 -0
  647. package/etc/mcp-server/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js +22 -0
  648. package/etc/mcp-server/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js.map +1 -0
  649. package/etc/mcp-server/node_modules/@babel/types/lib/builders/validateNode.js +21 -0
  650. package/etc/mcp-server/node_modules/@babel/types/lib/builders/validateNode.js.map +1 -0
  651. package/etc/mcp-server/node_modules/@babel/types/lib/clone/clone.js +12 -0
  652. package/etc/mcp-server/node_modules/@babel/types/lib/clone/clone.js.map +1 -0
  653. package/etc/mcp-server/node_modules/@babel/types/lib/clone/cloneDeep.js +12 -0
  654. package/etc/mcp-server/node_modules/@babel/types/lib/clone/cloneDeep.js.map +1 -0
  655. package/etc/mcp-server/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js +12 -0
  656. package/etc/mcp-server/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js.map +1 -0
  657. package/etc/mcp-server/node_modules/@babel/types/lib/clone/cloneNode.js +107 -0
  658. package/etc/mcp-server/node_modules/@babel/types/lib/clone/cloneNode.js.map +1 -0
  659. package/etc/mcp-server/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js +12 -0
  660. package/etc/mcp-server/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js.map +1 -0
  661. package/etc/mcp-server/node_modules/@babel/types/lib/comments/addComment.js +15 -0
  662. package/etc/mcp-server/node_modules/@babel/types/lib/comments/addComment.js.map +1 -0
  663. package/etc/mcp-server/node_modules/@babel/types/lib/comments/addComments.js +22 -0
  664. package/etc/mcp-server/node_modules/@babel/types/lib/comments/addComments.js.map +1 -0
  665. package/etc/mcp-server/node_modules/@babel/types/lib/comments/inheritInnerComments.js +12 -0
  666. package/etc/mcp-server/node_modules/@babel/types/lib/comments/inheritInnerComments.js.map +1 -0
  667. package/etc/mcp-server/node_modules/@babel/types/lib/comments/inheritLeadingComments.js +12 -0
  668. package/etc/mcp-server/node_modules/@babel/types/lib/comments/inheritLeadingComments.js.map +1 -0
  669. package/etc/mcp-server/node_modules/@babel/types/lib/comments/inheritTrailingComments.js +12 -0
  670. package/etc/mcp-server/node_modules/@babel/types/lib/comments/inheritTrailingComments.js.map +1 -0
  671. package/etc/mcp-server/node_modules/@babel/types/lib/comments/inheritsComments.js +17 -0
  672. package/etc/mcp-server/node_modules/@babel/types/lib/comments/inheritsComments.js.map +1 -0
  673. package/etc/mcp-server/node_modules/@babel/types/lib/comments/removeComments.js +15 -0
  674. package/etc/mcp-server/node_modules/@babel/types/lib/comments/removeComments.js.map +1 -0
  675. package/etc/mcp-server/node_modules/@babel/types/lib/constants/generated/index.js +60 -0
  676. package/etc/mcp-server/node_modules/@babel/types/lib/constants/generated/index.js.map +1 -0
  677. package/etc/mcp-server/node_modules/@babel/types/lib/constants/index.js +31 -0
  678. package/etc/mcp-server/node_modules/@babel/types/lib/constants/index.js.map +1 -0
  679. package/etc/mcp-server/node_modules/@babel/types/lib/converters/ensureBlock.js +14 -0
  680. package/etc/mcp-server/node_modules/@babel/types/lib/converters/ensureBlock.js.map +1 -0
  681. package/etc/mcp-server/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js +65 -0
  682. package/etc/mcp-server/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map +1 -0
  683. package/etc/mcp-server/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js +14 -0
  684. package/etc/mcp-server/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js.map +1 -0
  685. package/etc/mcp-server/node_modules/@babel/types/lib/converters/toBlock.js +29 -0
  686. package/etc/mcp-server/node_modules/@babel/types/lib/converters/toBlock.js.map +1 -0
  687. package/etc/mcp-server/node_modules/@babel/types/lib/converters/toComputedKey.js +14 -0
  688. package/etc/mcp-server/node_modules/@babel/types/lib/converters/toComputedKey.js.map +1 -0
  689. package/etc/mcp-server/node_modules/@babel/types/lib/converters/toExpression.js +28 -0
  690. package/etc/mcp-server/node_modules/@babel/types/lib/converters/toExpression.js.map +1 -0
  691. package/etc/mcp-server/node_modules/@babel/types/lib/converters/toIdentifier.js +25 -0
  692. package/etc/mcp-server/node_modules/@babel/types/lib/converters/toIdentifier.js.map +1 -0
  693. package/etc/mcp-server/node_modules/@babel/types/lib/converters/toKeyAlias.js +38 -0
  694. package/etc/mcp-server/node_modules/@babel/types/lib/converters/toKeyAlias.js.map +1 -0
  695. package/etc/mcp-server/node_modules/@babel/types/lib/converters/toSequenceExpression.js +19 -0
  696. package/etc/mcp-server/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map +1 -0
  697. package/etc/mcp-server/node_modules/@babel/types/lib/converters/toStatement.js +39 -0
  698. package/etc/mcp-server/node_modules/@babel/types/lib/converters/toStatement.js.map +1 -0
  699. package/etc/mcp-server/node_modules/@babel/types/lib/converters/valueToNode.js +89 -0
  700. package/etc/mcp-server/node_modules/@babel/types/lib/converters/valueToNode.js.map +1 -0
  701. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/core.js +1725 -0
  702. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/core.js.map +1 -0
  703. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/deprecated-aliases.js +11 -0
  704. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/deprecated-aliases.js.map +1 -0
  705. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/experimental.js +124 -0
  706. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/experimental.js.map +1 -0
  707. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/flow.js +495 -0
  708. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/flow.js.map +1 -0
  709. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/index.js +106 -0
  710. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/index.js.map +1 -0
  711. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/jsx.js +157 -0
  712. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/jsx.js.map +1 -0
  713. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/misc.js +31 -0
  714. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/misc.js.map +1 -0
  715. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/placeholders.js +27 -0
  716. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/placeholders.js.map +1 -0
  717. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/typescript.js +528 -0
  718. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/typescript.js.map +1 -0
  719. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/utils.js +296 -0
  720. package/etc/mcp-server/node_modules/@babel/types/lib/definitions/utils.js.map +1 -0
  721. package/etc/mcp-server/node_modules/@babel/types/lib/index-legacy.d.ts +2797 -0
  722. package/etc/mcp-server/node_modules/@babel/types/lib/index.d.ts +3617 -0
  723. package/etc/mcp-server/node_modules/@babel/types/lib/index.js +582 -0
  724. package/etc/mcp-server/node_modules/@babel/types/lib/index.js.flow +2650 -0
  725. package/etc/mcp-server/node_modules/@babel/types/lib/index.js.map +1 -0
  726. package/etc/mcp-server/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js +15 -0
  727. package/etc/mcp-server/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js.map +1 -0
  728. package/etc/mcp-server/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js +65 -0
  729. package/etc/mcp-server/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js.map +1 -0
  730. package/etc/mcp-server/node_modules/@babel/types/lib/modifications/inherits.js +28 -0
  731. package/etc/mcp-server/node_modules/@babel/types/lib/modifications/inherits.js.map +1 -0
  732. package/etc/mcp-server/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js +17 -0
  733. package/etc/mcp-server/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js.map +1 -0
  734. package/etc/mcp-server/node_modules/@babel/types/lib/modifications/removeProperties.js +24 -0
  735. package/etc/mcp-server/node_modules/@babel/types/lib/modifications/removeProperties.js.map +1 -0
  736. package/etc/mcp-server/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js +14 -0
  737. package/etc/mcp-server/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js.map +1 -0
  738. package/etc/mcp-server/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js +66 -0
  739. package/etc/mcp-server/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js.map +1 -0
  740. package/etc/mcp-server/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js +48 -0
  741. package/etc/mcp-server/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js.map +1 -0
  742. package/etc/mcp-server/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js +102 -0
  743. package/etc/mcp-server/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map +1 -0
  744. package/etc/mcp-server/node_modules/@babel/types/lib/retrievers/getFunctionName.js +63 -0
  745. package/etc/mcp-server/node_modules/@babel/types/lib/retrievers/getFunctionName.js.map +1 -0
  746. package/etc/mcp-server/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js +13 -0
  747. package/etc/mcp-server/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js.map +1 -0
  748. package/etc/mcp-server/node_modules/@babel/types/lib/traverse/traverse.js +50 -0
  749. package/etc/mcp-server/node_modules/@babel/types/lib/traverse/traverse.js.map +1 -0
  750. package/etc/mcp-server/node_modules/@babel/types/lib/traverse/traverseFast.js +40 -0
  751. package/etc/mcp-server/node_modules/@babel/types/lib/traverse/traverseFast.js.map +1 -0
  752. package/etc/mcp-server/node_modules/@babel/types/lib/utils/deprecationWarning.js +44 -0
  753. package/etc/mcp-server/node_modules/@babel/types/lib/utils/deprecationWarning.js.map +1 -0
  754. package/etc/mcp-server/node_modules/@babel/types/lib/utils/inherit.js +13 -0
  755. package/etc/mcp-server/node_modules/@babel/types/lib/utils/inherit.js.map +1 -0
  756. package/etc/mcp-server/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js +40 -0
  757. package/etc/mcp-server/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js.map +1 -0
  758. package/etc/mcp-server/node_modules/@babel/types/lib/utils/shallowEqual.js +17 -0
  759. package/etc/mcp-server/node_modules/@babel/types/lib/utils/shallowEqual.js.map +1 -0
  760. package/etc/mcp-server/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js +13 -0
  761. package/etc/mcp-server/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js.map +1 -0
  762. package/etc/mcp-server/node_modules/@babel/types/lib/validators/generated/index.js +2797 -0
  763. package/etc/mcp-server/node_modules/@babel/types/lib/validators/generated/index.js.map +1 -0
  764. package/etc/mcp-server/node_modules/@babel/types/lib/validators/is.js +27 -0
  765. package/etc/mcp-server/node_modules/@babel/types/lib/validators/is.js.map +1 -0
  766. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isBinding.js +27 -0
  767. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isBinding.js.map +1 -0
  768. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isBlockScoped.js +13 -0
  769. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isBlockScoped.js.map +1 -0
  770. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isImmutable.js +21 -0
  771. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isImmutable.js.map +1 -0
  772. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isLet.js +13 -0
  773. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isLet.js.map +1 -0
  774. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isNode.js +12 -0
  775. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isNode.js.map +1 -0
  776. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isNodesEquivalent.js +57 -0
  777. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isNodesEquivalent.js.map +1 -0
  778. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isPlaceholderType.js +15 -0
  779. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isPlaceholderType.js.map +1 -0
  780. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isReferenced.js +96 -0
  781. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isReferenced.js.map +1 -0
  782. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isScope.js +18 -0
  783. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isScope.js.map +1 -0
  784. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isSpecifierDefault.js +14 -0
  785. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isSpecifierDefault.js.map +1 -0
  786. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isType.js +17 -0
  787. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isType.js.map +1 -0
  788. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isValidES3Identifier.js +13 -0
  789. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isValidES3Identifier.js.map +1 -0
  790. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isValidIdentifier.js +18 -0
  791. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isValidIdentifier.js.map +1 -0
  792. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isVar.js +15 -0
  793. package/etc/mcp-server/node_modules/@babel/types/lib/validators/isVar.js.map +1 -0
  794. package/etc/mcp-server/node_modules/@babel/types/lib/validators/matchesPattern.js +44 -0
  795. package/etc/mcp-server/node_modules/@babel/types/lib/validators/matchesPattern.js.map +1 -0
  796. package/etc/mcp-server/node_modules/@babel/types/lib/validators/react/isCompatTag.js +11 -0
  797. package/etc/mcp-server/node_modules/@babel/types/lib/validators/react/isCompatTag.js.map +1 -0
  798. package/etc/mcp-server/node_modules/@babel/types/lib/validators/react/isReactComponent.js +11 -0
  799. package/etc/mcp-server/node_modules/@babel/types/lib/validators/react/isReactComponent.js.map +1 -0
  800. package/etc/mcp-server/node_modules/@babel/types/lib/validators/validate.js +42 -0
  801. package/etc/mcp-server/node_modules/@babel/types/lib/validators/validate.js.map +1 -0
  802. package/etc/mcp-server/node_modules/@babel/types/package.json +39 -0
  803. package/etc/mcp-server/node_modules/@eslint/eslintrc/node_modules/.bin/js-yaml +4 -4
  804. package/etc/mcp-server/node_modules/@eslint-community/eslint-utils/node_modules/.bin/eslint +2 -2
  805. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/LICENSE +19 -0
  806. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/README.md +227 -0
  807. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs +292 -0
  808. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs.map +6 -0
  809. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js +358 -0
  810. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js.map +6 -0
  811. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/dist/types/gen-mapping.d.ts +88 -0
  812. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/dist/types/set-array.d.ts +32 -0
  813. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/dist/types/sourcemap-segment.d.ts +12 -0
  814. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/dist/types/types.d.ts +43 -0
  815. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/package.json +67 -0
  816. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/src/gen-mapping.ts +614 -0
  817. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/src/set-array.ts +82 -0
  818. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/src/sourcemap-segment.ts +16 -0
  819. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/src/types.ts +61 -0
  820. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.cts +89 -0
  821. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.cts.map +1 -0
  822. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.mts +89 -0
  823. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/types/gen-mapping.d.mts.map +1 -0
  824. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/types/set-array.d.cts +33 -0
  825. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/types/set-array.d.cts.map +1 -0
  826. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/types/set-array.d.mts +33 -0
  827. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/types/set-array.d.mts.map +1 -0
  828. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.cts +13 -0
  829. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.cts.map +1 -0
  830. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.mts +13 -0
  831. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/types/sourcemap-segment.d.mts.map +1 -0
  832. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/types/types.d.cts +44 -0
  833. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/types/types.d.cts.map +1 -0
  834. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/types/types.d.mts +44 -0
  835. package/etc/mcp-server/node_modules/@jridgewell/gen-mapping/types/types.d.mts.map +1 -0
  836. package/etc/mcp-server/node_modules/@jridgewell/remapping/LICENSE +19 -0
  837. package/etc/mcp-server/node_modules/@jridgewell/remapping/README.md +218 -0
  838. package/etc/mcp-server/node_modules/@jridgewell/remapping/dist/remapping.mjs +144 -0
  839. package/etc/mcp-server/node_modules/@jridgewell/remapping/dist/remapping.mjs.map +6 -0
  840. package/etc/mcp-server/node_modules/@jridgewell/remapping/dist/remapping.umd.js +212 -0
  841. package/etc/mcp-server/node_modules/@jridgewell/remapping/dist/remapping.umd.js.map +6 -0
  842. package/etc/mcp-server/node_modules/@jridgewell/remapping/package.json +71 -0
  843. package/etc/mcp-server/node_modules/@jridgewell/remapping/src/build-source-map-tree.ts +89 -0
  844. package/etc/mcp-server/node_modules/@jridgewell/remapping/src/remapping.ts +42 -0
  845. package/etc/mcp-server/node_modules/@jridgewell/remapping/src/source-map-tree.ts +172 -0
  846. package/etc/mcp-server/node_modules/@jridgewell/remapping/src/source-map.ts +38 -0
  847. package/etc/mcp-server/node_modules/@jridgewell/remapping/src/types.ts +27 -0
  848. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.cts +15 -0
  849. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.cts.map +1 -0
  850. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.mts +15 -0
  851. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.mts.map +1 -0
  852. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/remapping.d.cts +21 -0
  853. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/remapping.d.cts.map +1 -0
  854. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/remapping.d.mts +21 -0
  855. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/remapping.d.mts.map +1 -0
  856. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/source-map-tree.d.cts +46 -0
  857. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/source-map-tree.d.cts.map +1 -0
  858. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/source-map-tree.d.mts +46 -0
  859. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/source-map-tree.d.mts.map +1 -0
  860. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/source-map.d.cts +19 -0
  861. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/source-map.d.cts.map +1 -0
  862. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/source-map.d.mts +19 -0
  863. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/source-map.d.mts.map +1 -0
  864. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/types.d.cts +16 -0
  865. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/types.d.cts.map +1 -0
  866. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/types.d.mts +16 -0
  867. package/etc/mcp-server/node_modules/@jridgewell/remapping/types/types.d.mts.map +1 -0
  868. package/etc/mcp-server/node_modules/@types/babel__core/LICENSE +21 -0
  869. package/etc/mcp-server/node_modules/@types/babel__core/README.md +15 -0
  870. package/etc/mcp-server/node_modules/@types/babel__core/index.d.ts +831 -0
  871. package/etc/mcp-server/node_modules/@types/babel__core/node_modules/.bin/parser +17 -0
  872. package/etc/mcp-server/node_modules/@types/babel__core/package.json +51 -0
  873. package/etc/mcp-server/node_modules/@types/babel__generator/LICENSE +21 -0
  874. package/etc/mcp-server/node_modules/@types/babel__generator/README.md +15 -0
  875. package/etc/mcp-server/node_modules/@types/babel__generator/index.d.ts +210 -0
  876. package/etc/mcp-server/node_modules/@types/babel__generator/package.json +43 -0
  877. package/etc/mcp-server/node_modules/@types/babel__template/LICENSE +21 -0
  878. package/etc/mcp-server/node_modules/@types/babel__template/README.md +15 -0
  879. package/etc/mcp-server/node_modules/@types/babel__template/index.d.ts +92 -0
  880. package/etc/mcp-server/node_modules/@types/babel__template/node_modules/.bin/parser +17 -0
  881. package/etc/mcp-server/node_modules/@types/babel__template/package.json +43 -0
  882. package/etc/mcp-server/node_modules/@types/babel__traverse/LICENSE +21 -0
  883. package/etc/mcp-server/node_modules/@types/babel__traverse/README.md +15 -0
  884. package/etc/mcp-server/node_modules/@types/babel__traverse/index.d.ts +1506 -0
  885. package/etc/mcp-server/node_modules/@types/babel__traverse/package.json +63 -0
  886. package/etc/mcp-server/node_modules/@types/chai/LICENSE +21 -0
  887. package/etc/mcp-server/node_modules/@types/chai/README.md +15 -0
  888. package/etc/mcp-server/node_modules/@types/chai/index.d.ts +2145 -0
  889. package/etc/mcp-server/node_modules/@types/chai/package.json +75 -0
  890. package/etc/mcp-server/node_modules/@types/chai/register-should.d.ts +7 -0
  891. package/etc/mcp-server/node_modules/@types/deep-eql/LICENSE +21 -0
  892. package/etc/mcp-server/node_modules/@types/deep-eql/README.md +57 -0
  893. package/etc/mcp-server/node_modules/@types/deep-eql/index.d.ts +38 -0
  894. package/etc/mcp-server/node_modules/@types/deep-eql/package.json +25 -0
  895. package/etc/mcp-server/node_modules/@types/node/README.md +3 -3
  896. package/etc/mcp-server/node_modules/@types/node/assert/strict.d.ts +105 -2
  897. package/etc/mcp-server/node_modules/@types/node/assert.d.ts +134 -96
  898. package/etc/mcp-server/node_modules/@types/node/async_hooks.d.ts +71 -9
  899. package/etc/mcp-server/node_modules/@types/node/buffer.d.ts +61 -490
  900. package/etc/mcp-server/node_modules/@types/node/child_process.d.ts +125 -193
  901. package/etc/mcp-server/node_modules/@types/node/cluster.d.ts +22 -22
  902. package/etc/mcp-server/node_modules/@types/node/console.d.ts +17 -17
  903. package/etc/mcp-server/node_modules/@types/node/constants.d.ts +14 -12
  904. package/etc/mcp-server/node_modules/@types/node/crypto.d.ts +287 -265
  905. package/etc/mcp-server/node_modules/@types/node/dgram.d.ts +20 -16
  906. package/etc/mcp-server/node_modules/@types/node/diagnostics_channel.d.ts +40 -16
  907. package/etc/mcp-server/node_modules/@types/node/dns/promises.d.ts +41 -14
  908. package/etc/mcp-server/node_modules/@types/node/dns.d.ts +102 -43
  909. package/etc/mcp-server/node_modules/@types/node/domain.d.ts +3 -3
  910. package/etc/mcp-server/node_modules/@types/node/events.d.ts +85 -40
  911. package/etc/mcp-server/node_modules/@types/node/fs/promises.d.ts +122 -72
  912. package/etc/mcp-server/node_modules/@types/node/fs.d.ts +378 -234
  913. package/etc/mcp-server/node_modules/@types/node/globals.d.ts +148 -388
  914. package/etc/mcp-server/node_modules/@types/node/http.d.ts +227 -46
  915. package/etc/mcp-server/node_modules/@types/node/http2.d.ts +457 -154
  916. package/etc/mcp-server/node_modules/@types/node/https.d.ts +114 -85
  917. package/etc/mcp-server/node_modules/@types/node/index.d.ts +19 -11
  918. package/etc/mcp-server/node_modules/@types/node/inspector.d.ts +200 -2693
  919. package/etc/mcp-server/node_modules/@types/node/module.d.ts +749 -173
  920. package/etc/mcp-server/node_modules/@types/node/net.d.ts +119 -42
  921. package/etc/mcp-server/node_modules/@types/node/os.d.ts +18 -7
  922. package/etc/mcp-server/node_modules/@types/node/package.json +17 -89
  923. package/etc/mcp-server/node_modules/@types/node/path.d.ts +12 -3
  924. package/etc/mcp-server/node_modules/@types/node/perf_hooks.d.ts +101 -38
  925. package/etc/mcp-server/node_modules/@types/node/process.d.ts +391 -61
  926. package/etc/mcp-server/node_modules/@types/node/punycode.d.ts +2 -2
  927. package/etc/mcp-server/node_modules/@types/node/querystring.d.ts +4 -5
  928. package/etc/mcp-server/node_modules/@types/node/readline/promises.d.ts +16 -5
  929. package/etc/mcp-server/node_modules/@types/node/readline.d.ts +83 -29
  930. package/etc/mcp-server/node_modules/@types/node/repl.d.ts +17 -19
  931. package/etc/mcp-server/node_modules/@types/node/sea.d.ts +2 -2
  932. package/etc/mcp-server/node_modules/@types/node/stream/consumers.d.ts +33 -7
  933. package/etc/mcp-server/node_modules/@types/node/stream/promises.d.ts +8 -1
  934. package/etc/mcp-server/node_modules/@types/node/stream/web.d.ts +290 -35
  935. package/etc/mcp-server/node_modules/@types/node/stream.d.ts +1011 -1031
  936. package/etc/mcp-server/node_modules/@types/node/string_decoder.d.ts +6 -6
  937. package/etc/mcp-server/node_modules/@types/node/test.d.ts +1884 -1450
  938. package/etc/mcp-server/node_modules/@types/node/timers/promises.d.ts +28 -17
  939. package/etc/mcp-server/node_modules/@types/node/timers.d.ts +161 -114
  940. package/etc/mcp-server/node_modules/@types/node/tls.d.ts +183 -81
  941. package/etc/mcp-server/node_modules/@types/node/trace_events.d.ts +10 -10
  942. package/etc/mcp-server/node_modules/@types/node/tty.d.ts +2 -2
  943. package/etc/mcp-server/node_modules/@types/node/url.d.ts +49 -17
  944. package/etc/mcp-server/node_modules/@types/node/util.d.ts +459 -145
  945. package/etc/mcp-server/node_modules/@types/node/v8.d.ts +162 -50
  946. package/etc/mcp-server/node_modules/@types/node/vm.d.ts +160 -84
  947. package/etc/mcp-server/node_modules/@types/node/wasi.d.ts +3 -3
  948. package/etc/mcp-server/node_modules/@types/node/worker_threads.d.ts +169 -79
  949. package/etc/mcp-server/node_modules/@types/node/zlib.d.ts +289 -72
  950. package/etc/mcp-server/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/eslint +2 -2
  951. package/etc/mcp-server/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/tsc +2 -2
  952. package/etc/mcp-server/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/tsserver +2 -2
  953. package/etc/mcp-server/node_modules/@typescript-eslint/parser/node_modules/.bin/eslint +2 -2
  954. package/etc/mcp-server/node_modules/@typescript-eslint/parser/node_modules/.bin/tsc +2 -2
  955. package/etc/mcp-server/node_modules/@typescript-eslint/parser/node_modules/.bin/tsserver +2 -2
  956. package/etc/mcp-server/node_modules/@typescript-eslint/project-service/node_modules/.bin/tsc +2 -2
  957. package/etc/mcp-server/node_modules/@typescript-eslint/project-service/node_modules/.bin/tsserver +2 -2
  958. package/etc/mcp-server/node_modules/@typescript-eslint/tsconfig-utils/node_modules/.bin/tsc +2 -2
  959. package/etc/mcp-server/node_modules/@typescript-eslint/tsconfig-utils/node_modules/.bin/tsserver +2 -2
  960. package/etc/mcp-server/node_modules/@typescript-eslint/type-utils/node_modules/.bin/eslint +2 -2
  961. package/etc/mcp-server/node_modules/@typescript-eslint/type-utils/node_modules/.bin/tsc +2 -2
  962. package/etc/mcp-server/node_modules/@typescript-eslint/type-utils/node_modules/.bin/tsserver +2 -2
  963. package/etc/mcp-server/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/semver +2 -2
  964. package/etc/mcp-server/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/tsc +2 -2
  965. package/etc/mcp-server/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/tsserver +2 -2
  966. package/etc/mcp-server/node_modules/@typescript-eslint/utils/node_modules/.bin/eslint +2 -2
  967. package/etc/mcp-server/node_modules/@typescript-eslint/utils/node_modules/.bin/tsc +2 -2
  968. package/etc/mcp-server/node_modules/@typescript-eslint/utils/node_modules/.bin/tsserver +2 -2
  969. package/etc/mcp-server/node_modules/@vitest/expect/dist/index.d.ts +741 -638
  970. package/etc/mcp-server/node_modules/@vitest/expect/dist/index.js +1650 -1920
  971. package/etc/mcp-server/node_modules/@vitest/expect/package.json +9 -10
  972. package/etc/mcp-server/node_modules/@vitest/mocker/dist/auto-register.d.ts +1 -1
  973. package/etc/mcp-server/node_modules/@vitest/mocker/dist/auto-register.js +2 -4
  974. package/etc/mcp-server/node_modules/@vitest/mocker/dist/browser.d.ts +42 -40
  975. package/etc/mcp-server/node_modules/@vitest/mocker/dist/browser.js +75 -100
  976. package/etc/mcp-server/node_modules/@vitest/mocker/dist/chunk-interceptor-native.js +9 -9
  977. package/etc/mcp-server/node_modules/@vitest/mocker/dist/chunk-mocker.js +1546 -476
  978. package/etc/mcp-server/node_modules/@vitest/mocker/dist/{chunk-pathe.ff20891b.js → chunk-pathe.M-eThtNZ.js} +27 -16
  979. package/etc/mcp-server/node_modules/@vitest/mocker/dist/chunk-registry.js +170 -159
  980. package/etc/mcp-server/node_modules/@vitest/mocker/dist/chunk-utils.js +12 -2
  981. package/etc/mcp-server/node_modules/@vitest/mocker/dist/index.d.ts +13 -11
  982. package/etc/mcp-server/node_modules/@vitest/mocker/dist/index.js +158 -142
  983. package/etc/mcp-server/node_modules/@vitest/mocker/dist/mocker.d-Ce9_ySj5.d.ts +83 -0
  984. package/etc/mcp-server/node_modules/@vitest/mocker/dist/node.d.ts +97 -77
  985. package/etc/mcp-server/node_modules/@vitest/mocker/dist/node.js +927 -948
  986. package/etc/mcp-server/node_modules/@vitest/mocker/dist/redirect.js +63 -55
  987. package/etc/mcp-server/node_modules/@vitest/mocker/dist/register.d.ts +3 -2
  988. package/etc/mcp-server/node_modules/@vitest/mocker/dist/register.js +30 -29
  989. package/etc/mcp-server/node_modules/@vitest/mocker/dist/registry.d-D765pazg.d.ts +87 -0
  990. package/etc/mcp-server/node_modules/@vitest/mocker/dist/types.d-D_aRZRdy.d.ts +8 -0
  991. package/etc/mcp-server/node_modules/@vitest/mocker/node_modules/.bin/vite +4 -4
  992. package/etc/mcp-server/node_modules/@vitest/mocker/package.json +9 -9
  993. package/etc/mcp-server/node_modules/@vitest/pretty-format/dist/index.d.ts +84 -82
  994. package/etc/mcp-server/node_modules/@vitest/pretty-format/dist/index.js +952 -743
  995. package/etc/mcp-server/node_modules/@vitest/pretty-format/package.json +5 -4
  996. package/etc/mcp-server/node_modules/@vitest/runner/dist/chunk-hooks.js +2254 -0
  997. package/etc/mcp-server/node_modules/@vitest/runner/dist/index.d.ts +225 -223
  998. package/etc/mcp-server/node_modules/@vitest/runner/dist/index.js +4 -1282
  999. package/etc/mcp-server/node_modules/@vitest/runner/dist/tasks.d-CkscK4of.d.ts +558 -0
  1000. package/etc/mcp-server/node_modules/@vitest/runner/dist/types.d.ts +152 -125
  1001. package/etc/mcp-server/node_modules/@vitest/runner/dist/utils.d.ts +26 -13
  1002. package/etc/mcp-server/node_modules/@vitest/runner/dist/utils.js +4 -2
  1003. package/etc/mcp-server/node_modules/@vitest/runner/package.json +4 -3
  1004. package/etc/mcp-server/node_modules/@vitest/snapshot/dist/environment.d-DHdQ1Csl.d.ts +22 -0
  1005. package/etc/mcp-server/node_modules/@vitest/snapshot/dist/environment.d.ts +11 -11
  1006. package/etc/mcp-server/node_modules/@vitest/snapshot/dist/environment.js +34 -37
  1007. package/etc/mcp-server/node_modules/@vitest/snapshot/dist/index.d.ts +111 -84
  1008. package/etc/mcp-server/node_modules/@vitest/snapshot/dist/index.js +1006 -914
  1009. package/etc/mcp-server/node_modules/@vitest/snapshot/dist/manager.d.ts +11 -11
  1010. package/etc/mcp-server/node_modules/@vitest/snapshot/dist/manager.js +64 -67
  1011. package/etc/mcp-server/node_modules/@vitest/snapshot/dist/rawSnapshot.d-lFsMJFUd.d.ts +61 -0
  1012. package/etc/mcp-server/node_modules/@vitest/snapshot/package.json +5 -5
  1013. package/etc/mcp-server/node_modules/@vitest/spy/dist/index.d.ts +320 -314
  1014. package/etc/mcp-server/node_modules/@vitest/spy/dist/index.js +179 -133
  1015. package/etc/mcp-server/node_modules/@vitest/spy/package.json +2 -2
  1016. package/etc/mcp-server/node_modules/@vitest/utils/dist/chunk-_commonjsHelpers.js +140 -141
  1017. package/etc/mcp-server/node_modules/@vitest/utils/dist/diff.d.ts +72 -68
  1018. package/etc/mcp-server/node_modules/@vitest/utils/dist/diff.js +1246 -1121
  1019. package/etc/mcp-server/node_modules/@vitest/utils/dist/error.d.ts +2 -1
  1020. package/etc/mcp-server/node_modules/@vitest/utils/dist/error.js +142 -117
  1021. package/etc/mcp-server/node_modules/@vitest/utils/dist/helpers.d.ts +26 -24
  1022. package/etc/mcp-server/node_modules/@vitest/utils/dist/helpers.js +208 -181
  1023. package/etc/mcp-server/node_modules/@vitest/utils/dist/index.d.ts +25 -23
  1024. package/etc/mcp-server/node_modules/@vitest/utils/dist/index.js +97 -111
  1025. package/etc/mcp-server/node_modules/@vitest/utils/dist/source-map.d.ts +27 -5
  1026. package/etc/mcp-server/node_modules/@vitest/utils/dist/source-map.js +225 -187
  1027. package/etc/mcp-server/node_modules/@vitest/utils/dist/types.d-BCElaP-c.d.ts +53 -0
  1028. package/etc/mcp-server/node_modules/@vitest/utils/dist/types.d.ts +36 -41
  1029. package/etc/mcp-server/node_modules/@vitest/utils/package.json +5 -5
  1030. package/etc/mcp-server/node_modules/acorn/bin/acorn +0 -0
  1031. package/etc/mcp-server/node_modules/acorn-jsx/node_modules/.bin/acorn +2 -2
  1032. package/etc/mcp-server/node_modules/ajv/scripts/info +0 -0
  1033. package/etc/mcp-server/node_modules/ajv/scripts/prepare-tests +0 -0
  1034. package/etc/mcp-server/node_modules/ajv/scripts/publish-built-version +0 -0
  1035. package/etc/mcp-server/node_modules/ajv/scripts/travis-gh-pages +0 -0
  1036. package/etc/mcp-server/node_modules/baseline-browser-mapping/LICENSE.txt +201 -0
  1037. package/etc/mcp-server/node_modules/baseline-browser-mapping/README.md +467 -0
  1038. package/etc/mcp-server/node_modules/baseline-browser-mapping/dist/cli.cjs +2 -0
  1039. package/etc/mcp-server/node_modules/baseline-browser-mapping/dist/index.cjs +1 -0
  1040. package/etc/mcp-server/node_modules/baseline-browser-mapping/dist/index.d.ts +104 -0
  1041. package/etc/mcp-server/node_modules/baseline-browser-mapping/dist/index.js +1 -0
  1042. package/etc/mcp-server/node_modules/baseline-browser-mapping/package.json +68 -0
  1043. package/etc/mcp-server/node_modules/browserslist/LICENSE +20 -0
  1044. package/etc/mcp-server/node_modules/browserslist/README.md +64 -0
  1045. package/etc/mcp-server/node_modules/browserslist/browser.js +54 -0
  1046. package/etc/mcp-server/node_modules/browserslist/cli.js +156 -0
  1047. package/etc/mcp-server/node_modules/browserslist/error.d.ts +7 -0
  1048. package/etc/mcp-server/node_modules/browserslist/error.js +12 -0
  1049. package/etc/mcp-server/node_modules/browserslist/index.d.ts +224 -0
  1050. package/etc/mcp-server/node_modules/browserslist/index.js +1339 -0
  1051. package/etc/mcp-server/node_modules/browserslist/node.js +502 -0
  1052. package/etc/mcp-server/node_modules/browserslist/node_modules/.bin/baseline-browser-mapping +17 -0
  1053. package/etc/mcp-server/node_modules/browserslist/node_modules/.bin/update-browserslist-db +17 -0
  1054. package/etc/mcp-server/node_modules/browserslist/package.json +45 -0
  1055. package/etc/mcp-server/node_modules/browserslist/parse.js +78 -0
  1056. package/etc/mcp-server/node_modules/convert-source-map/LICENSE +23 -0
  1057. package/etc/mcp-server/node_modules/convert-source-map/README.md +206 -0
  1058. package/etc/mcp-server/node_modules/convert-source-map/index.js +233 -0
  1059. package/etc/mcp-server/node_modules/convert-source-map/package.json +38 -0
  1060. package/etc/mcp-server/node_modules/cross-spawn/node_modules/.bin/node-which +2 -2
  1061. package/etc/mcp-server/node_modules/electron-to-chromium/LICENSE +5 -0
  1062. package/etc/mcp-server/node_modules/electron-to-chromium/README.md +186 -0
  1063. package/etc/mcp-server/node_modules/electron-to-chromium/chromium-versions.js +89 -0
  1064. package/etc/mcp-server/node_modules/electron-to-chromium/chromium-versions.json +1 -0
  1065. package/etc/mcp-server/node_modules/electron-to-chromium/full-chromium-versions.js +2851 -0
  1066. package/etc/mcp-server/node_modules/electron-to-chromium/full-chromium-versions.json +1 -0
  1067. package/etc/mcp-server/node_modules/electron-to-chromium/full-versions.js +1811 -0
  1068. package/etc/mcp-server/node_modules/electron-to-chromium/full-versions.json +1 -0
  1069. package/etc/mcp-server/node_modules/electron-to-chromium/index.js +36 -0
  1070. package/etc/mcp-server/node_modules/electron-to-chromium/package.json +43 -0
  1071. package/etc/mcp-server/node_modules/electron-to-chromium/versions.js +256 -0
  1072. package/etc/mcp-server/node_modules/electron-to-chromium/versions.json +1 -0
  1073. package/etc/mcp-server/node_modules/esbuild/bin/esbuild +0 -0
  1074. package/etc/mcp-server/node_modules/esbuild/install.js +6 -2
  1075. package/etc/mcp-server/node_modules/esbuild/lib/main.d.ts +14 -3
  1076. package/etc/mcp-server/node_modules/esbuild/lib/main.js +68 -65
  1077. package/etc/mcp-server/node_modules/esbuild/node_modules/.bin/esbuild +0 -0
  1078. package/etc/mcp-server/node_modules/esbuild/package.json +28 -25
  1079. package/etc/mcp-server/node_modules/escalade/dist/index.js +22 -0
  1080. package/etc/mcp-server/node_modules/escalade/dist/index.mjs +22 -0
  1081. package/etc/mcp-server/node_modules/escalade/index.d.mts +11 -0
  1082. package/etc/mcp-server/node_modules/escalade/index.d.ts +15 -0
  1083. package/etc/mcp-server/node_modules/escalade/license +9 -0
  1084. package/etc/mcp-server/node_modules/escalade/package.json +74 -0
  1085. package/etc/mcp-server/node_modules/escalade/readme.md +211 -0
  1086. package/etc/mcp-server/node_modules/escalade/sync/index.d.mts +9 -0
  1087. package/etc/mcp-server/node_modules/escalade/sync/index.d.ts +13 -0
  1088. package/etc/mcp-server/node_modules/escalade/sync/index.js +18 -0
  1089. package/etc/mcp-server/node_modules/escalade/sync/index.mjs +18 -0
  1090. package/etc/mcp-server/node_modules/eslint/bin/eslint.js +0 -0
  1091. package/etc/mcp-server/node_modules/espree/node_modules/.bin/acorn +2 -2
  1092. package/etc/mcp-server/node_modules/esrecurse/package.json +0 -0
  1093. package/etc/mcp-server/node_modules/fast-xml-parser/src/cli/cli.js +0 -0
  1094. package/etc/mcp-server/node_modules/fast-xml-parser/src/v6/OptionsBuilder.js +0 -0
  1095. package/etc/mcp-server/node_modules/fast-xml-parser/src/v6/XMLParser.js +0 -0
  1096. package/etc/mcp-server/node_modules/gensync/LICENSE +7 -0
  1097. package/etc/mcp-server/node_modules/gensync/README.md +196 -0
  1098. package/etc/mcp-server/node_modules/gensync/index.js +373 -0
  1099. package/etc/mcp-server/node_modules/gensync/index.js.flow +32 -0
  1100. package/etc/mcp-server/node_modules/gensync/package.json +37 -0
  1101. package/etc/mcp-server/node_modules/gensync/test/.babelrc +5 -0
  1102. package/etc/mcp-server/node_modules/gensync/test/index.test.js +489 -0
  1103. package/etc/mcp-server/node_modules/hono/dist/adapter/aws-lambda/handler.js +14 -20
  1104. package/etc/mcp-server/node_modules/hono/dist/adapter/deno/websocket.js +5 -1
  1105. package/etc/mcp-server/node_modules/hono/dist/adapter/lambda-edge/handler.js +8 -2
  1106. package/etc/mcp-server/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js +14 -20
  1107. package/etc/mcp-server/node_modules/hono/dist/cjs/adapter/deno/websocket.js +5 -1
  1108. package/etc/mcp-server/node_modules/hono/dist/cjs/adapter/lambda-edge/handler.js +8 -2
  1109. package/etc/mcp-server/node_modules/hono/dist/cjs/helper/css/common.js +3 -1
  1110. package/etc/mcp-server/node_modules/hono/dist/cjs/helper/css/index.js +9 -1
  1111. package/etc/mcp-server/node_modules/hono/dist/cjs/index.js +3 -0
  1112. package/etc/mcp-server/node_modules/hono/dist/cjs/jsx/base.js +8 -14
  1113. package/etc/mcp-server/node_modules/hono/dist/cjs/jsx/components.js +41 -21
  1114. package/etc/mcp-server/node_modules/hono/dist/cjs/jsx/context.js +131 -5
  1115. package/etc/mcp-server/node_modules/hono/dist/cjs/jsx/streaming.js +9 -7
  1116. package/etc/mcp-server/node_modules/hono/dist/cjs/middleware/bearer-auth/index.js +1 -1
  1117. package/etc/mcp-server/node_modules/hono/dist/cjs/middleware/compress/index.js +31 -5
  1118. package/etc/mcp-server/node_modules/hono/dist/cjs/middleware/cors/index.js +2 -5
  1119. package/etc/mcp-server/node_modules/hono/dist/cjs/middleware/language/language.js +10 -32
  1120. package/etc/mcp-server/node_modules/hono/dist/cjs/middleware/serve-static/index.js +1 -1
  1121. package/etc/mcp-server/node_modules/hono/dist/cjs/middleware/timing/timing.js +3 -1
  1122. package/etc/mcp-server/node_modules/hono/dist/cjs/utils/compress.js +1 -1
  1123. package/etc/mcp-server/node_modules/hono/dist/cjs/utils/filepath.js +1 -1
  1124. package/etc/mcp-server/node_modules/hono/dist/cjs/utils/ipaddr.js +7 -2
  1125. package/etc/mcp-server/node_modules/hono/dist/cjs/utils/mime.js +15 -17
  1126. package/etc/mcp-server/node_modules/hono/dist/helper/css/common.js +3 -1
  1127. package/etc/mcp-server/node_modules/hono/dist/helper/css/index.js +9 -1
  1128. package/etc/mcp-server/node_modules/hono/dist/index.js +2 -0
  1129. package/etc/mcp-server/node_modules/hono/dist/jsx/base.js +15 -15
  1130. package/etc/mcp-server/node_modules/hono/dist/jsx/components.js +42 -22
  1131. package/etc/mcp-server/node_modules/hono/dist/jsx/context.js +129 -5
  1132. package/etc/mcp-server/node_modules/hono/dist/jsx/streaming.js +10 -8
  1133. package/etc/mcp-server/node_modules/hono/dist/middleware/bearer-auth/index.js +1 -1
  1134. package/etc/mcp-server/node_modules/hono/dist/middleware/compress/index.js +30 -5
  1135. package/etc/mcp-server/node_modules/hono/dist/middleware/cors/index.js +2 -5
  1136. package/etc/mcp-server/node_modules/hono/dist/middleware/language/language.js +10 -32
  1137. package/etc/mcp-server/node_modules/hono/dist/middleware/serve-static/index.js +1 -1
  1138. package/etc/mcp-server/node_modules/hono/dist/middleware/timing/timing.js +3 -1
  1139. package/etc/mcp-server/node_modules/hono/dist/tsconfig.build.tsbuildinfo +1 -1
  1140. package/etc/mcp-server/node_modules/hono/dist/types/adapter/aws-lambda/handler.d.ts +1 -1
  1141. package/etc/mcp-server/node_modules/hono/dist/types/index.d.ts +2 -1
  1142. package/etc/mcp-server/node_modules/hono/dist/types/jsx/base.d.ts +1 -3
  1143. package/etc/mcp-server/node_modules/hono/dist/types/jsx/context.d.ts +39 -0
  1144. package/etc/mcp-server/node_modules/hono/dist/types/middleware/compress/index.d.ts +13 -2
  1145. package/etc/mcp-server/node_modules/hono/dist/types/utils/mime.d.ts +11 -11
  1146. package/etc/mcp-server/node_modules/hono/dist/utils/compress.js +1 -1
  1147. package/etc/mcp-server/node_modules/hono/dist/utils/filepath.js +1 -1
  1148. package/etc/mcp-server/node_modules/hono/dist/utils/ipaddr.js +7 -2
  1149. package/etc/mcp-server/node_modules/hono/dist/utils/mime.js +15 -17
  1150. package/etc/mcp-server/node_modules/hono/package.json +21 -15
  1151. package/etc/mcp-server/node_modules/jiti/lib/jiti-cli.mjs +0 -0
  1152. package/etc/mcp-server/node_modules/js-tokens/index.d.ts +37 -0
  1153. package/etc/mcp-server/node_modules/js-yaml/README.md +4 -20
  1154. package/etc/mcp-server/node_modules/js-yaml/bin/js-yaml.js +53 -62
  1155. package/etc/mcp-server/node_modules/js-yaml/dist/js-yaml.js +2404 -3880
  1156. package/etc/mcp-server/node_modules/js-yaml/dist/js-yaml.js.map +1 -0
  1157. package/etc/mcp-server/node_modules/js-yaml/dist/js-yaml.min.js +33 -2
  1158. package/etc/mcp-server/node_modules/js-yaml/dist/js-yaml.min.js.map +1 -0
  1159. package/etc/mcp-server/node_modules/js-yaml/dist/js-yaml.mjs +2381 -3855
  1160. package/etc/mcp-server/node_modules/js-yaml/dist/js-yaml.mjs.map +1 -0
  1161. package/etc/mcp-server/node_modules/js-yaml/index.js +32 -35
  1162. package/etc/mcp-server/node_modules/js-yaml/lib/common.js +28 -37
  1163. package/etc/mcp-server/node_modules/js-yaml/lib/dumper.js +450 -478
  1164. package/etc/mcp-server/node_modules/js-yaml/lib/exception.js +23 -27
  1165. package/etc/mcp-server/node_modules/js-yaml/lib/index_vite_proxy.tmp.mjs +37 -0
  1166. package/etc/mcp-server/node_modules/js-yaml/lib/loader.js +927 -866
  1167. package/etc/mcp-server/node_modules/js-yaml/lib/schema/core.js +2 -4
  1168. package/etc/mcp-server/node_modules/js-yaml/lib/schema/default.js +2 -4
  1169. package/etc/mcp-server/node_modules/js-yaml/lib/schema/failsafe.js +3 -6
  1170. package/etc/mcp-server/node_modules/js-yaml/lib/schema/json.js +2 -4
  1171. package/etc/mcp-server/node_modules/js-yaml/lib/schema.js +56 -68
  1172. package/etc/mcp-server/node_modules/js-yaml/lib/snippet.js +47 -52
  1173. package/etc/mcp-server/node_modules/js-yaml/lib/type/binary.js +61 -64
  1174. package/etc/mcp-server/node_modules/js-yaml/lib/type/bool.js +14 -14
  1175. package/etc/mcp-server/node_modules/js-yaml/lib/type/float.js +47 -45
  1176. package/etc/mcp-server/node_modules/js-yaml/lib/type/int.js +65 -79
  1177. package/etc/mcp-server/node_modules/js-yaml/lib/type/map.js +4 -4
  1178. package/etc/mcp-server/node_modules/js-yaml/lib/type/merge.js +5 -5
  1179. package/etc/mcp-server/node_modules/js-yaml/lib/type/null.js +16 -16
  1180. package/etc/mcp-server/node_modules/js-yaml/lib/type/omap.js +22 -21
  1181. package/etc/mcp-server/node_modules/js-yaml/lib/type/pairs.js +24 -27
  1182. package/etc/mcp-server/node_modules/js-yaml/lib/type/seq.js +4 -4
  1183. package/etc/mcp-server/node_modules/js-yaml/lib/type/set.js +12 -12
  1184. package/etc/mcp-server/node_modules/js-yaml/lib/type/str.js +4 -4
  1185. package/etc/mcp-server/node_modules/js-yaml/lib/type/timestamp.js +53 -53
  1186. package/etc/mcp-server/node_modules/js-yaml/lib/type.js +30 -30
  1187. package/etc/mcp-server/node_modules/js-yaml/package.json +32 -21
  1188. package/etc/mcp-server/node_modules/jsesc/LICENSE-MIT.txt +20 -0
  1189. package/etc/mcp-server/node_modules/jsesc/README.md +422 -0
  1190. package/etc/mcp-server/node_modules/jsesc/bin/jsesc +148 -0
  1191. package/etc/mcp-server/node_modules/jsesc/jsesc.js +337 -0
  1192. package/etc/mcp-server/node_modules/jsesc/man/jsesc.1 +94 -0
  1193. package/etc/mcp-server/node_modules/jsesc/package.json +56 -0
  1194. package/etc/mcp-server/node_modules/json5/LICENSE.md +23 -0
  1195. package/etc/mcp-server/node_modules/json5/README.md +282 -0
  1196. package/etc/mcp-server/node_modules/json5/dist/index.js +1737 -0
  1197. package/etc/mcp-server/node_modules/json5/dist/index.min.js +1 -0
  1198. package/etc/mcp-server/node_modules/json5/dist/index.min.mjs +1 -0
  1199. package/etc/mcp-server/node_modules/json5/dist/index.mjs +1426 -0
  1200. package/etc/mcp-server/node_modules/json5/lib/cli.js +152 -0
  1201. package/etc/mcp-server/node_modules/json5/lib/index.d.ts +4 -0
  1202. package/etc/mcp-server/node_modules/json5/lib/index.js +9 -0
  1203. package/etc/mcp-server/node_modules/json5/lib/parse.d.ts +15 -0
  1204. package/etc/mcp-server/node_modules/json5/lib/parse.js +1114 -0
  1205. package/etc/mcp-server/node_modules/json5/lib/register.js +13 -0
  1206. package/etc/mcp-server/node_modules/json5/lib/require.js +4 -0
  1207. package/etc/mcp-server/node_modules/json5/lib/stringify.d.ts +89 -0
  1208. package/etc/mcp-server/node_modules/json5/lib/stringify.js +261 -0
  1209. package/etc/mcp-server/node_modules/json5/lib/unicode.d.ts +3 -0
  1210. package/etc/mcp-server/node_modules/json5/lib/unicode.js +4 -0
  1211. package/etc/mcp-server/node_modules/json5/lib/util.d.ts +5 -0
  1212. package/etc/mcp-server/node_modules/json5/lib/util.js +35 -0
  1213. package/etc/mcp-server/node_modules/json5/package.json +72 -0
  1214. package/etc/mcp-server/node_modules/lru-cache/LICENSE +15 -0
  1215. package/etc/mcp-server/node_modules/lru-cache/README.md +166 -0
  1216. package/etc/mcp-server/node_modules/lru-cache/index.js +334 -0
  1217. package/etc/mcp-server/node_modules/lru-cache/package.json +32 -0
  1218. package/etc/mcp-server/node_modules/nanoid/bin/nanoid.cjs +0 -0
  1219. package/etc/mcp-server/node_modules/node-addon-api/tools/conversion.js +0 -0
  1220. package/etc/mcp-server/node_modules/node-releases/LICENSE +21 -0
  1221. package/etc/mcp-server/node_modules/node-releases/README.md +32 -0
  1222. package/etc/mcp-server/node_modules/node-releases/data/processed/envs.json +2946 -0
  1223. package/etc/mcp-server/node_modules/node-releases/data/release-schedule/release-schedule.json +160 -0
  1224. package/etc/mcp-server/node_modules/node-releases/package.json +28 -0
  1225. package/etc/mcp-server/node_modules/pathe/LICENSE +27 -1
  1226. package/etc/mcp-server/node_modules/pathe/README.md +18 -14
  1227. package/etc/mcp-server/node_modules/pathe/dist/index.cjs +33 -17
  1228. package/etc/mcp-server/node_modules/pathe/dist/index.d.cts +42 -31
  1229. package/etc/mcp-server/node_modules/pathe/dist/index.d.mts +42 -31
  1230. package/etc/mcp-server/node_modules/pathe/dist/index.d.ts +42 -31
  1231. package/etc/mcp-server/node_modules/pathe/dist/index.mjs +19 -1
  1232. package/etc/mcp-server/node_modules/pathe/dist/shared/pathe.BSlhyZSM.cjs +266 -0
  1233. package/etc/mcp-server/node_modules/pathe/dist/shared/pathe.M-eThtNZ.mjs +249 -0
  1234. package/etc/mcp-server/node_modules/pathe/dist/utils.cjs +33 -9
  1235. package/etc/mcp-server/node_modules/pathe/dist/utils.d.cts +29 -2
  1236. package/etc/mcp-server/node_modules/pathe/dist/utils.d.mts +29 -2
  1237. package/etc/mcp-server/node_modules/pathe/dist/utils.d.ts +29 -2
  1238. package/etc/mcp-server/node_modules/pathe/dist/utils.mjs +28 -5
  1239. package/etc/mcp-server/node_modules/pathe/package.json +33 -20
  1240. package/etc/mcp-server/node_modules/postcss/node_modules/.bin/nanoid +2 -2
  1241. package/etc/mcp-server/node_modules/rollup/dist/bin/rollup +0 -0
  1242. package/etc/mcp-server/node_modules/semver/bin/semver.js +0 -0
  1243. package/etc/mcp-server/node_modules/semver/semver.js +1643 -0
  1244. package/etc/mcp-server/node_modules/sharp/node_modules/.bin/semver +2 -2
  1245. package/etc/mcp-server/node_modules/strip-literal/LICENSE +21 -0
  1246. package/etc/mcp-server/node_modules/strip-literal/README.md +29 -0
  1247. package/etc/mcp-server/node_modules/strip-literal/dist/index.cjs +88 -0
  1248. package/etc/mcp-server/node_modules/strip-literal/dist/index.d.cts +30 -0
  1249. package/etc/mcp-server/node_modules/strip-literal/dist/index.d.mts +30 -0
  1250. package/etc/mcp-server/node_modules/strip-literal/dist/index.d.ts +30 -0
  1251. package/etc/mcp-server/node_modules/strip-literal/dist/index.mjs +80 -0
  1252. package/etc/mcp-server/node_modules/strip-literal/package.json +60 -0
  1253. package/etc/mcp-server/node_modules/tinyrainbow/dist/browser.d.ts +5 -3
  1254. package/etc/mcp-server/node_modules/tinyrainbow/dist/browser.js +14 -8
  1255. package/etc/mcp-server/node_modules/tinyrainbow/dist/{index-c1cfc5e9.d.ts → index-8b61d5bc.d.ts} +1 -3
  1256. package/etc/mcp-server/node_modules/tinyrainbow/dist/node.d.ts +5 -3
  1257. package/etc/mcp-server/node_modules/tinyrainbow/dist/node.js +15 -8
  1258. package/etc/mcp-server/node_modules/tinyrainbow/package.json +2 -1
  1259. package/etc/mcp-server/node_modules/tinyspy/dist/index.d.ts +4 -3
  1260. package/etc/mcp-server/node_modules/tinyspy/dist/index.js +127 -74
  1261. package/etc/mcp-server/node_modules/tinyspy/package.json +4 -10
  1262. package/etc/mcp-server/node_modules/ts-api-utils/node_modules/.bin/tsc +2 -2
  1263. package/etc/mcp-server/node_modules/ts-api-utils/node_modules/.bin/tsserver +2 -2
  1264. package/etc/mcp-server/node_modules/typescript/bin/tsc +0 -0
  1265. package/etc/mcp-server/node_modules/typescript/bin/tsserver +0 -0
  1266. package/etc/mcp-server/node_modules/typescript-eslint/node_modules/.bin/eslint +2 -2
  1267. package/etc/mcp-server/node_modules/typescript-eslint/node_modules/.bin/tsc +2 -2
  1268. package/etc/mcp-server/node_modules/typescript-eslint/node_modules/.bin/tsserver +2 -2
  1269. package/etc/mcp-server/node_modules/undici-types/balanced-pool.d.ts +11 -0
  1270. package/etc/mcp-server/node_modules/undici-types/client.d.ts +12 -1
  1271. package/etc/mcp-server/node_modules/undici-types/diagnostics-channel.d.ts +1 -2
  1272. package/etc/mcp-server/node_modules/undici-types/dispatcher.d.ts +19 -4
  1273. package/etc/mcp-server/node_modules/undici-types/errors.d.ts +21 -0
  1274. package/etc/mcp-server/node_modules/undici-types/fetch.d.ts +25 -25
  1275. package/etc/mcp-server/node_modules/undici-types/filereader.d.ts +1 -1
  1276. package/etc/mcp-server/node_modules/undici-types/formdata.d.ts +1 -1
  1277. package/etc/mcp-server/node_modules/undici-types/handlers.d.ts +10 -4
  1278. package/etc/mcp-server/node_modules/undici-types/index.d.ts +10 -2
  1279. package/etc/mcp-server/node_modules/undici-types/interceptors.d.ts +14 -2
  1280. package/etc/mcp-server/node_modules/undici-types/mock-interceptor.d.ts +4 -4
  1281. package/etc/mcp-server/node_modules/undici-types/package.json +1 -1
  1282. package/etc/mcp-server/node_modules/undici-types/patch.d.ts +0 -38
  1283. package/etc/mcp-server/node_modules/undici-types/pool.d.ts +11 -0
  1284. package/etc/mcp-server/node_modules/undici-types/proxy-agent.d.ts +0 -2
  1285. package/etc/mcp-server/node_modules/undici-types/readable.d.ts +7 -3
  1286. package/etc/mcp-server/node_modules/undici-types/webidl.d.ts +16 -8
  1287. package/etc/mcp-server/node_modules/undici-types/websocket.d.ts +22 -3
  1288. package/etc/mcp-server/node_modules/update-browserslist-db/LICENSE +20 -0
  1289. package/etc/mcp-server/node_modules/update-browserslist-db/README.md +30 -0
  1290. package/etc/mcp-server/node_modules/update-browserslist-db/check-npm-version.js +17 -0
  1291. package/etc/mcp-server/node_modules/update-browserslist-db/cli.js +42 -0
  1292. package/etc/mcp-server/node_modules/update-browserslist-db/index.d.ts +6 -0
  1293. package/etc/mcp-server/node_modules/update-browserslist-db/index.js +347 -0
  1294. package/etc/mcp-server/node_modules/update-browserslist-db/node_modules/.bin/browserslist +17 -0
  1295. package/etc/mcp-server/node_modules/update-browserslist-db/package.json +40 -0
  1296. package/etc/mcp-server/node_modules/update-browserslist-db/utils.js +25 -0
  1297. package/etc/mcp-server/node_modules/uri-js/LICENSE +0 -0
  1298. package/etc/mcp-server/node_modules/uri-js/README.md +0 -0
  1299. package/etc/mcp-server/node_modules/uri-js/dist/es5/uri.all.d.ts +0 -0
  1300. package/etc/mcp-server/node_modules/uri-js/dist/es5/uri.all.js +0 -0
  1301. package/etc/mcp-server/node_modules/uri-js/dist/es5/uri.all.js.map +0 -0
  1302. package/etc/mcp-server/node_modules/uri-js/dist/es5/uri.all.min.d.ts +0 -0
  1303. package/etc/mcp-server/node_modules/uri-js/dist/es5/uri.all.min.js +0 -0
  1304. package/etc/mcp-server/node_modules/uri-js/dist/es5/uri.all.min.js.map +0 -0
  1305. package/etc/mcp-server/node_modules/uri-js/dist/esnext/index.d.ts +0 -0
  1306. package/etc/mcp-server/node_modules/uri-js/dist/esnext/index.js +0 -0
  1307. package/etc/mcp-server/node_modules/uri-js/dist/esnext/index.js.map +0 -0
  1308. package/etc/mcp-server/node_modules/uri-js/dist/esnext/regexps-iri.d.ts +0 -0
  1309. package/etc/mcp-server/node_modules/uri-js/dist/esnext/regexps-iri.js +0 -0
  1310. package/etc/mcp-server/node_modules/uri-js/dist/esnext/regexps-iri.js.map +0 -0
  1311. package/etc/mcp-server/node_modules/uri-js/dist/esnext/regexps-uri.d.ts +0 -0
  1312. package/etc/mcp-server/node_modules/uri-js/dist/esnext/regexps-uri.js +0 -0
  1313. package/etc/mcp-server/node_modules/uri-js/dist/esnext/regexps-uri.js.map +0 -0
  1314. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/http.d.ts +0 -0
  1315. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/http.js +0 -0
  1316. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/http.js.map +0 -0
  1317. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/https.d.ts +0 -0
  1318. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/https.js +0 -0
  1319. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/https.js.map +0 -0
  1320. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts +0 -0
  1321. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/mailto.js +0 -0
  1322. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/mailto.js.map +0 -0
  1323. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts +0 -0
  1324. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js +0 -0
  1325. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map +0 -0
  1326. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/urn.d.ts +0 -0
  1327. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/urn.js +0 -0
  1328. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/urn.js.map +0 -0
  1329. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/ws.d.ts +0 -0
  1330. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/ws.js +0 -0
  1331. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/ws.js.map +0 -0
  1332. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/wss.d.ts +0 -0
  1333. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/wss.js +0 -0
  1334. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/wss.js.map +0 -0
  1335. package/etc/mcp-server/node_modules/uri-js/dist/esnext/uri.d.ts +0 -0
  1336. package/etc/mcp-server/node_modules/uri-js/dist/esnext/uri.js +0 -0
  1337. package/etc/mcp-server/node_modules/uri-js/dist/esnext/uri.js.map +0 -0
  1338. package/etc/mcp-server/node_modules/uri-js/dist/esnext/util.d.ts +0 -0
  1339. package/etc/mcp-server/node_modules/uri-js/dist/esnext/util.js +0 -0
  1340. package/etc/mcp-server/node_modules/uri-js/dist/esnext/util.js.map +0 -0
  1341. package/etc/mcp-server/node_modules/uri-js/package.json +0 -0
  1342. package/etc/mcp-server/node_modules/uri-js/yarn.lock +0 -0
  1343. package/etc/mcp-server/node_modules/vite/LICENSE.md +65 -1082
  1344. package/etc/mcp-server/node_modules/vite/bin/vite.js +19 -1
  1345. package/etc/mcp-server/node_modules/vite/client.d.ts +23 -0
  1346. package/etc/mcp-server/node_modules/vite/dist/client/client.mjs +448 -143
  1347. package/etc/mcp-server/node_modules/vite/dist/node/chunks/{dep-IQS-Za7F.js → dep-3RmXg9uo.js} +0 -8
  1348. package/etc/mcp-server/node_modules/vite/dist/node/chunks/{dep-BB45zftN.js → dep-CV-fz3CQ.js} +4 -175
  1349. package/etc/mcp-server/node_modules/vite/dist/node/chunks/{dep-D-7KCb9p.js → dep-CvfTChi5.js} +705 -447
  1350. package/etc/mcp-server/node_modules/vite/dist/node/chunks/{dep-Dnp7gl8U.js → dep-DDtvSN7_.js} +215 -106
  1351. package/etc/mcp-server/node_modules/vite/dist/node/chunks/{dep-BK3b2jBa.js → dep-Dm0c1Wj2.js} +42413 -59791
  1352. package/etc/mcp-server/node_modules/vite/dist/node/cli.js +78 -46
  1353. package/etc/mcp-server/node_modules/vite/dist/node/constants.js +48 -12
  1354. package/etc/mcp-server/node_modules/vite/dist/node/index.d.ts +1489 -889
  1355. package/etc/mcp-server/node_modules/vite/dist/node/index.js +49 -116
  1356. package/etc/mcp-server/node_modules/vite/dist/node/module-runner.d.ts +290 -0
  1357. package/etc/mcp-server/node_modules/vite/dist/node/{runtime.js → module-runner.js} +559 -314
  1358. package/etc/mcp-server/node_modules/vite/dist/node/moduleRunnerTransport.d-DJ_mE5sf.d.ts +87 -0
  1359. package/etc/mcp-server/node_modules/vite/dist/node-cjs/publicUtils.cjs +781 -2957
  1360. package/etc/mcp-server/node_modules/vite/index.cjs +39 -3
  1361. package/etc/mcp-server/node_modules/vite/misc/false.js +1 -0
  1362. package/etc/mcp-server/node_modules/vite/misc/true.js +1 -0
  1363. package/etc/mcp-server/node_modules/vite/node_modules/.bin/esbuild +3 -3
  1364. package/etc/mcp-server/node_modules/vite/node_modules/.bin/rollup +2 -2
  1365. package/etc/mcp-server/node_modules/vite/package.json +78 -65
  1366. package/etc/mcp-server/node_modules/vite/types/customEvent.d.ts +7 -1
  1367. package/etc/mcp-server/node_modules/vite/types/hmrPayload.d.ts +11 -2
  1368. package/etc/mcp-server/node_modules/vite/types/hot.d.ts +7 -4
  1369. package/etc/mcp-server/node_modules/vite/types/importMeta.d.ts +10 -1
  1370. package/etc/mcp-server/node_modules/vite/types/internal/cssPreprocessorOptions.d.ts +63 -0
  1371. package/etc/mcp-server/node_modules/vite/types/internal/lightningcssOptions.d.ts +18 -0
  1372. package/etc/mcp-server/node_modules/vite/types/metadata.d.ts +25 -0
  1373. package/etc/mcp-server/node_modules/vite-node/README.md +6 -4
  1374. package/etc/mcp-server/node_modules/vite-node/dist/chunk-browser.cjs +6 -7
  1375. package/etc/mcp-server/node_modules/vite-node/dist/chunk-browser.mjs +6 -7
  1376. package/etc/mcp-server/node_modules/vite-node/dist/chunk-hmr.cjs +209 -239
  1377. package/etc/mcp-server/node_modules/vite-node/dist/chunk-hmr.mjs +210 -240
  1378. package/etc/mcp-server/node_modules/vite-node/dist/cli.cjs +105 -111
  1379. package/etc/mcp-server/node_modules/vite-node/dist/cli.d.ts +11 -13
  1380. package/etc/mcp-server/node_modules/vite-node/dist/cli.mjs +107 -113
  1381. package/etc/mcp-server/node_modules/vite-node/dist/client.cjs +475 -463
  1382. package/etc/mcp-server/node_modules/vite-node/dist/client.d.ts +1 -1
  1383. package/etc/mcp-server/node_modules/vite-node/dist/client.mjs +476 -464
  1384. package/etc/mcp-server/node_modules/vite-node/dist/constants.cjs +27 -33
  1385. package/etc/mcp-server/node_modules/vite-node/dist/constants.mjs +27 -33
  1386. package/etc/mcp-server/node_modules/vite-node/dist/hmr.d.ts +29 -25
  1387. package/etc/mcp-server/node_modules/vite-node/dist/index.d-DGmxD2U7.d.ts +363 -0
  1388. package/etc/mcp-server/node_modules/vite-node/dist/index.d.ts +1 -1
  1389. package/etc/mcp-server/node_modules/vite-node/dist/server.cjs +375 -513
  1390. package/etc/mcp-server/node_modules/vite-node/dist/server.d.ts +43 -46
  1391. package/etc/mcp-server/node_modules/vite-node/dist/server.mjs +376 -514
  1392. package/etc/mcp-server/node_modules/vite-node/dist/source-map.cjs +349 -348
  1393. package/etc/mcp-server/node_modules/vite-node/dist/source-map.d.ts +4 -3
  1394. package/etc/mcp-server/node_modules/vite-node/dist/source-map.mjs +349 -348
  1395. package/etc/mcp-server/node_modules/vite-node/dist/types.d.ts +1 -1
  1396. package/etc/mcp-server/node_modules/vite-node/dist/utils.cjs +153 -138
  1397. package/etc/mcp-server/node_modules/vite-node/dist/utils.d.ts +10 -9
  1398. package/etc/mcp-server/node_modules/vite-node/dist/utils.mjs +154 -140
  1399. package/etc/mcp-server/node_modules/vite-node/node_modules/.bin/vite +4 -4
  1400. package/etc/mcp-server/node_modules/vite-node/package.json +7 -7
  1401. package/etc/mcp-server/node_modules/vite-node/vite-node.mjs +0 -0
  1402. package/etc/mcp-server/node_modules/vitest/LICENSE.md +126 -942
  1403. package/etc/mcp-server/node_modules/vitest/config.d.ts +2 -0
  1404. package/etc/mcp-server/node_modules/vitest/dist/browser.d.ts +22 -51
  1405. package/etc/mcp-server/node_modules/vitest/dist/browser.js +6 -7
  1406. package/etc/mcp-server/node_modules/vitest/dist/chunks/base.DfmxU-tU.js +38 -0
  1407. package/etc/mcp-server/node_modules/vitest/dist/chunks/benchmark.CYdenmiT.js +37 -0
  1408. package/etc/mcp-server/node_modules/vitest/dist/chunks/benchmark.d.BwvBVTda.d.ts +24 -0
  1409. package/etc/mcp-server/node_modules/vitest/dist/chunks/cac.0BJqEUeA.js +1469 -0
  1410. package/etc/mcp-server/node_modules/vitest/dist/chunks/cli-api.DWGBtMmz.js +10660 -0
  1411. package/etc/mcp-server/node_modules/vitest/dist/chunks/config.d.BKdhh7Zx.d.ts +224 -0
  1412. package/etc/mcp-server/node_modules/vitest/dist/chunks/console.CtFJOzRO.js +153 -0
  1413. package/etc/mcp-server/node_modules/vitest/dist/chunks/constants.DnKduX2e.js +44 -0
  1414. package/etc/mcp-server/node_modules/vitest/dist/chunks/coverage.DVF1vEu8.js +25 -0
  1415. package/etc/mcp-server/node_modules/vitest/dist/chunks/coverage.DfSpMS-b.js +4350 -0
  1416. package/etc/mcp-server/node_modules/vitest/dist/chunks/coverage.d.S9RMNXIe.d.ts +35 -0
  1417. package/etc/mcp-server/node_modules/vitest/dist/chunks/creator.GK6I-cL4.js +640 -0
  1418. package/etc/mcp-server/node_modules/vitest/dist/chunks/date.Bq6ZW5rf.js +73 -0
  1419. package/etc/mcp-server/node_modules/vitest/dist/chunks/defaults.B7q_naMc.js +115 -0
  1420. package/etc/mcp-server/node_modules/vitest/dist/chunks/env.D4Lgay0q.js +8 -0
  1421. package/etc/mcp-server/node_modules/vitest/dist/chunks/environment.d.cL3nLXbE.d.ts +119 -0
  1422. package/etc/mcp-server/node_modules/vitest/dist/chunks/execute.B7h3T_Hc.js +708 -0
  1423. package/etc/mcp-server/node_modules/vitest/dist/chunks/git.BVQ8w_Sw.js +72 -0
  1424. package/etc/mcp-server/node_modules/vitest/dist/chunks/global.d.MAmajcmJ.d.ts +136 -0
  1425. package/etc/mcp-server/node_modules/vitest/dist/chunks/{globals.D8ZVAdXd.js → globals.DEHgCU4V.js} +11 -11
  1426. package/etc/mcp-server/node_modules/vitest/dist/chunks/{index.68735LiX.js → index.B521nVV-.js} +41 -10
  1427. package/etc/mcp-server/node_modules/vitest/dist/chunks/index.BCWujgDG.js +231 -0
  1428. package/etc/mcp-server/node_modules/vitest/dist/chunks/index.CdQS2e2Q.js +37 -0
  1429. package/etc/mcp-server/node_modules/vitest/dist/chunks/index.CmSc2RE5.js +587 -0
  1430. package/etc/mcp-server/node_modules/vitest/dist/chunks/index.CwejwG0H.js +105 -0
  1431. package/etc/mcp-server/node_modules/vitest/dist/chunks/index.D3XRDfWc.js +213 -0
  1432. package/etc/mcp-server/node_modules/vitest/dist/chunks/index.VByaPkjc.js +2183 -0
  1433. package/etc/mcp-server/node_modules/vitest/dist/chunks/{index.BJDntFik.js → index.X0nbfr6-.js} +7 -7
  1434. package/etc/mcp-server/node_modules/vitest/dist/chunks/inspector.C914Efll.js +57 -0
  1435. package/etc/mcp-server/node_modules/vitest/dist/chunks/{mocker.cRtM890J.d.ts → mocker.d.BE_2ls6u.d.ts} +6 -6
  1436. package/etc/mcp-server/node_modules/vitest/dist/chunks/node.fjCdwEIl.js +15 -0
  1437. package/etc/mcp-server/node_modules/vitest/dist/chunks/reporters.d.BuRON0I0.d.ts +3168 -0
  1438. package/etc/mcp-server/node_modules/vitest/dist/chunks/rpc.-pEldfrD.js +83 -0
  1439. package/etc/mcp-server/node_modules/vitest/dist/chunks/runBaseTests.9Ij9_de-.js +129 -0
  1440. package/etc/mcp-server/node_modules/vitest/dist/chunks/setup-common.Dd054P77.js +60 -0
  1441. package/etc/mcp-server/node_modules/vitest/dist/chunks/suite.d.FvehnV49.d.ts +10 -0
  1442. package/etc/mcp-server/node_modules/vitest/dist/chunks/typechecker.DRKU1-1g.js +874 -0
  1443. package/etc/mcp-server/node_modules/vitest/dist/chunks/utils.CAioKnHs.js +61 -0
  1444. package/etc/mcp-server/node_modules/vitest/dist/chunks/utils.XdZDrNZV.js +65 -0
  1445. package/etc/mcp-server/node_modules/vitest/dist/chunks/{vi.DgezovHB.js → vi.bdSIJ99Y.js} +1293 -1258
  1446. package/etc/mcp-server/node_modules/vitest/dist/chunks/vite.d.BnOPPc46.d.ts +25 -0
  1447. package/etc/mcp-server/node_modules/vitest/dist/chunks/vm.BThCzidc.js +756 -0
  1448. package/etc/mcp-server/node_modules/vitest/dist/chunks/worker.d.CUgIPz9V.d.ts +176 -0
  1449. package/etc/mcp-server/node_modules/vitest/dist/chunks/{worker.B9FxPCaC.d.ts → worker.d.uzWsCv9X.d.ts} +2 -2
  1450. package/etc/mcp-server/node_modules/vitest/dist/cli.js +21 -2
  1451. package/etc/mcp-server/node_modules/vitest/dist/config.cjs +104 -114
  1452. package/etc/mcp-server/node_modules/vitest/dist/config.d.ts +64 -57
  1453. package/etc/mcp-server/node_modules/vitest/dist/config.js +12 -135
  1454. package/etc/mcp-server/node_modules/vitest/dist/coverage.d.ts +90 -189
  1455. package/etc/mcp-server/node_modules/vitest/dist/coverage.js +22 -449
  1456. package/etc/mcp-server/node_modules/vitest/dist/environments.d.ts +16 -11
  1457. package/etc/mcp-server/node_modules/vitest/dist/environments.js +1 -1
  1458. package/etc/mcp-server/node_modules/vitest/dist/execute.d.ts +117 -111
  1459. package/etc/mcp-server/node_modules/vitest/dist/execute.js +1 -1
  1460. package/etc/mcp-server/node_modules/vitest/dist/index.d.ts +460 -524
  1461. package/etc/mcp-server/node_modules/vitest/dist/index.js +6 -7
  1462. package/etc/mcp-server/node_modules/vitest/dist/node.d.ts +104 -71
  1463. package/etc/mcp-server/node_modules/vitest/dist/node.js +76 -47
  1464. package/etc/mcp-server/node_modules/vitest/dist/path.js +1 -4
  1465. package/etc/mcp-server/node_modules/vitest/dist/reporters.d.ts +14 -9
  1466. package/etc/mcp-server/node_modules/vitest/dist/reporters.js +16 -21
  1467. package/etc/mcp-server/node_modules/vitest/dist/runners.d.ts +34 -29
  1468. package/etc/mcp-server/node_modules/vitest/dist/runners.js +211 -278
  1469. package/etc/mcp-server/node_modules/vitest/dist/snapshot.d.ts +2 -2
  1470. package/etc/mcp-server/node_modules/vitest/dist/snapshot.js +2 -2
  1471. package/etc/mcp-server/node_modules/vitest/dist/suite.d.ts +3 -3
  1472. package/etc/mcp-server/node_modules/vitest/dist/suite.js +2 -2
  1473. package/etc/mcp-server/node_modules/vitest/dist/worker.js +97 -114
  1474. package/etc/mcp-server/node_modules/vitest/dist/workers/forks.js +26 -24
  1475. package/etc/mcp-server/node_modules/vitest/dist/workers/runVmTests.js +63 -68
  1476. package/etc/mcp-server/node_modules/vitest/dist/workers/threads.js +15 -15
  1477. package/etc/mcp-server/node_modules/vitest/dist/workers/vmForks.js +26 -26
  1478. package/etc/mcp-server/node_modules/vitest/dist/workers/vmThreads.js +17 -17
  1479. package/etc/mcp-server/node_modules/vitest/dist/workers.d.ts +17 -14
  1480. package/etc/mcp-server/node_modules/vitest/dist/workers.js +11 -11
  1481. package/etc/mcp-server/node_modules/vitest/globals.d.ts +1 -0
  1482. package/etc/mcp-server/node_modules/vitest/node_modules/.bin/vite +4 -4
  1483. package/etc/mcp-server/node_modules/vitest/node_modules/.bin/vite-node +4 -4
  1484. package/etc/mcp-server/node_modules/vitest/node_modules/.bin/why-is-node-running +2 -2
  1485. package/etc/mcp-server/node_modules/vitest/optional-types.d.ts +7 -0
  1486. package/etc/mcp-server/node_modules/vitest/package.json +46 -46
  1487. package/etc/mcp-server/node_modules/vitest/vitest.mjs +0 -0
  1488. package/etc/mcp-server/node_modules/which/bin/node-which +0 -0
  1489. package/etc/mcp-server/node_modules/why-is-node-running/cli.js +0 -0
  1490. package/etc/mcp-server/node_modules/yallist/LICENSE +15 -0
  1491. package/etc/mcp-server/node_modules/yallist/README.md +204 -0
  1492. package/etc/mcp-server/node_modules/yallist/iterator.js +8 -0
  1493. package/etc/mcp-server/node_modules/yallist/package.json +29 -0
  1494. package/etc/mcp-server/node_modules/yallist/yallist.js +426 -0
  1495. package/etc/mcp-server/package.json +1 -1
  1496. package/package.json +13 -12
  1497. package/etc/mcp-server/node_modules/@types/node/dom-events.d.ts +0 -124
  1498. package/etc/mcp-server/node_modules/@types/node/globals.global.d.ts +0 -1
  1499. package/etc/mcp-server/node_modules/@vitest/expect/dist/chai.d.cts +0 -1968
  1500. package/etc/mcp-server/node_modules/@vitest/expect/index.d.ts +0 -3
  1501. package/etc/mcp-server/node_modules/@vitest/mocker/dist/mocker-pQgp1HFr.d.ts +0 -78
  1502. package/etc/mcp-server/node_modules/@vitest/mocker/dist/types-DZOqTgiN.d.ts +0 -83
  1503. package/etc/mcp-server/node_modules/@vitest/runner/dist/chunk-tasks.js +0 -249
  1504. package/etc/mcp-server/node_modules/@vitest/runner/dist/tasks-3ZnPj1LR.d.ts +0 -471
  1505. package/etc/mcp-server/node_modules/@vitest/snapshot/dist/environment-Ddx0EDtY.d.ts +0 -22
  1506. package/etc/mcp-server/node_modules/@vitest/snapshot/dist/rawSnapshot-CPNkto81.d.ts +0 -60
  1507. package/etc/mcp-server/node_modules/@vitest/utils/dist/types-Bxe-2Udy.d.ts +0 -35
  1508. package/etc/mcp-server/node_modules/pathe/dist/shared/pathe.1f0a373c.cjs +0 -238
  1509. package/etc/mcp-server/node_modules/pathe/dist/shared/pathe.ff20891b.mjs +0 -221
  1510. package/etc/mcp-server/node_modules/tinyspy/dist/index.cjs +0 -179
  1511. package/etc/mcp-server/node_modules/tinyspy/dist/index.d.cts +0 -83
  1512. package/etc/mcp-server/node_modules/vite/dist/node/runtime.d.ts +0 -63
  1513. package/etc/mcp-server/node_modules/vite/dist/node/types.d-aGj9QkWt.d.ts +0 -281
  1514. package/etc/mcp-server/node_modules/vite-node/dist/index-z0R8hVRu.d.ts +0 -316
  1515. package/etc/mcp-server/node_modules/vitest/dist/chunks/RandomSequencer.CMRlh2v4.js +0 -972
  1516. package/etc/mcp-server/node_modules/vitest/dist/chunks/base.BZZh4cSm.js +0 -38
  1517. package/etc/mcp-server/node_modules/vitest/dist/chunks/benchmark.Cdu9hjj4.js +0 -40
  1518. package/etc/mcp-server/node_modules/vitest/dist/chunks/benchmark.geERunq4.d.ts +0 -24
  1519. package/etc/mcp-server/node_modules/vitest/dist/chunks/cac.CB_9Zo9Q.js +0 -1570
  1520. package/etc/mcp-server/node_modules/vitest/dist/chunks/cli-api.DqsSTaIi.js +0 -12023
  1521. package/etc/mcp-server/node_modules/vitest/dist/chunks/config.Cy0C388Z.d.ts +0 -208
  1522. package/etc/mcp-server/node_modules/vitest/dist/chunks/console.BYGVloWk.js +0 -170
  1523. package/etc/mcp-server/node_modules/vitest/dist/chunks/constants.fzPh7AOq.js +0 -46
  1524. package/etc/mcp-server/node_modules/vitest/dist/chunks/coverage.BoMDb1ip.js +0 -68
  1525. package/etc/mcp-server/node_modules/vitest/dist/chunks/creator.IIqd8RWT.js +0 -671
  1526. package/etc/mcp-server/node_modules/vitest/dist/chunks/date.W2xKR2qe.js +0 -53
  1527. package/etc/mcp-server/node_modules/vitest/dist/chunks/environment.LoooBwUu.d.ts +0 -174
  1528. package/etc/mcp-server/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js +0 -816
  1529. package/etc/mcp-server/node_modules/vitest/dist/chunks/git.B5SDxu-n.js +0 -69
  1530. package/etc/mcp-server/node_modules/vitest/dist/chunks/index.CqYx2Nsr.js +0 -133
  1531. package/etc/mcp-server/node_modules/vitest/dist/chunks/index.DsZFoqi9.js +0 -5233
  1532. package/etc/mcp-server/node_modules/vitest/dist/chunks/index.K90BXFOx.js +0 -658
  1533. package/etc/mcp-server/node_modules/vitest/dist/chunks/index.ckWaX2gY.js +0 -54
  1534. package/etc/mcp-server/node_modules/vitest/dist/chunks/index.nEwtF0bu.js +0 -107
  1535. package/etc/mcp-server/node_modules/vitest/dist/chunks/inspector.70d6emsh.js +0 -54
  1536. package/etc/mcp-server/node_modules/vitest/dist/chunks/node.AKq966Jp.js +0 -15
  1537. package/etc/mcp-server/node_modules/vitest/dist/chunks/reporters.nr4dxCkA.d.ts +0 -2774
  1538. package/etc/mcp-server/node_modules/vitest/dist/chunks/resolveConfig.rBxzbVsl.js +0 -8335
  1539. package/etc/mcp-server/node_modules/vitest/dist/chunks/rpc.C3q9uwRX.js +0 -103
  1540. package/etc/mcp-server/node_modules/vitest/dist/chunks/run-once.2ogXb3JV.js +0 -28
  1541. package/etc/mcp-server/node_modules/vitest/dist/chunks/runBaseTests.3qpJUEJM.js +0 -139
  1542. package/etc/mcp-server/node_modules/vitest/dist/chunks/setup-common.Dj6BZI3u.js +0 -70
  1543. package/etc/mcp-server/node_modules/vitest/dist/chunks/spy.Cf_4R5Oe.js +0 -22
  1544. package/etc/mcp-server/node_modules/vitest/dist/chunks/suite.B2jumIFP.d.ts +0 -10
  1545. package/etc/mcp-server/node_modules/vitest/dist/chunks/utils.C8RiOc4B.js +0 -77
  1546. package/etc/mcp-server/node_modules/vitest/dist/chunks/utils.Cn0zI1t3.js +0 -68
  1547. package/etc/mcp-server/node_modules/vitest/dist/chunks/utils.DNoFbBUZ.js +0 -212
  1548. package/etc/mcp-server/node_modules/vitest/dist/chunks/vite.CzKp4x9w.d.ts +0 -11
  1549. package/etc/mcp-server/node_modules/vitest/dist/chunks/vm.Zr4qWzDJ.js +0 -841
  1550. package/etc/mcp-server/node_modules/vitest/dist/chunks/worker.tN5KGIih.d.ts +0 -156
  1551. package/etc/mcp-server/node_modules/vitest/dist/utils.d.ts +0 -3
  1552. package/etc/mcp-server/node_modules/vitest/dist/utils.js +0 -2
@@ -0,0 +1,4350 @@
1
+ import fs, { statSync, realpathSync, promises as promises$1, mkdirSync, existsSync, readdirSync, writeFileSync } from 'node:fs';
2
+ import { isAbsolute, join as join$1, dirname as dirname$1, resolve as resolve$1, relative, normalize } from 'pathe';
3
+ import pm from 'picomatch';
4
+ import c from 'tinyrainbow';
5
+ import { c as configDefaults, e as benchmarkConfigDefaults, a as coverageConfigDefaults } from './defaults.B7q_naMc.js';
6
+ import crypto from 'node:crypto';
7
+ import { createDefer, shuffle, toArray } from '@vitest/utils';
8
+ import { builtinModules, createRequire } from 'node:module';
9
+ import path, { win32, dirname, join, resolve } from 'node:path';
10
+ import process$1 from 'node:process';
11
+ import fs$1, { writeFile, rename, stat, unlink } from 'node:fs/promises';
12
+ import { fileURLToPath as fileURLToPath$1, pathToFileURL as pathToFileURL$1, URL as URL$1 } from 'node:url';
13
+ import assert from 'node:assert';
14
+ import v8 from 'node:v8';
15
+ import { format, inspect } from 'node:util';
16
+ import { version, mergeConfig } from 'vite';
17
+ import { e as extraInlineDeps, d as defaultBrowserPort, b as defaultInspectPort, a as defaultPort } from './constants.DnKduX2e.js';
18
+ import { a as isWindows } from './env.D4Lgay0q.js';
19
+ import * as nodeos from 'node:os';
20
+ import nodeos__default from 'node:os';
21
+ import { isatty } from 'node:tty';
22
+ import EventEmitter from 'node:events';
23
+ import { c as createBirpc } from './index.B521nVV-.js';
24
+ import Tinypool$1, { Tinypool } from 'tinypool';
25
+ import { w as wrapSerializableConfig, a as Typechecker } from './typechecker.DRKU1-1g.js';
26
+ import { MessageChannel } from 'node:worker_threads';
27
+ import { hasFailed } from '@vitest/runner/utils';
28
+ import { rootDir } from '../path.js';
29
+ import { slash } from 'vite-node/utils';
30
+ import { isCI, provider } from 'std-env';
31
+ import { r as resolveCoverageProviderModule } from './coverage.DVF1vEu8.js';
32
+
33
+ function groupBy(collection, iteratee) {
34
+ return collection.reduce((acc, item) => {
35
+ const key = iteratee(item);
36
+ acc[key] ||= [];
37
+ acc[key].push(item);
38
+ return acc;
39
+ }, {});
40
+ }
41
+ function stdout() {
42
+ // @ts-expect-error Node.js maps process.stdout to console._stdout
43
+ // eslint-disable-next-line no-console
44
+ return console._stdout || process.stdout;
45
+ }
46
+ function escapeRegExp(s) {
47
+ // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping
48
+ return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
49
+ }
50
+ function wildcardPatternToRegExp(pattern) {
51
+ const negated = pattern.startsWith("!");
52
+ if (negated) pattern = pattern.slice(1);
53
+ let regexp = `${pattern.split("*").map(escapeRegExp).join(".*")}$`;
54
+ if (negated) regexp = `(?!${regexp})`;
55
+ return new RegExp(`^${regexp}`, "i");
56
+ }
57
+
58
+ const hash = crypto.hash ?? ((algorithm, data, outputEncoding) => crypto.createHash(algorithm).update(data).digest(outputEncoding));
59
+
60
+ const JOIN_LEADING_SLASH_RE = /^\.?\//;
61
+ function withTrailingSlash(input = "", respectQueryAndFragment) {
62
+ {
63
+ return input.endsWith("/") ? input : input + "/";
64
+ }
65
+ }
66
+ function isNonEmptyURL(url) {
67
+ return url && url !== "/";
68
+ }
69
+ function joinURL(base, ...input) {
70
+ let url = base || "";
71
+ for (const segment of input.filter((url2) => isNonEmptyURL(url2))) {
72
+ if (url) {
73
+ const _segment = segment.replace(JOIN_LEADING_SLASH_RE, "");
74
+ url = withTrailingSlash(url) + _segment;
75
+ } else {
76
+ url = segment;
77
+ }
78
+ }
79
+ return url;
80
+ }
81
+
82
+ const BUILTIN_MODULES = new Set(builtinModules);
83
+ function normalizeSlash(path) {
84
+ return path.replace(/\\/g, "/");
85
+ }
86
+
87
+ /**
88
+ * @typedef ErrnoExceptionFields
89
+ * @property {number | undefined} [errnode]
90
+ * @property {string | undefined} [code]
91
+ * @property {string | undefined} [path]
92
+ * @property {string | undefined} [syscall]
93
+ * @property {string | undefined} [url]
94
+ *
95
+ * @typedef {Error & ErrnoExceptionFields} ErrnoException
96
+ */
97
+
98
+
99
+ const own$1 = {}.hasOwnProperty;
100
+
101
+ const classRegExp = /^([A-Z][a-z\d]*)+$/;
102
+ // Sorted by a rough estimate on most frequently used entries.
103
+ const kTypes = new Set([
104
+ 'string',
105
+ 'function',
106
+ 'number',
107
+ 'object',
108
+ // Accept 'Function' and 'Object' as alternative to the lower cased version.
109
+ 'Function',
110
+ 'Object',
111
+ 'boolean',
112
+ 'bigint',
113
+ 'symbol'
114
+ ]);
115
+
116
+ const codes = {};
117
+
118
+ /**
119
+ * Create a list string in the form like 'A and B' or 'A, B, ..., and Z'.
120
+ * We cannot use Intl.ListFormat because it's not available in
121
+ * --without-intl builds.
122
+ *
123
+ * @param {Array<string>} array
124
+ * An array of strings.
125
+ * @param {string} [type]
126
+ * The list type to be inserted before the last element.
127
+ * @returns {string}
128
+ */
129
+ function formatList(array, type = 'and') {
130
+ return array.length < 3
131
+ ? array.join(` ${type} `)
132
+ : `${array.slice(0, -1).join(', ')}, ${type} ${array[array.length - 1]}`
133
+ }
134
+
135
+ /** @type {Map<string, MessageFunction | string>} */
136
+ const messages = new Map();
137
+ const nodeInternalPrefix = '__node_internal_';
138
+ /** @type {number} */
139
+ let userStackTraceLimit;
140
+
141
+ codes.ERR_INVALID_ARG_TYPE = createError(
142
+ 'ERR_INVALID_ARG_TYPE',
143
+ /**
144
+ * @param {string} name
145
+ * @param {Array<string> | string} expected
146
+ * @param {unknown} actual
147
+ */
148
+ (name, expected, actual) => {
149
+ assert(typeof name === 'string', "'name' must be a string");
150
+ if (!Array.isArray(expected)) {
151
+ expected = [expected];
152
+ }
153
+
154
+ let message = 'The ';
155
+ if (name.endsWith(' argument')) {
156
+ // For cases like 'first argument'
157
+ message += `${name} `;
158
+ } else {
159
+ const type = name.includes('.') ? 'property' : 'argument';
160
+ message += `"${name}" ${type} `;
161
+ }
162
+
163
+ message += 'must be ';
164
+
165
+ /** @type {Array<string>} */
166
+ const types = [];
167
+ /** @type {Array<string>} */
168
+ const instances = [];
169
+ /** @type {Array<string>} */
170
+ const other = [];
171
+
172
+ for (const value of expected) {
173
+ assert(
174
+ typeof value === 'string',
175
+ 'All expected entries have to be of type string'
176
+ );
177
+
178
+ if (kTypes.has(value)) {
179
+ types.push(value.toLowerCase());
180
+ } else if (classRegExp.exec(value) === null) {
181
+ assert(
182
+ value !== 'object',
183
+ 'The value "object" should be written as "Object"'
184
+ );
185
+ other.push(value);
186
+ } else {
187
+ instances.push(value);
188
+ }
189
+ }
190
+
191
+ // Special handle `object` in case other instances are allowed to outline
192
+ // the differences between each other.
193
+ if (instances.length > 0) {
194
+ const pos = types.indexOf('object');
195
+ if (pos !== -1) {
196
+ types.slice(pos, 1);
197
+ instances.push('Object');
198
+ }
199
+ }
200
+
201
+ if (types.length > 0) {
202
+ message += `${types.length > 1 ? 'one of type' : 'of type'} ${formatList(
203
+ types,
204
+ 'or'
205
+ )}`;
206
+ if (instances.length > 0 || other.length > 0) message += ' or ';
207
+ }
208
+
209
+ if (instances.length > 0) {
210
+ message += `an instance of ${formatList(instances, 'or')}`;
211
+ if (other.length > 0) message += ' or ';
212
+ }
213
+
214
+ if (other.length > 0) {
215
+ if (other.length > 1) {
216
+ message += `one of ${formatList(other, 'or')}`;
217
+ } else {
218
+ if (other[0].toLowerCase() !== other[0]) message += 'an ';
219
+ message += `${other[0]}`;
220
+ }
221
+ }
222
+
223
+ message += `. Received ${determineSpecificType(actual)}`;
224
+
225
+ return message
226
+ },
227
+ TypeError
228
+ );
229
+
230
+ codes.ERR_INVALID_MODULE_SPECIFIER = createError(
231
+ 'ERR_INVALID_MODULE_SPECIFIER',
232
+ /**
233
+ * @param {string} request
234
+ * @param {string} reason
235
+ * @param {string} [base]
236
+ */
237
+ (request, reason, base = undefined) => {
238
+ return `Invalid module "${request}" ${reason}${
239
+ base ? ` imported from ${base}` : ''
240
+ }`
241
+ },
242
+ TypeError
243
+ );
244
+
245
+ codes.ERR_INVALID_PACKAGE_CONFIG = createError(
246
+ 'ERR_INVALID_PACKAGE_CONFIG',
247
+ /**
248
+ * @param {string} path
249
+ * @param {string} [base]
250
+ * @param {string} [message]
251
+ */
252
+ (path, base, message) => {
253
+ return `Invalid package config ${path}${
254
+ base ? ` while importing ${base}` : ''
255
+ }${message ? `. ${message}` : ''}`
256
+ },
257
+ Error
258
+ );
259
+
260
+ codes.ERR_INVALID_PACKAGE_TARGET = createError(
261
+ 'ERR_INVALID_PACKAGE_TARGET',
262
+ /**
263
+ * @param {string} packagePath
264
+ * @param {string} key
265
+ * @param {unknown} target
266
+ * @param {boolean} [isImport=false]
267
+ * @param {string} [base]
268
+ */
269
+ (packagePath, key, target, isImport = false, base = undefined) => {
270
+ const relatedError =
271
+ typeof target === 'string' &&
272
+ !isImport &&
273
+ target.length > 0 &&
274
+ !target.startsWith('./');
275
+ if (key === '.') {
276
+ assert(isImport === false);
277
+ return (
278
+ `Invalid "exports" main target ${JSON.stringify(target)} defined ` +
279
+ `in the package config ${packagePath}package.json${
280
+ base ? ` imported from ${base}` : ''
281
+ }${relatedError ? '; targets must start with "./"' : ''}`
282
+ )
283
+ }
284
+
285
+ return `Invalid "${
286
+ isImport ? 'imports' : 'exports'
287
+ }" target ${JSON.stringify(
288
+ target
289
+ )} defined for '${key}' in the package config ${packagePath}package.json${
290
+ base ? ` imported from ${base}` : ''
291
+ }${relatedError ? '; targets must start with "./"' : ''}`
292
+ },
293
+ Error
294
+ );
295
+
296
+ codes.ERR_MODULE_NOT_FOUND = createError(
297
+ 'ERR_MODULE_NOT_FOUND',
298
+ /**
299
+ * @param {string} path
300
+ * @param {string} base
301
+ * @param {boolean} [exactUrl]
302
+ */
303
+ (path, base, exactUrl = false) => {
304
+ return `Cannot find ${
305
+ exactUrl ? 'module' : 'package'
306
+ } '${path}' imported from ${base}`
307
+ },
308
+ Error
309
+ );
310
+
311
+ codes.ERR_NETWORK_IMPORT_DISALLOWED = createError(
312
+ 'ERR_NETWORK_IMPORT_DISALLOWED',
313
+ "import of '%s' by %s is not supported: %s",
314
+ Error
315
+ );
316
+
317
+ codes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError(
318
+ 'ERR_PACKAGE_IMPORT_NOT_DEFINED',
319
+ /**
320
+ * @param {string} specifier
321
+ * @param {string} packagePath
322
+ * @param {string} base
323
+ */
324
+ (specifier, packagePath, base) => {
325
+ return `Package import specifier "${specifier}" is not defined${
326
+ packagePath ? ` in package ${packagePath}package.json` : ''
327
+ } imported from ${base}`
328
+ },
329
+ TypeError
330
+ );
331
+
332
+ codes.ERR_PACKAGE_PATH_NOT_EXPORTED = createError(
333
+ 'ERR_PACKAGE_PATH_NOT_EXPORTED',
334
+ /**
335
+ * @param {string} packagePath
336
+ * @param {string} subpath
337
+ * @param {string} [base]
338
+ */
339
+ (packagePath, subpath, base = undefined) => {
340
+ if (subpath === '.')
341
+ return `No "exports" main defined in ${packagePath}package.json${
342
+ base ? ` imported from ${base}` : ''
343
+ }`
344
+ return `Package subpath '${subpath}' is not defined by "exports" in ${packagePath}package.json${
345
+ base ? ` imported from ${base}` : ''
346
+ }`
347
+ },
348
+ Error
349
+ );
350
+
351
+ codes.ERR_UNSUPPORTED_DIR_IMPORT = createError(
352
+ 'ERR_UNSUPPORTED_DIR_IMPORT',
353
+ "Directory import '%s' is not supported " +
354
+ 'resolving ES modules imported from %s',
355
+ Error
356
+ );
357
+
358
+ codes.ERR_UNSUPPORTED_RESOLVE_REQUEST = createError(
359
+ 'ERR_UNSUPPORTED_RESOLVE_REQUEST',
360
+ 'Failed to resolve module specifier "%s" from "%s": Invalid relative URL or base scheme is not hierarchical.',
361
+ TypeError
362
+ );
363
+
364
+ codes.ERR_UNKNOWN_FILE_EXTENSION = createError(
365
+ 'ERR_UNKNOWN_FILE_EXTENSION',
366
+ /**
367
+ * @param {string} extension
368
+ * @param {string} path
369
+ */
370
+ (extension, path) => {
371
+ return `Unknown file extension "${extension}" for ${path}`
372
+ },
373
+ TypeError
374
+ );
375
+
376
+ codes.ERR_INVALID_ARG_VALUE = createError(
377
+ 'ERR_INVALID_ARG_VALUE',
378
+ /**
379
+ * @param {string} name
380
+ * @param {unknown} value
381
+ * @param {string} [reason='is invalid']
382
+ */
383
+ (name, value, reason = 'is invalid') => {
384
+ let inspected = inspect(value);
385
+
386
+ if (inspected.length > 128) {
387
+ inspected = `${inspected.slice(0, 128)}...`;
388
+ }
389
+
390
+ const type = name.includes('.') ? 'property' : 'argument';
391
+
392
+ return `The ${type} '${name}' ${reason}. Received ${inspected}`
393
+ },
394
+ TypeError
395
+ // Note: extra classes have been shaken out.
396
+ // , RangeError
397
+ );
398
+
399
+ /**
400
+ * Utility function for registering the error codes. Only used here. Exported
401
+ * *only* to allow for testing.
402
+ * @param {string} sym
403
+ * @param {MessageFunction | string} value
404
+ * @param {ErrorConstructor} constructor
405
+ * @returns {new (...parameters: Array<any>) => Error}
406
+ */
407
+ function createError(sym, value, constructor) {
408
+ // Special case for SystemError that formats the error message differently
409
+ // The SystemErrors only have SystemError as their base classes.
410
+ messages.set(sym, value);
411
+
412
+ return makeNodeErrorWithCode(constructor, sym)
413
+ }
414
+
415
+ /**
416
+ * @param {ErrorConstructor} Base
417
+ * @param {string} key
418
+ * @returns {ErrorConstructor}
419
+ */
420
+ function makeNodeErrorWithCode(Base, key) {
421
+ // @ts-expect-error It’s a Node error.
422
+ return NodeError
423
+ /**
424
+ * @param {Array<unknown>} parameters
425
+ */
426
+ function NodeError(...parameters) {
427
+ const limit = Error.stackTraceLimit;
428
+ if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;
429
+ const error = new Base();
430
+ // Reset the limit and setting the name property.
431
+ if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit;
432
+ const message = getMessage(key, parameters, error);
433
+ Object.defineProperties(error, {
434
+ // Note: no need to implement `kIsNodeError` symbol, would be hard,
435
+ // probably.
436
+ message: {
437
+ value: message,
438
+ enumerable: false,
439
+ writable: true,
440
+ configurable: true
441
+ },
442
+ toString: {
443
+ /** @this {Error} */
444
+ value() {
445
+ return `${this.name} [${key}]: ${this.message}`
446
+ },
447
+ enumerable: false,
448
+ writable: true,
449
+ configurable: true
450
+ }
451
+ });
452
+
453
+ captureLargerStackTrace(error);
454
+ // @ts-expect-error It’s a Node error.
455
+ error.code = key;
456
+ return error
457
+ }
458
+ }
459
+
460
+ /**
461
+ * @returns {boolean}
462
+ */
463
+ function isErrorStackTraceLimitWritable() {
464
+ // Do no touch Error.stackTraceLimit as V8 would attempt to install
465
+ // it again during deserialization.
466
+ try {
467
+ if (v8.startupSnapshot.isBuildingSnapshot()) {
468
+ return false
469
+ }
470
+ } catch {}
471
+
472
+ const desc = Object.getOwnPropertyDescriptor(Error, 'stackTraceLimit');
473
+ if (desc === undefined) {
474
+ return Object.isExtensible(Error)
475
+ }
476
+
477
+ return own$1.call(desc, 'writable') && desc.writable !== undefined
478
+ ? desc.writable
479
+ : desc.set !== undefined
480
+ }
481
+
482
+ /**
483
+ * This function removes unnecessary frames from Node.js core errors.
484
+ * @template {(...parameters: unknown[]) => unknown} T
485
+ * @param {T} wrappedFunction
486
+ * @returns {T}
487
+ */
488
+ function hideStackFrames(wrappedFunction) {
489
+ // We rename the functions that will be hidden to cut off the stacktrace
490
+ // at the outermost one
491
+ const hidden = nodeInternalPrefix + wrappedFunction.name;
492
+ Object.defineProperty(wrappedFunction, 'name', {value: hidden});
493
+ return wrappedFunction
494
+ }
495
+
496
+ const captureLargerStackTrace = hideStackFrames(
497
+ /**
498
+ * @param {Error} error
499
+ * @returns {Error}
500
+ */
501
+ // @ts-expect-error: fine
502
+ function (error) {
503
+ const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable();
504
+ if (stackTraceLimitIsWritable) {
505
+ userStackTraceLimit = Error.stackTraceLimit;
506
+ Error.stackTraceLimit = Number.POSITIVE_INFINITY;
507
+ }
508
+
509
+ Error.captureStackTrace(error);
510
+
511
+ // Reset the limit
512
+ if (stackTraceLimitIsWritable) Error.stackTraceLimit = userStackTraceLimit;
513
+
514
+ return error
515
+ }
516
+ );
517
+
518
+ /**
519
+ * @param {string} key
520
+ * @param {Array<unknown>} parameters
521
+ * @param {Error} self
522
+ * @returns {string}
523
+ */
524
+ function getMessage(key, parameters, self) {
525
+ const message = messages.get(key);
526
+ assert(message !== undefined, 'expected `message` to be found');
527
+
528
+ if (typeof message === 'function') {
529
+ assert(
530
+ message.length <= parameters.length, // Default options do not count.
531
+ `Code: ${key}; The provided arguments length (${parameters.length}) does not ` +
532
+ `match the required ones (${message.length}).`
533
+ );
534
+ return Reflect.apply(message, self, parameters)
535
+ }
536
+
537
+ const regex = /%[dfijoOs]/g;
538
+ let expectedLength = 0;
539
+ while (regex.exec(message) !== null) expectedLength++;
540
+ assert(
541
+ expectedLength === parameters.length,
542
+ `Code: ${key}; The provided arguments length (${parameters.length}) does not ` +
543
+ `match the required ones (${expectedLength}).`
544
+ );
545
+ if (parameters.length === 0) return message
546
+
547
+ parameters.unshift(message);
548
+ return Reflect.apply(format, null, parameters)
549
+ }
550
+
551
+ /**
552
+ * Determine the specific type of a value for type-mismatch errors.
553
+ * @param {unknown} value
554
+ * @returns {string}
555
+ */
556
+ function determineSpecificType(value) {
557
+ if (value === null || value === undefined) {
558
+ return String(value)
559
+ }
560
+
561
+ if (typeof value === 'function' && value.name) {
562
+ return `function ${value.name}`
563
+ }
564
+
565
+ if (typeof value === 'object') {
566
+ if (value.constructor && value.constructor.name) {
567
+ return `an instance of ${value.constructor.name}`
568
+ }
569
+
570
+ return `${inspect(value, {depth: -1})}`
571
+ }
572
+
573
+ let inspected = inspect(value, {colors: false});
574
+
575
+ if (inspected.length > 28) {
576
+ inspected = `${inspected.slice(0, 25)}...`;
577
+ }
578
+
579
+ return `type ${typeof value} (${inspected})`
580
+ }
581
+
582
+ // Manually “tree shaken” from:
583
+ // <https://github.com/nodejs/node/blob/7c3dce0/lib/internal/modules/package_json_reader.js>
584
+ // Last checked on: Apr 29, 2023.
585
+ // Removed the native dependency.
586
+ // Also: no need to cache, we do that in resolve already.
587
+
588
+
589
+ const hasOwnProperty$1 = {}.hasOwnProperty;
590
+
591
+ const {ERR_INVALID_PACKAGE_CONFIG: ERR_INVALID_PACKAGE_CONFIG$1} = codes;
592
+
593
+ /** @type {Map<string, PackageConfig>} */
594
+ const cache = new Map();
595
+
596
+ /**
597
+ * @param {string} jsonPath
598
+ * @param {{specifier: URL | string, base?: URL}} options
599
+ * @returns {PackageConfig}
600
+ */
601
+ function read(jsonPath, {base, specifier}) {
602
+ const existing = cache.get(jsonPath);
603
+
604
+ if (existing) {
605
+ return existing
606
+ }
607
+
608
+ /** @type {string | undefined} */
609
+ let string;
610
+
611
+ try {
612
+ string = fs.readFileSync(path.toNamespacedPath(jsonPath), 'utf8');
613
+ } catch (error) {
614
+ const exception = /** @type {ErrnoException} */ (error);
615
+
616
+ if (exception.code !== 'ENOENT') {
617
+ throw exception
618
+ }
619
+ }
620
+
621
+ /** @type {PackageConfig} */
622
+ const result = {
623
+ exists: false,
624
+ pjsonPath: jsonPath,
625
+ main: undefined,
626
+ name: undefined,
627
+ type: 'none', // Ignore unknown types for forwards compatibility
628
+ exports: undefined,
629
+ imports: undefined
630
+ };
631
+
632
+ if (string !== undefined) {
633
+ /** @type {Record<string, unknown>} */
634
+ let parsed;
635
+
636
+ try {
637
+ parsed = JSON.parse(string);
638
+ } catch (error_) {
639
+ const cause = /** @type {ErrnoException} */ (error_);
640
+ const error = new ERR_INVALID_PACKAGE_CONFIG$1(
641
+ jsonPath,
642
+ (base ? `"${specifier}" from ` : '') + fileURLToPath$1(base || specifier),
643
+ cause.message
644
+ );
645
+ error.cause = cause;
646
+ throw error
647
+ }
648
+
649
+ result.exists = true;
650
+
651
+ if (
652
+ hasOwnProperty$1.call(parsed, 'name') &&
653
+ typeof parsed.name === 'string'
654
+ ) {
655
+ result.name = parsed.name;
656
+ }
657
+
658
+ if (
659
+ hasOwnProperty$1.call(parsed, 'main') &&
660
+ typeof parsed.main === 'string'
661
+ ) {
662
+ result.main = parsed.main;
663
+ }
664
+
665
+ if (hasOwnProperty$1.call(parsed, 'exports')) {
666
+ // @ts-expect-error: assume valid.
667
+ result.exports = parsed.exports;
668
+ }
669
+
670
+ if (hasOwnProperty$1.call(parsed, 'imports')) {
671
+ // @ts-expect-error: assume valid.
672
+ result.imports = parsed.imports;
673
+ }
674
+
675
+ // Ignore unknown types for forwards compatibility
676
+ if (
677
+ hasOwnProperty$1.call(parsed, 'type') &&
678
+ (parsed.type === 'commonjs' || parsed.type === 'module')
679
+ ) {
680
+ result.type = parsed.type;
681
+ }
682
+ }
683
+
684
+ cache.set(jsonPath, result);
685
+
686
+ return result
687
+ }
688
+
689
+ /**
690
+ * @param {URL | string} resolved
691
+ * @returns {PackageConfig}
692
+ */
693
+ function getPackageScopeConfig(resolved) {
694
+ // Note: in Node, this is now a native module.
695
+ let packageJSONUrl = new URL('package.json', resolved);
696
+
697
+ while (true) {
698
+ const packageJSONPath = packageJSONUrl.pathname;
699
+ if (packageJSONPath.endsWith('node_modules/package.json')) {
700
+ break
701
+ }
702
+
703
+ const packageConfig = read(fileURLToPath$1(packageJSONUrl), {
704
+ specifier: resolved
705
+ });
706
+
707
+ if (packageConfig.exists) {
708
+ return packageConfig
709
+ }
710
+
711
+ const lastPackageJSONUrl = packageJSONUrl;
712
+ packageJSONUrl = new URL('../package.json', packageJSONUrl);
713
+
714
+ // Terminates at root where ../package.json equals ../../package.json
715
+ // (can't just check "/package.json" for Windows support).
716
+ if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) {
717
+ break
718
+ }
719
+ }
720
+
721
+ const packageJSONPath = fileURLToPath$1(packageJSONUrl);
722
+ // ^^ Note: in Node, this is now a native module.
723
+
724
+ return {
725
+ pjsonPath: packageJSONPath,
726
+ exists: false,
727
+ type: 'none'
728
+ }
729
+ }
730
+
731
+ /**
732
+ * Returns the package type for a given URL.
733
+ * @param {URL} url - The URL to get the package type for.
734
+ * @returns {PackageType}
735
+ */
736
+ function getPackageType(url) {
737
+ // To do @anonrig: Write a C++ function that returns only "type".
738
+ return getPackageScopeConfig(url).type
739
+ }
740
+
741
+ // Manually “tree shaken” from:
742
+ // <https://github.com/nodejs/node/blob/7c3dce0/lib/internal/modules/esm/get_format.js>
743
+ // Last checked on: Apr 29, 2023.
744
+
745
+
746
+ const {ERR_UNKNOWN_FILE_EXTENSION} = codes;
747
+
748
+ const hasOwnProperty = {}.hasOwnProperty;
749
+
750
+ /** @type {Record<string, string>} */
751
+ const extensionFormatMap = {
752
+ // @ts-expect-error: hush.
753
+ __proto__: null,
754
+ '.cjs': 'commonjs',
755
+ '.js': 'module',
756
+ '.json': 'json',
757
+ '.mjs': 'module'
758
+ };
759
+
760
+ /**
761
+ * @param {string | null} mime
762
+ * @returns {string | null}
763
+ */
764
+ function mimeToFormat(mime) {
765
+ if (
766
+ mime &&
767
+ /\s*(text|application)\/javascript\s*(;\s*charset=utf-?8\s*)?/i.test(mime)
768
+ )
769
+ return 'module'
770
+ if (mime === 'application/json') return 'json'
771
+ return null
772
+ }
773
+
774
+ /**
775
+ * @callback ProtocolHandler
776
+ * @param {URL} parsed
777
+ * @param {{parentURL: string, source?: Buffer}} context
778
+ * @param {boolean} ignoreErrors
779
+ * @returns {string | null | void}
780
+ */
781
+
782
+ /**
783
+ * @type {Record<string, ProtocolHandler>}
784
+ */
785
+ const protocolHandlers = {
786
+ // @ts-expect-error: hush.
787
+ __proto__: null,
788
+ 'data:': getDataProtocolModuleFormat,
789
+ 'file:': getFileProtocolModuleFormat,
790
+ 'http:': getHttpProtocolModuleFormat,
791
+ 'https:': getHttpProtocolModuleFormat,
792
+ 'node:'() {
793
+ return 'builtin'
794
+ }
795
+ };
796
+
797
+ /**
798
+ * @param {URL} parsed
799
+ */
800
+ function getDataProtocolModuleFormat(parsed) {
801
+ const {1: mime} = /^([^/]+\/[^;,]+)[^,]*?(;base64)?,/.exec(
802
+ parsed.pathname
803
+ ) || [null, null, null];
804
+ return mimeToFormat(mime)
805
+ }
806
+
807
+ /**
808
+ * Returns the file extension from a URL.
809
+ *
810
+ * Should give similar result to
811
+ * `require('node:path').extname(require('node:url').fileURLToPath(url))`
812
+ * when used with a `file:` URL.
813
+ *
814
+ * @param {URL} url
815
+ * @returns {string}
816
+ */
817
+ function extname(url) {
818
+ const pathname = url.pathname;
819
+ let index = pathname.length;
820
+
821
+ while (index--) {
822
+ const code = pathname.codePointAt(index);
823
+
824
+ if (code === 47 /* `/` */) {
825
+ return ''
826
+ }
827
+
828
+ if (code === 46 /* `.` */) {
829
+ return pathname.codePointAt(index - 1) === 47 /* `/` */
830
+ ? ''
831
+ : pathname.slice(index)
832
+ }
833
+ }
834
+
835
+ return ''
836
+ }
837
+
838
+ /**
839
+ * @type {ProtocolHandler}
840
+ */
841
+ function getFileProtocolModuleFormat(url, _context, ignoreErrors) {
842
+ const value = extname(url);
843
+
844
+ if (value === '.js') {
845
+ const packageType = getPackageType(url);
846
+
847
+ if (packageType !== 'none') {
848
+ return packageType
849
+ }
850
+
851
+ return 'commonjs'
852
+ }
853
+
854
+ if (value === '') {
855
+ const packageType = getPackageType(url);
856
+
857
+ // Legacy behavior
858
+ if (packageType === 'none' || packageType === 'commonjs') {
859
+ return 'commonjs'
860
+ }
861
+
862
+ // Note: we don’t implement WASM, so we don’t need
863
+ // `getFormatOfExtensionlessFile` from `formats`.
864
+ return 'module'
865
+ }
866
+
867
+ const format = extensionFormatMap[value];
868
+ if (format) return format
869
+
870
+ // Explicit undefined return indicates load hook should rerun format check
871
+ if (ignoreErrors) {
872
+ return undefined
873
+ }
874
+
875
+ const filepath = fileURLToPath$1(url);
876
+ throw new ERR_UNKNOWN_FILE_EXTENSION(value, filepath)
877
+ }
878
+
879
+ function getHttpProtocolModuleFormat() {
880
+ // To do: HTTPS imports.
881
+ }
882
+
883
+ /**
884
+ * @param {URL} url
885
+ * @param {{parentURL: string}} context
886
+ * @returns {string | null}
887
+ */
888
+ function defaultGetFormatWithoutErrors(url, context) {
889
+ const protocol = url.protocol;
890
+
891
+ if (!hasOwnProperty.call(protocolHandlers, protocol)) {
892
+ return null
893
+ }
894
+
895
+ return protocolHandlers[protocol](url, context, true) || null
896
+ }
897
+
898
+ // Manually “tree shaken” from:
899
+ // <https://github.com/nodejs/node/blob/81a9a97/lib/internal/modules/esm/resolve.js>
900
+ // Last checked on: Apr 29, 2023.
901
+
902
+
903
+ const RegExpPrototypeSymbolReplace = RegExp.prototype[Symbol.replace];
904
+
905
+ const {
906
+ ERR_INVALID_MODULE_SPECIFIER,
907
+ ERR_INVALID_PACKAGE_CONFIG,
908
+ ERR_INVALID_PACKAGE_TARGET,
909
+ ERR_MODULE_NOT_FOUND,
910
+ ERR_PACKAGE_IMPORT_NOT_DEFINED,
911
+ ERR_PACKAGE_PATH_NOT_EXPORTED,
912
+ ERR_UNSUPPORTED_DIR_IMPORT,
913
+ ERR_UNSUPPORTED_RESOLVE_REQUEST
914
+ } = codes;
915
+
916
+ const own = {}.hasOwnProperty;
917
+
918
+ const invalidSegmentRegEx =
919
+ /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\|\/|$)/i;
920
+ const deprecatedInvalidSegmentRegEx =
921
+ /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i;
922
+ const invalidPackageNameRegEx = /^\.|%|\\/;
923
+ const patternRegEx = /\*/g;
924
+ const encodedSeparatorRegEx = /%2f|%5c/i;
925
+ /** @type {Set<string>} */
926
+ const emittedPackageWarnings = new Set();
927
+
928
+ const doubleSlashRegEx = /[/\\]{2}/;
929
+
930
+ /**
931
+ *
932
+ * @param {string} target
933
+ * @param {string} request
934
+ * @param {string} match
935
+ * @param {URL} packageJsonUrl
936
+ * @param {boolean} internal
937
+ * @param {URL} base
938
+ * @param {boolean} isTarget
939
+ */
940
+ function emitInvalidSegmentDeprecation(
941
+ target,
942
+ request,
943
+ match,
944
+ packageJsonUrl,
945
+ internal,
946
+ base,
947
+ isTarget
948
+ ) {
949
+ // @ts-expect-error: apparently it does exist, TS.
950
+ if (process$1.noDeprecation) {
951
+ return
952
+ }
953
+
954
+ const pjsonPath = fileURLToPath$1(packageJsonUrl);
955
+ const double = doubleSlashRegEx.exec(isTarget ? target : request) !== null;
956
+ process$1.emitWarning(
957
+ `Use of deprecated ${
958
+ double ? 'double slash' : 'leading or trailing slash matching'
959
+ } resolving "${target}" for module ` +
960
+ `request "${request}" ${
961
+ request === match ? '' : `matched to "${match}" `
962
+ }in the "${
963
+ internal ? 'imports' : 'exports'
964
+ }" field module resolution of the package at ${pjsonPath}${
965
+ base ? ` imported from ${fileURLToPath$1(base)}` : ''
966
+ }.`,
967
+ 'DeprecationWarning',
968
+ 'DEP0166'
969
+ );
970
+ }
971
+
972
+ /**
973
+ * @param {URL} url
974
+ * @param {URL} packageJsonUrl
975
+ * @param {URL} base
976
+ * @param {string} [main]
977
+ * @returns {void}
978
+ */
979
+ function emitLegacyIndexDeprecation(url, packageJsonUrl, base, main) {
980
+ // @ts-expect-error: apparently it does exist, TS.
981
+ if (process$1.noDeprecation) {
982
+ return
983
+ }
984
+
985
+ const format = defaultGetFormatWithoutErrors(url, {parentURL: base.href});
986
+ if (format !== 'module') return
987
+ const urlPath = fileURLToPath$1(url.href);
988
+ const packagePath = fileURLToPath$1(new URL$1('.', packageJsonUrl));
989
+ const basePath = fileURLToPath$1(base);
990
+ if (!main) {
991
+ process$1.emitWarning(
992
+ `No "main" or "exports" field defined in the package.json for ${packagePath} resolving the main entry point "${urlPath.slice(
993
+ packagePath.length
994
+ )}", imported from ${basePath}.\nDefault "index" lookups for the main are deprecated for ES modules.`,
995
+ 'DeprecationWarning',
996
+ 'DEP0151'
997
+ );
998
+ } else if (path.resolve(packagePath, main) !== urlPath) {
999
+ process$1.emitWarning(
1000
+ `Package ${packagePath} has a "main" field set to "${main}", ` +
1001
+ `excluding the full filename and extension to the resolved file at "${urlPath.slice(
1002
+ packagePath.length
1003
+ )}", imported from ${basePath}.\n Automatic extension resolution of the "main" field is ` +
1004
+ 'deprecated for ES modules.',
1005
+ 'DeprecationWarning',
1006
+ 'DEP0151'
1007
+ );
1008
+ }
1009
+ }
1010
+
1011
+ /**
1012
+ * @param {string} path
1013
+ * @returns {Stats | undefined}
1014
+ */
1015
+ function tryStatSync(path) {
1016
+ // Note: from Node 15 onwards we can use `throwIfNoEntry: false` instead.
1017
+ try {
1018
+ return statSync(path)
1019
+ } catch {
1020
+ // Note: in Node code this returns `new Stats`,
1021
+ // but in Node 22 that’s marked as a deprecated internal API.
1022
+ // Which, well, we kinda are, but still to prevent that warning,
1023
+ // just yield `undefined`.
1024
+ }
1025
+ }
1026
+
1027
+ /**
1028
+ * Legacy CommonJS main resolution:
1029
+ * 1. let M = pkg_url + (json main field)
1030
+ * 2. TRY(M, M.js, M.json, M.node)
1031
+ * 3. TRY(M/index.js, M/index.json, M/index.node)
1032
+ * 4. TRY(pkg_url/index.js, pkg_url/index.json, pkg_url/index.node)
1033
+ * 5. NOT_FOUND
1034
+ *
1035
+ * @param {URL} url
1036
+ * @returns {boolean}
1037
+ */
1038
+ function fileExists(url) {
1039
+ const stats = statSync(url, {throwIfNoEntry: false});
1040
+ const isFile = stats ? stats.isFile() : undefined;
1041
+ return isFile === null || isFile === undefined ? false : isFile
1042
+ }
1043
+
1044
+ /**
1045
+ * @param {URL} packageJsonUrl
1046
+ * @param {PackageConfig} packageConfig
1047
+ * @param {URL} base
1048
+ * @returns {URL}
1049
+ */
1050
+ function legacyMainResolve(packageJsonUrl, packageConfig, base) {
1051
+ /** @type {URL | undefined} */
1052
+ let guess;
1053
+ if (packageConfig.main !== undefined) {
1054
+ guess = new URL$1(packageConfig.main, packageJsonUrl);
1055
+ // Note: fs check redundances will be handled by Descriptor cache here.
1056
+ if (fileExists(guess)) return guess
1057
+
1058
+ const tries = [
1059
+ `./${packageConfig.main}.js`,
1060
+ `./${packageConfig.main}.json`,
1061
+ `./${packageConfig.main}.node`,
1062
+ `./${packageConfig.main}/index.js`,
1063
+ `./${packageConfig.main}/index.json`,
1064
+ `./${packageConfig.main}/index.node`
1065
+ ];
1066
+ let i = -1;
1067
+
1068
+ while (++i < tries.length) {
1069
+ guess = new URL$1(tries[i], packageJsonUrl);
1070
+ if (fileExists(guess)) break
1071
+ guess = undefined;
1072
+ }
1073
+
1074
+ if (guess) {
1075
+ emitLegacyIndexDeprecation(
1076
+ guess,
1077
+ packageJsonUrl,
1078
+ base,
1079
+ packageConfig.main
1080
+ );
1081
+ return guess
1082
+ }
1083
+ // Fallthrough.
1084
+ }
1085
+
1086
+ const tries = ['./index.js', './index.json', './index.node'];
1087
+ let i = -1;
1088
+
1089
+ while (++i < tries.length) {
1090
+ guess = new URL$1(tries[i], packageJsonUrl);
1091
+ if (fileExists(guess)) break
1092
+ guess = undefined;
1093
+ }
1094
+
1095
+ if (guess) {
1096
+ emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main);
1097
+ return guess
1098
+ }
1099
+
1100
+ // Not found.
1101
+ throw new ERR_MODULE_NOT_FOUND(
1102
+ fileURLToPath$1(new URL$1('.', packageJsonUrl)),
1103
+ fileURLToPath$1(base)
1104
+ )
1105
+ }
1106
+
1107
+ /**
1108
+ * @param {URL} resolved
1109
+ * @param {URL} base
1110
+ * @param {boolean} [preserveSymlinks]
1111
+ * @returns {URL}
1112
+ */
1113
+ function finalizeResolution(resolved, base, preserveSymlinks) {
1114
+ if (encodedSeparatorRegEx.exec(resolved.pathname) !== null) {
1115
+ throw new ERR_INVALID_MODULE_SPECIFIER(
1116
+ resolved.pathname,
1117
+ 'must not include encoded "/" or "\\" characters',
1118
+ fileURLToPath$1(base)
1119
+ )
1120
+ }
1121
+
1122
+ /** @type {string} */
1123
+ let filePath;
1124
+
1125
+ try {
1126
+ filePath = fileURLToPath$1(resolved);
1127
+ } catch (error) {
1128
+ const cause = /** @type {ErrnoException} */ (error);
1129
+ Object.defineProperty(cause, 'input', {value: String(resolved)});
1130
+ Object.defineProperty(cause, 'module', {value: String(base)});
1131
+ throw cause
1132
+ }
1133
+
1134
+ const stats = tryStatSync(
1135
+ filePath.endsWith('/') ? filePath.slice(-1) : filePath
1136
+ );
1137
+
1138
+ if (stats && stats.isDirectory()) {
1139
+ const error = new ERR_UNSUPPORTED_DIR_IMPORT(filePath, fileURLToPath$1(base));
1140
+ // @ts-expect-error Add this for `import.meta.resolve`.
1141
+ error.url = String(resolved);
1142
+ throw error
1143
+ }
1144
+
1145
+ if (!stats || !stats.isFile()) {
1146
+ const error = new ERR_MODULE_NOT_FOUND(
1147
+ filePath || resolved.pathname,
1148
+ base && fileURLToPath$1(base),
1149
+ true
1150
+ );
1151
+ // @ts-expect-error Add this for `import.meta.resolve`.
1152
+ error.url = String(resolved);
1153
+ throw error
1154
+ }
1155
+
1156
+ {
1157
+ const real = realpathSync(filePath);
1158
+ const {search, hash} = resolved;
1159
+ resolved = pathToFileURL$1(real + (filePath.endsWith(path.sep) ? '/' : ''));
1160
+ resolved.search = search;
1161
+ resolved.hash = hash;
1162
+ }
1163
+
1164
+ return resolved
1165
+ }
1166
+
1167
+ /**
1168
+ * @param {string} specifier
1169
+ * @param {URL | undefined} packageJsonUrl
1170
+ * @param {URL} base
1171
+ * @returns {Error}
1172
+ */
1173
+ function importNotDefined(specifier, packageJsonUrl, base) {
1174
+ return new ERR_PACKAGE_IMPORT_NOT_DEFINED(
1175
+ specifier,
1176
+ packageJsonUrl && fileURLToPath$1(new URL$1('.', packageJsonUrl)),
1177
+ fileURLToPath$1(base)
1178
+ )
1179
+ }
1180
+
1181
+ /**
1182
+ * @param {string} subpath
1183
+ * @param {URL} packageJsonUrl
1184
+ * @param {URL} base
1185
+ * @returns {Error}
1186
+ */
1187
+ function exportsNotFound(subpath, packageJsonUrl, base) {
1188
+ return new ERR_PACKAGE_PATH_NOT_EXPORTED(
1189
+ fileURLToPath$1(new URL$1('.', packageJsonUrl)),
1190
+ subpath,
1191
+ base && fileURLToPath$1(base)
1192
+ )
1193
+ }
1194
+
1195
+ /**
1196
+ * @param {string} request
1197
+ * @param {string} match
1198
+ * @param {URL} packageJsonUrl
1199
+ * @param {boolean} internal
1200
+ * @param {URL} [base]
1201
+ * @returns {never}
1202
+ */
1203
+ function throwInvalidSubpath(request, match, packageJsonUrl, internal, base) {
1204
+ const reason = `request is not a valid match in pattern "${match}" for the "${
1205
+ internal ? 'imports' : 'exports'
1206
+ }" resolution of ${fileURLToPath$1(packageJsonUrl)}`;
1207
+ throw new ERR_INVALID_MODULE_SPECIFIER(
1208
+ request,
1209
+ reason,
1210
+ base && fileURLToPath$1(base)
1211
+ )
1212
+ }
1213
+
1214
+ /**
1215
+ * @param {string} subpath
1216
+ * @param {unknown} target
1217
+ * @param {URL} packageJsonUrl
1218
+ * @param {boolean} internal
1219
+ * @param {URL} [base]
1220
+ * @returns {Error}
1221
+ */
1222
+ function invalidPackageTarget(subpath, target, packageJsonUrl, internal, base) {
1223
+ target =
1224
+ typeof target === 'object' && target !== null
1225
+ ? JSON.stringify(target, null, '')
1226
+ : `${target}`;
1227
+
1228
+ return new ERR_INVALID_PACKAGE_TARGET(
1229
+ fileURLToPath$1(new URL$1('.', packageJsonUrl)),
1230
+ subpath,
1231
+ target,
1232
+ internal,
1233
+ base && fileURLToPath$1(base)
1234
+ )
1235
+ }
1236
+
1237
+ /**
1238
+ * @param {string} target
1239
+ * @param {string} subpath
1240
+ * @param {string} match
1241
+ * @param {URL} packageJsonUrl
1242
+ * @param {URL} base
1243
+ * @param {boolean} pattern
1244
+ * @param {boolean} internal
1245
+ * @param {boolean} isPathMap
1246
+ * @param {Set<string> | undefined} conditions
1247
+ * @returns {URL}
1248
+ */
1249
+ function resolvePackageTargetString(
1250
+ target,
1251
+ subpath,
1252
+ match,
1253
+ packageJsonUrl,
1254
+ base,
1255
+ pattern,
1256
+ internal,
1257
+ isPathMap,
1258
+ conditions
1259
+ ) {
1260
+ if (subpath !== '' && !pattern && target[target.length - 1] !== '/')
1261
+ throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)
1262
+
1263
+ if (!target.startsWith('./')) {
1264
+ if (internal && !target.startsWith('../') && !target.startsWith('/')) {
1265
+ let isURL = false;
1266
+
1267
+ try {
1268
+ new URL$1(target);
1269
+ isURL = true;
1270
+ } catch {
1271
+ // Continue regardless of error.
1272
+ }
1273
+
1274
+ if (!isURL) {
1275
+ const exportTarget = pattern
1276
+ ? RegExpPrototypeSymbolReplace.call(
1277
+ patternRegEx,
1278
+ target,
1279
+ () => subpath
1280
+ )
1281
+ : target + subpath;
1282
+
1283
+ return packageResolve(exportTarget, packageJsonUrl, conditions)
1284
+ }
1285
+ }
1286
+
1287
+ throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)
1288
+ }
1289
+
1290
+ if (invalidSegmentRegEx.exec(target.slice(2)) !== null) {
1291
+ if (deprecatedInvalidSegmentRegEx.exec(target.slice(2)) === null) {
1292
+ if (!isPathMap) {
1293
+ const request = pattern
1294
+ ? match.replace('*', () => subpath)
1295
+ : match + subpath;
1296
+ const resolvedTarget = pattern
1297
+ ? RegExpPrototypeSymbolReplace.call(
1298
+ patternRegEx,
1299
+ target,
1300
+ () => subpath
1301
+ )
1302
+ : target;
1303
+ emitInvalidSegmentDeprecation(
1304
+ resolvedTarget,
1305
+ request,
1306
+ match,
1307
+ packageJsonUrl,
1308
+ internal,
1309
+ base,
1310
+ true
1311
+ );
1312
+ }
1313
+ } else {
1314
+ throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)
1315
+ }
1316
+ }
1317
+
1318
+ const resolved = new URL$1(target, packageJsonUrl);
1319
+ const resolvedPath = resolved.pathname;
1320
+ const packagePath = new URL$1('.', packageJsonUrl).pathname;
1321
+
1322
+ if (!resolvedPath.startsWith(packagePath))
1323
+ throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)
1324
+
1325
+ if (subpath === '') return resolved
1326
+
1327
+ if (invalidSegmentRegEx.exec(subpath) !== null) {
1328
+ const request = pattern
1329
+ ? match.replace('*', () => subpath)
1330
+ : match + subpath;
1331
+ if (deprecatedInvalidSegmentRegEx.exec(subpath) === null) {
1332
+ if (!isPathMap) {
1333
+ const resolvedTarget = pattern
1334
+ ? RegExpPrototypeSymbolReplace.call(
1335
+ patternRegEx,
1336
+ target,
1337
+ () => subpath
1338
+ )
1339
+ : target;
1340
+ emitInvalidSegmentDeprecation(
1341
+ resolvedTarget,
1342
+ request,
1343
+ match,
1344
+ packageJsonUrl,
1345
+ internal,
1346
+ base,
1347
+ false
1348
+ );
1349
+ }
1350
+ } else {
1351
+ throwInvalidSubpath(request, match, packageJsonUrl, internal, base);
1352
+ }
1353
+ }
1354
+
1355
+ if (pattern) {
1356
+ return new URL$1(
1357
+ RegExpPrototypeSymbolReplace.call(
1358
+ patternRegEx,
1359
+ resolved.href,
1360
+ () => subpath
1361
+ )
1362
+ )
1363
+ }
1364
+
1365
+ return new URL$1(subpath, resolved)
1366
+ }
1367
+
1368
+ /**
1369
+ * @param {string} key
1370
+ * @returns {boolean}
1371
+ */
1372
+ function isArrayIndex(key) {
1373
+ const keyNumber = Number(key);
1374
+ if (`${keyNumber}` !== key) return false
1375
+ return keyNumber >= 0 && keyNumber < 0xff_ff_ff_ff
1376
+ }
1377
+
1378
+ /**
1379
+ * @param {URL} packageJsonUrl
1380
+ * @param {unknown} target
1381
+ * @param {string} subpath
1382
+ * @param {string} packageSubpath
1383
+ * @param {URL} base
1384
+ * @param {boolean} pattern
1385
+ * @param {boolean} internal
1386
+ * @param {boolean} isPathMap
1387
+ * @param {Set<string> | undefined} conditions
1388
+ * @returns {URL | null}
1389
+ */
1390
+ function resolvePackageTarget(
1391
+ packageJsonUrl,
1392
+ target,
1393
+ subpath,
1394
+ packageSubpath,
1395
+ base,
1396
+ pattern,
1397
+ internal,
1398
+ isPathMap,
1399
+ conditions
1400
+ ) {
1401
+ if (typeof target === 'string') {
1402
+ return resolvePackageTargetString(
1403
+ target,
1404
+ subpath,
1405
+ packageSubpath,
1406
+ packageJsonUrl,
1407
+ base,
1408
+ pattern,
1409
+ internal,
1410
+ isPathMap,
1411
+ conditions
1412
+ )
1413
+ }
1414
+
1415
+ if (Array.isArray(target)) {
1416
+ /** @type {Array<unknown>} */
1417
+ const targetList = target;
1418
+ if (targetList.length === 0) return null
1419
+
1420
+ /** @type {ErrnoException | null | undefined} */
1421
+ let lastException;
1422
+ let i = -1;
1423
+
1424
+ while (++i < targetList.length) {
1425
+ const targetItem = targetList[i];
1426
+ /** @type {URL | null} */
1427
+ let resolveResult;
1428
+ try {
1429
+ resolveResult = resolvePackageTarget(
1430
+ packageJsonUrl,
1431
+ targetItem,
1432
+ subpath,
1433
+ packageSubpath,
1434
+ base,
1435
+ pattern,
1436
+ internal,
1437
+ isPathMap,
1438
+ conditions
1439
+ );
1440
+ } catch (error) {
1441
+ const exception = /** @type {ErrnoException} */ (error);
1442
+ lastException = exception;
1443
+ if (exception.code === 'ERR_INVALID_PACKAGE_TARGET') continue
1444
+ throw error
1445
+ }
1446
+
1447
+ if (resolveResult === undefined) continue
1448
+
1449
+ if (resolveResult === null) {
1450
+ lastException = null;
1451
+ continue
1452
+ }
1453
+
1454
+ return resolveResult
1455
+ }
1456
+
1457
+ if (lastException === undefined || lastException === null) {
1458
+ return null
1459
+ }
1460
+
1461
+ throw lastException
1462
+ }
1463
+
1464
+ if (typeof target === 'object' && target !== null) {
1465
+ const keys = Object.getOwnPropertyNames(target);
1466
+ let i = -1;
1467
+
1468
+ while (++i < keys.length) {
1469
+ const key = keys[i];
1470
+ if (isArrayIndex(key)) {
1471
+ throw new ERR_INVALID_PACKAGE_CONFIG(
1472
+ fileURLToPath$1(packageJsonUrl),
1473
+ base,
1474
+ '"exports" cannot contain numeric property keys.'
1475
+ )
1476
+ }
1477
+ }
1478
+
1479
+ i = -1;
1480
+
1481
+ while (++i < keys.length) {
1482
+ const key = keys[i];
1483
+ if (key === 'default' || (conditions && conditions.has(key))) {
1484
+ // @ts-expect-error: indexable.
1485
+ const conditionalTarget = /** @type {unknown} */ (target[key]);
1486
+ const resolveResult = resolvePackageTarget(
1487
+ packageJsonUrl,
1488
+ conditionalTarget,
1489
+ subpath,
1490
+ packageSubpath,
1491
+ base,
1492
+ pattern,
1493
+ internal,
1494
+ isPathMap,
1495
+ conditions
1496
+ );
1497
+ if (resolveResult === undefined) continue
1498
+ return resolveResult
1499
+ }
1500
+ }
1501
+
1502
+ return null
1503
+ }
1504
+
1505
+ if (target === null) {
1506
+ return null
1507
+ }
1508
+
1509
+ throw invalidPackageTarget(
1510
+ packageSubpath,
1511
+ target,
1512
+ packageJsonUrl,
1513
+ internal,
1514
+ base
1515
+ )
1516
+ }
1517
+
1518
+ /**
1519
+ * @param {unknown} exports
1520
+ * @param {URL} packageJsonUrl
1521
+ * @param {URL} base
1522
+ * @returns {boolean}
1523
+ */
1524
+ function isConditionalExportsMainSugar(exports, packageJsonUrl, base) {
1525
+ if (typeof exports === 'string' || Array.isArray(exports)) return true
1526
+ if (typeof exports !== 'object' || exports === null) return false
1527
+
1528
+ const keys = Object.getOwnPropertyNames(exports);
1529
+ let isConditionalSugar = false;
1530
+ let i = 0;
1531
+ let keyIndex = -1;
1532
+ while (++keyIndex < keys.length) {
1533
+ const key = keys[keyIndex];
1534
+ const currentIsConditionalSugar = key === '' || key[0] !== '.';
1535
+ if (i++ === 0) {
1536
+ isConditionalSugar = currentIsConditionalSugar;
1537
+ } else if (isConditionalSugar !== currentIsConditionalSugar) {
1538
+ throw new ERR_INVALID_PACKAGE_CONFIG(
1539
+ fileURLToPath$1(packageJsonUrl),
1540
+ base,
1541
+ '"exports" cannot contain some keys starting with \'.\' and some not.' +
1542
+ ' The exports object must either be an object of package subpath keys' +
1543
+ ' or an object of main entry condition name keys only.'
1544
+ )
1545
+ }
1546
+ }
1547
+
1548
+ return isConditionalSugar
1549
+ }
1550
+
1551
+ /**
1552
+ * @param {string} match
1553
+ * @param {URL} pjsonUrl
1554
+ * @param {URL} base
1555
+ */
1556
+ function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) {
1557
+ // @ts-expect-error: apparently it does exist, TS.
1558
+ if (process$1.noDeprecation) {
1559
+ return
1560
+ }
1561
+
1562
+ const pjsonPath = fileURLToPath$1(pjsonUrl);
1563
+ if (emittedPackageWarnings.has(pjsonPath + '|' + match)) return
1564
+ emittedPackageWarnings.add(pjsonPath + '|' + match);
1565
+ process$1.emitWarning(
1566
+ `Use of deprecated trailing slash pattern mapping "${match}" in the ` +
1567
+ `"exports" field module resolution of the package at ${pjsonPath}${
1568
+ base ? ` imported from ${fileURLToPath$1(base)}` : ''
1569
+ }. Mapping specifiers ending in "/" is no longer supported.`,
1570
+ 'DeprecationWarning',
1571
+ 'DEP0155'
1572
+ );
1573
+ }
1574
+
1575
+ /**
1576
+ * @param {URL} packageJsonUrl
1577
+ * @param {string} packageSubpath
1578
+ * @param {Record<string, unknown>} packageConfig
1579
+ * @param {URL} base
1580
+ * @param {Set<string> | undefined} conditions
1581
+ * @returns {URL}
1582
+ */
1583
+ function packageExportsResolve(
1584
+ packageJsonUrl,
1585
+ packageSubpath,
1586
+ packageConfig,
1587
+ base,
1588
+ conditions
1589
+ ) {
1590
+ let exports = packageConfig.exports;
1591
+
1592
+ if (isConditionalExportsMainSugar(exports, packageJsonUrl, base)) {
1593
+ exports = {'.': exports};
1594
+ }
1595
+
1596
+ if (
1597
+ own.call(exports, packageSubpath) &&
1598
+ !packageSubpath.includes('*') &&
1599
+ !packageSubpath.endsWith('/')
1600
+ ) {
1601
+ // @ts-expect-error: indexable.
1602
+ const target = exports[packageSubpath];
1603
+ const resolveResult = resolvePackageTarget(
1604
+ packageJsonUrl,
1605
+ target,
1606
+ '',
1607
+ packageSubpath,
1608
+ base,
1609
+ false,
1610
+ false,
1611
+ false,
1612
+ conditions
1613
+ );
1614
+ if (resolveResult === null || resolveResult === undefined) {
1615
+ throw exportsNotFound(packageSubpath, packageJsonUrl, base)
1616
+ }
1617
+
1618
+ return resolveResult
1619
+ }
1620
+
1621
+ let bestMatch = '';
1622
+ let bestMatchSubpath = '';
1623
+ const keys = Object.getOwnPropertyNames(exports);
1624
+ let i = -1;
1625
+
1626
+ while (++i < keys.length) {
1627
+ const key = keys[i];
1628
+ const patternIndex = key.indexOf('*');
1629
+
1630
+ if (
1631
+ patternIndex !== -1 &&
1632
+ packageSubpath.startsWith(key.slice(0, patternIndex))
1633
+ ) {
1634
+ // When this reaches EOL, this can throw at the top of the whole function:
1635
+ //
1636
+ // if (StringPrototypeEndsWith(packageSubpath, '/'))
1637
+ // throwInvalidSubpath(packageSubpath)
1638
+ //
1639
+ // To match "imports" and the spec.
1640
+ if (packageSubpath.endsWith('/')) {
1641
+ emitTrailingSlashPatternDeprecation(
1642
+ packageSubpath,
1643
+ packageJsonUrl,
1644
+ base
1645
+ );
1646
+ }
1647
+
1648
+ const patternTrailer = key.slice(patternIndex + 1);
1649
+
1650
+ if (
1651
+ packageSubpath.length >= key.length &&
1652
+ packageSubpath.endsWith(patternTrailer) &&
1653
+ patternKeyCompare(bestMatch, key) === 1 &&
1654
+ key.lastIndexOf('*') === patternIndex
1655
+ ) {
1656
+ bestMatch = key;
1657
+ bestMatchSubpath = packageSubpath.slice(
1658
+ patternIndex,
1659
+ packageSubpath.length - patternTrailer.length
1660
+ );
1661
+ }
1662
+ }
1663
+ }
1664
+
1665
+ if (bestMatch) {
1666
+ // @ts-expect-error: indexable.
1667
+ const target = /** @type {unknown} */ (exports[bestMatch]);
1668
+ const resolveResult = resolvePackageTarget(
1669
+ packageJsonUrl,
1670
+ target,
1671
+ bestMatchSubpath,
1672
+ bestMatch,
1673
+ base,
1674
+ true,
1675
+ false,
1676
+ packageSubpath.endsWith('/'),
1677
+ conditions
1678
+ );
1679
+
1680
+ if (resolveResult === null || resolveResult === undefined) {
1681
+ throw exportsNotFound(packageSubpath, packageJsonUrl, base)
1682
+ }
1683
+
1684
+ return resolveResult
1685
+ }
1686
+
1687
+ throw exportsNotFound(packageSubpath, packageJsonUrl, base)
1688
+ }
1689
+
1690
+ /**
1691
+ * @param {string} a
1692
+ * @param {string} b
1693
+ */
1694
+ function patternKeyCompare(a, b) {
1695
+ const aPatternIndex = a.indexOf('*');
1696
+ const bPatternIndex = b.indexOf('*');
1697
+ const baseLengthA = aPatternIndex === -1 ? a.length : aPatternIndex + 1;
1698
+ const baseLengthB = bPatternIndex === -1 ? b.length : bPatternIndex + 1;
1699
+ if (baseLengthA > baseLengthB) return -1
1700
+ if (baseLengthB > baseLengthA) return 1
1701
+ if (aPatternIndex === -1) return 1
1702
+ if (bPatternIndex === -1) return -1
1703
+ if (a.length > b.length) return -1
1704
+ if (b.length > a.length) return 1
1705
+ return 0
1706
+ }
1707
+
1708
+ /**
1709
+ * @param {string} name
1710
+ * @param {URL} base
1711
+ * @param {Set<string>} [conditions]
1712
+ * @returns {URL}
1713
+ */
1714
+ function packageImportsResolve(name, base, conditions) {
1715
+ if (name === '#' || name.startsWith('#/') || name.endsWith('/')) {
1716
+ const reason = 'is not a valid internal imports specifier name';
1717
+ throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath$1(base))
1718
+ }
1719
+
1720
+ /** @type {URL | undefined} */
1721
+ let packageJsonUrl;
1722
+
1723
+ const packageConfig = getPackageScopeConfig(base);
1724
+
1725
+ if (packageConfig.exists) {
1726
+ packageJsonUrl = pathToFileURL$1(packageConfig.pjsonPath);
1727
+ const imports = packageConfig.imports;
1728
+ if (imports) {
1729
+ if (own.call(imports, name) && !name.includes('*')) {
1730
+ const resolveResult = resolvePackageTarget(
1731
+ packageJsonUrl,
1732
+ imports[name],
1733
+ '',
1734
+ name,
1735
+ base,
1736
+ false,
1737
+ true,
1738
+ false,
1739
+ conditions
1740
+ );
1741
+ if (resolveResult !== null && resolveResult !== undefined) {
1742
+ return resolveResult
1743
+ }
1744
+ } else {
1745
+ let bestMatch = '';
1746
+ let bestMatchSubpath = '';
1747
+ const keys = Object.getOwnPropertyNames(imports);
1748
+ let i = -1;
1749
+
1750
+ while (++i < keys.length) {
1751
+ const key = keys[i];
1752
+ const patternIndex = key.indexOf('*');
1753
+
1754
+ if (patternIndex !== -1 && name.startsWith(key.slice(0, -1))) {
1755
+ const patternTrailer = key.slice(patternIndex + 1);
1756
+ if (
1757
+ name.length >= key.length &&
1758
+ name.endsWith(patternTrailer) &&
1759
+ patternKeyCompare(bestMatch, key) === 1 &&
1760
+ key.lastIndexOf('*') === patternIndex
1761
+ ) {
1762
+ bestMatch = key;
1763
+ bestMatchSubpath = name.slice(
1764
+ patternIndex,
1765
+ name.length - patternTrailer.length
1766
+ );
1767
+ }
1768
+ }
1769
+ }
1770
+
1771
+ if (bestMatch) {
1772
+ const target = imports[bestMatch];
1773
+ const resolveResult = resolvePackageTarget(
1774
+ packageJsonUrl,
1775
+ target,
1776
+ bestMatchSubpath,
1777
+ bestMatch,
1778
+ base,
1779
+ true,
1780
+ true,
1781
+ false,
1782
+ conditions
1783
+ );
1784
+
1785
+ if (resolveResult !== null && resolveResult !== undefined) {
1786
+ return resolveResult
1787
+ }
1788
+ }
1789
+ }
1790
+ }
1791
+ }
1792
+
1793
+ throw importNotDefined(name, packageJsonUrl, base)
1794
+ }
1795
+
1796
+ /**
1797
+ * @param {string} specifier
1798
+ * @param {URL} base
1799
+ */
1800
+ function parsePackageName(specifier, base) {
1801
+ let separatorIndex = specifier.indexOf('/');
1802
+ let validPackageName = true;
1803
+ let isScoped = false;
1804
+ if (specifier[0] === '@') {
1805
+ isScoped = true;
1806
+ if (separatorIndex === -1 || specifier.length === 0) {
1807
+ validPackageName = false;
1808
+ } else {
1809
+ separatorIndex = specifier.indexOf('/', separatorIndex + 1);
1810
+ }
1811
+ }
1812
+
1813
+ const packageName =
1814
+ separatorIndex === -1 ? specifier : specifier.slice(0, separatorIndex);
1815
+
1816
+ // Package name cannot have leading . and cannot have percent-encoding or
1817
+ // \\ separators.
1818
+ if (invalidPackageNameRegEx.exec(packageName) !== null) {
1819
+ validPackageName = false;
1820
+ }
1821
+
1822
+ if (!validPackageName) {
1823
+ throw new ERR_INVALID_MODULE_SPECIFIER(
1824
+ specifier,
1825
+ 'is not a valid package name',
1826
+ fileURLToPath$1(base)
1827
+ )
1828
+ }
1829
+
1830
+ const packageSubpath =
1831
+ '.' + (separatorIndex === -1 ? '' : specifier.slice(separatorIndex));
1832
+
1833
+ return {packageName, packageSubpath, isScoped}
1834
+ }
1835
+
1836
+ /**
1837
+ * @param {string} specifier
1838
+ * @param {URL} base
1839
+ * @param {Set<string> | undefined} conditions
1840
+ * @returns {URL}
1841
+ */
1842
+ function packageResolve(specifier, base, conditions) {
1843
+ if (builtinModules.includes(specifier)) {
1844
+ return new URL$1('node:' + specifier)
1845
+ }
1846
+
1847
+ const {packageName, packageSubpath, isScoped} = parsePackageName(
1848
+ specifier,
1849
+ base
1850
+ );
1851
+
1852
+ // ResolveSelf
1853
+ const packageConfig = getPackageScopeConfig(base);
1854
+
1855
+ // Can’t test.
1856
+ /* c8 ignore next 16 */
1857
+ if (packageConfig.exists) {
1858
+ const packageJsonUrl = pathToFileURL$1(packageConfig.pjsonPath);
1859
+ if (
1860
+ packageConfig.name === packageName &&
1861
+ packageConfig.exports !== undefined &&
1862
+ packageConfig.exports !== null
1863
+ ) {
1864
+ return packageExportsResolve(
1865
+ packageJsonUrl,
1866
+ packageSubpath,
1867
+ packageConfig,
1868
+ base,
1869
+ conditions
1870
+ )
1871
+ }
1872
+ }
1873
+
1874
+ let packageJsonUrl = new URL$1(
1875
+ './node_modules/' + packageName + '/package.json',
1876
+ base
1877
+ );
1878
+ let packageJsonPath = fileURLToPath$1(packageJsonUrl);
1879
+ /** @type {string} */
1880
+ let lastPath;
1881
+ do {
1882
+ const stat = tryStatSync(packageJsonPath.slice(0, -13));
1883
+ if (!stat || !stat.isDirectory()) {
1884
+ lastPath = packageJsonPath;
1885
+ packageJsonUrl = new URL$1(
1886
+ (isScoped ? '../../../../node_modules/' : '../../../node_modules/') +
1887
+ packageName +
1888
+ '/package.json',
1889
+ packageJsonUrl
1890
+ );
1891
+ packageJsonPath = fileURLToPath$1(packageJsonUrl);
1892
+ continue
1893
+ }
1894
+
1895
+ // Package match.
1896
+ const packageConfig = read(packageJsonPath, {base, specifier});
1897
+ if (packageConfig.exports !== undefined && packageConfig.exports !== null) {
1898
+ return packageExportsResolve(
1899
+ packageJsonUrl,
1900
+ packageSubpath,
1901
+ packageConfig,
1902
+ base,
1903
+ conditions
1904
+ )
1905
+ }
1906
+
1907
+ if (packageSubpath === '.') {
1908
+ return legacyMainResolve(packageJsonUrl, packageConfig, base)
1909
+ }
1910
+
1911
+ return new URL$1(packageSubpath, packageJsonUrl)
1912
+ // Cross-platform root check.
1913
+ } while (packageJsonPath.length !== lastPath.length)
1914
+
1915
+ throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath$1(base), false)
1916
+ }
1917
+
1918
+ /**
1919
+ * @param {string} specifier
1920
+ * @returns {boolean}
1921
+ */
1922
+ function isRelativeSpecifier(specifier) {
1923
+ if (specifier[0] === '.') {
1924
+ if (specifier.length === 1 || specifier[1] === '/') return true
1925
+ if (
1926
+ specifier[1] === '.' &&
1927
+ (specifier.length === 2 || specifier[2] === '/')
1928
+ ) {
1929
+ return true
1930
+ }
1931
+ }
1932
+
1933
+ return false
1934
+ }
1935
+
1936
+ /**
1937
+ * @param {string} specifier
1938
+ * @returns {boolean}
1939
+ */
1940
+ function shouldBeTreatedAsRelativeOrAbsolutePath(specifier) {
1941
+ if (specifier === '') return false
1942
+ if (specifier[0] === '/') return true
1943
+ return isRelativeSpecifier(specifier)
1944
+ }
1945
+
1946
+ /**
1947
+ * The “Resolver Algorithm Specification” as detailed in the Node docs (which is
1948
+ * sync and slightly lower-level than `resolve`).
1949
+ *
1950
+ * @param {string} specifier
1951
+ * `/example.js`, `./example.js`, `../example.js`, `some-package`, `fs`, etc.
1952
+ * @param {URL} base
1953
+ * Full URL (to a file) that `specifier` is resolved relative from.
1954
+ * @param {Set<string>} [conditions]
1955
+ * Conditions.
1956
+ * @param {boolean} [preserveSymlinks]
1957
+ * Keep symlinks instead of resolving them.
1958
+ * @returns {URL}
1959
+ * A URL object to the found thing.
1960
+ */
1961
+ function moduleResolve(specifier, base, conditions, preserveSymlinks) {
1962
+ // Note: The Node code supports `base` as a string (in this internal API) too,
1963
+ // we don’t.
1964
+ const protocol = base.protocol;
1965
+ const isData = protocol === 'data:';
1966
+ const isRemote = isData || protocol === 'http:' || protocol === 'https:';
1967
+ // Order swapped from spec for minor perf gain.
1968
+ // Ok since relative URLs cannot parse as URLs.
1969
+ /** @type {URL | undefined} */
1970
+ let resolved;
1971
+
1972
+ if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {
1973
+ try {
1974
+ resolved = new URL$1(specifier, base);
1975
+ } catch (error_) {
1976
+ const error = new ERR_UNSUPPORTED_RESOLVE_REQUEST(specifier, base);
1977
+ error.cause = error_;
1978
+ throw error
1979
+ }
1980
+ } else if (protocol === 'file:' && specifier[0] === '#') {
1981
+ resolved = packageImportsResolve(specifier, base, conditions);
1982
+ } else {
1983
+ try {
1984
+ resolved = new URL$1(specifier);
1985
+ } catch (error_) {
1986
+ // Note: actual code uses `canBeRequiredWithoutScheme`.
1987
+ if (isRemote && !builtinModules.includes(specifier)) {
1988
+ const error = new ERR_UNSUPPORTED_RESOLVE_REQUEST(specifier, base);
1989
+ error.cause = error_;
1990
+ throw error
1991
+ }
1992
+
1993
+ resolved = packageResolve(specifier, base, conditions);
1994
+ }
1995
+ }
1996
+
1997
+ assert(resolved !== undefined, 'expected to be defined');
1998
+
1999
+ if (resolved.protocol !== 'file:') {
2000
+ return resolved
2001
+ }
2002
+
2003
+ return finalizeResolution(resolved, base)
2004
+ }
2005
+
2006
+ function fileURLToPath(id) {
2007
+ if (typeof id === "string" && !id.startsWith("file://")) {
2008
+ return normalizeSlash(id);
2009
+ }
2010
+ return normalizeSlash(fileURLToPath$1(id));
2011
+ }
2012
+ function pathToFileURL(id) {
2013
+ return pathToFileURL$1(fileURLToPath(id)).toString();
2014
+ }
2015
+ function normalizeid(id) {
2016
+ if (typeof id !== "string") {
2017
+ id = id.toString();
2018
+ }
2019
+ if (/(node|data|http|https|file):/.test(id)) {
2020
+ return id;
2021
+ }
2022
+ if (BUILTIN_MODULES.has(id)) {
2023
+ return "node:" + id;
2024
+ }
2025
+ return "file://" + encodeURI(normalizeSlash(id));
2026
+ }
2027
+
2028
+ const DEFAULT_CONDITIONS_SET = /* @__PURE__ */ new Set(["node", "import"]);
2029
+ const DEFAULT_EXTENSIONS = [".mjs", ".cjs", ".js", ".json"];
2030
+ const NOT_FOUND_ERRORS = /* @__PURE__ */ new Set([
2031
+ "ERR_MODULE_NOT_FOUND",
2032
+ "ERR_UNSUPPORTED_DIR_IMPORT",
2033
+ "MODULE_NOT_FOUND",
2034
+ "ERR_PACKAGE_PATH_NOT_EXPORTED"
2035
+ ]);
2036
+ function _tryModuleResolve(id, url, conditions) {
2037
+ try {
2038
+ return moduleResolve(id, url, conditions);
2039
+ } catch (error) {
2040
+ if (!NOT_FOUND_ERRORS.has(error?.code)) {
2041
+ throw error;
2042
+ }
2043
+ }
2044
+ }
2045
+ function _resolve$1(id, options = {}) {
2046
+ if (typeof id !== "string") {
2047
+ if (id instanceof URL) {
2048
+ id = fileURLToPath(id);
2049
+ } else {
2050
+ throw new TypeError("input must be a `string` or `URL`");
2051
+ }
2052
+ }
2053
+ if (/(node|data|http|https):/.test(id)) {
2054
+ return id;
2055
+ }
2056
+ if (BUILTIN_MODULES.has(id)) {
2057
+ return "node:" + id;
2058
+ }
2059
+ if (id.startsWith("file://")) {
2060
+ id = fileURLToPath(id);
2061
+ }
2062
+ if (isAbsolute(id)) {
2063
+ try {
2064
+ const stat = statSync(id);
2065
+ if (stat.isFile()) {
2066
+ return pathToFileURL(id);
2067
+ }
2068
+ } catch (error) {
2069
+ if (error?.code !== "ENOENT") {
2070
+ throw error;
2071
+ }
2072
+ }
2073
+ }
2074
+ const conditionsSet = options.conditions ? new Set(options.conditions) : DEFAULT_CONDITIONS_SET;
2075
+ const _urls = (Array.isArray(options.url) ? options.url : [options.url]).filter(Boolean).map((url) => new URL(normalizeid(url.toString())));
2076
+ if (_urls.length === 0) {
2077
+ _urls.push(new URL(pathToFileURL(process.cwd())));
2078
+ }
2079
+ const urls = [..._urls];
2080
+ for (const url of _urls) {
2081
+ if (url.protocol === "file:") {
2082
+ urls.push(
2083
+ new URL("./", url),
2084
+ // If url is directory
2085
+ new URL(joinURL(url.pathname, "_index.js"), url),
2086
+ // TODO: Remove in next major version?
2087
+ new URL("node_modules", url)
2088
+ );
2089
+ }
2090
+ }
2091
+ let resolved;
2092
+ for (const url of urls) {
2093
+ resolved = _tryModuleResolve(id, url, conditionsSet);
2094
+ if (resolved) {
2095
+ break;
2096
+ }
2097
+ for (const prefix of ["", "/index"]) {
2098
+ for (const extension of options.extensions || DEFAULT_EXTENSIONS) {
2099
+ resolved = _tryModuleResolve(
2100
+ joinURL(id, prefix) + extension,
2101
+ url,
2102
+ conditionsSet
2103
+ );
2104
+ if (resolved) {
2105
+ break;
2106
+ }
2107
+ }
2108
+ if (resolved) {
2109
+ break;
2110
+ }
2111
+ }
2112
+ if (resolved) {
2113
+ break;
2114
+ }
2115
+ }
2116
+ if (!resolved) {
2117
+ const error = new Error(
2118
+ `Cannot find module ${id} imported from ${urls.join(", ")}`
2119
+ );
2120
+ error.code = "ERR_MODULE_NOT_FOUND";
2121
+ throw error;
2122
+ }
2123
+ return pathToFileURL(resolved);
2124
+ }
2125
+ function resolveSync(id, options) {
2126
+ return _resolve$1(id, options);
2127
+ }
2128
+ function resolvePathSync(id, options) {
2129
+ return fileURLToPath(resolveSync(id, options));
2130
+ }
2131
+
2132
+ const GET_IS_ASYNC = Symbol.for("quansync.getIsAsync");
2133
+ class QuansyncError extends Error {
2134
+ constructor(message = "Unexpected promise in sync context") {
2135
+ super(message);
2136
+ this.name = "QuansyncError";
2137
+ }
2138
+ }
2139
+ function isThenable(value) {
2140
+ return value && typeof value === "object" && typeof value.then === "function";
2141
+ }
2142
+ function isQuansyncGenerator(value) {
2143
+ return value && typeof value === "object" && typeof value[Symbol.iterator] === "function" && "__quansync" in value;
2144
+ }
2145
+ function fromObject(options) {
2146
+ const generator = function* (...args) {
2147
+ const isAsync = yield GET_IS_ASYNC;
2148
+ if (isAsync)
2149
+ return yield options.async.apply(this, args);
2150
+ return options.sync.apply(this, args);
2151
+ };
2152
+ function fn(...args) {
2153
+ const iter = generator.apply(this, args);
2154
+ iter.then = (...thenArgs) => options.async.apply(this, args).then(...thenArgs);
2155
+ iter.__quansync = true;
2156
+ return iter;
2157
+ }
2158
+ fn.sync = options.sync;
2159
+ fn.async = options.async;
2160
+ return fn;
2161
+ }
2162
+ function fromPromise(promise) {
2163
+ return fromObject({
2164
+ async: () => Promise.resolve(promise),
2165
+ sync: () => {
2166
+ if (isThenable(promise))
2167
+ throw new QuansyncError();
2168
+ return promise;
2169
+ }
2170
+ });
2171
+ }
2172
+ function unwrapYield(value, isAsync) {
2173
+ if (value === GET_IS_ASYNC)
2174
+ return isAsync;
2175
+ if (isQuansyncGenerator(value))
2176
+ return isAsync ? iterateAsync(value) : iterateSync(value);
2177
+ if (!isAsync && isThenable(value))
2178
+ throw new QuansyncError();
2179
+ return value;
2180
+ }
2181
+ const DEFAULT_ON_YIELD = (value) => value;
2182
+ function iterateSync(generator, onYield = DEFAULT_ON_YIELD) {
2183
+ let current = generator.next();
2184
+ while (!current.done) {
2185
+ try {
2186
+ current = generator.next(unwrapYield(onYield(current.value, false)));
2187
+ } catch (err) {
2188
+ current = generator.throw(err);
2189
+ }
2190
+ }
2191
+ return unwrapYield(current.value);
2192
+ }
2193
+ async function iterateAsync(generator, onYield = DEFAULT_ON_YIELD) {
2194
+ let current = generator.next();
2195
+ while (!current.done) {
2196
+ try {
2197
+ current = generator.next(await unwrapYield(onYield(current.value, true), true));
2198
+ } catch (err) {
2199
+ current = generator.throw(err);
2200
+ }
2201
+ }
2202
+ return current.value;
2203
+ }
2204
+ function fromGeneratorFn(generatorFn, options) {
2205
+ return fromObject({
2206
+ name: generatorFn.name,
2207
+ async(...args) {
2208
+ return iterateAsync(generatorFn.apply(this, args), options?.onYield);
2209
+ },
2210
+ sync(...args) {
2211
+ return iterateSync(generatorFn.apply(this, args), options?.onYield);
2212
+ }
2213
+ });
2214
+ }
2215
+ function quansync$1(input, options) {
2216
+ if (isThenable(input))
2217
+ return fromPromise(input);
2218
+ if (typeof input === "function")
2219
+ return fromGeneratorFn(input, options);
2220
+ else
2221
+ return fromObject(input);
2222
+ }
2223
+ quansync$1({
2224
+ async: () => Promise.resolve(true),
2225
+ sync: () => false
2226
+ });
2227
+
2228
+ const quansync = quansync$1;
2229
+
2230
+ const toPath = urlOrPath => urlOrPath instanceof URL ? fileURLToPath$1(urlOrPath) : urlOrPath;
2231
+
2232
+ async function findUp$1(name, {
2233
+ cwd = process$1.cwd(),
2234
+ type = 'file',
2235
+ stopAt,
2236
+ } = {}) {
2237
+ let directory = path.resolve(toPath(cwd) ?? '');
2238
+ const {root} = path.parse(directory);
2239
+ stopAt = path.resolve(directory, toPath(stopAt ?? root));
2240
+ const isAbsoluteName = path.isAbsolute(name);
2241
+
2242
+ while (directory) {
2243
+ const filePath = isAbsoluteName ? name : path.join(directory, name);
2244
+ try {
2245
+ const stats = await fs$1.stat(filePath); // eslint-disable-line no-await-in-loop
2246
+ if ((type === 'file' && stats.isFile()) || (type === 'directory' && stats.isDirectory())) {
2247
+ return filePath;
2248
+ }
2249
+ } catch {}
2250
+
2251
+ if (directory === stopAt || directory === root) {
2252
+ break;
2253
+ }
2254
+
2255
+ directory = path.dirname(directory);
2256
+ }
2257
+ }
2258
+
2259
+ function findUpSync(name, {
2260
+ cwd = process$1.cwd(),
2261
+ type = 'file',
2262
+ stopAt,
2263
+ } = {}) {
2264
+ let directory = path.resolve(toPath(cwd) ?? '');
2265
+ const {root} = path.parse(directory);
2266
+ stopAt = path.resolve(directory, toPath(stopAt) ?? root);
2267
+ const isAbsoluteName = path.isAbsolute(name);
2268
+
2269
+ while (directory) {
2270
+ const filePath = isAbsoluteName ? name : path.join(directory, name);
2271
+
2272
+ try {
2273
+ const stats = fs.statSync(filePath, {throwIfNoEntry: false});
2274
+ if ((type === 'file' && stats?.isFile()) || (type === 'directory' && stats?.isDirectory())) {
2275
+ return filePath;
2276
+ }
2277
+ } catch {}
2278
+
2279
+ if (directory === stopAt || directory === root) {
2280
+ break;
2281
+ }
2282
+
2283
+ directory = path.dirname(directory);
2284
+ }
2285
+ }
2286
+
2287
+ function _resolve(path, options = {}) {
2288
+ if (options.platform === "auto" || !options.platform)
2289
+ options.platform = process$1.platform === "win32" ? "win32" : "posix";
2290
+ if (process$1.versions.pnp) {
2291
+ const paths = options.paths || [];
2292
+ if (paths.length === 0)
2293
+ paths.push(process$1.cwd());
2294
+ const targetRequire = createRequire(import.meta.url);
2295
+ try {
2296
+ return targetRequire.resolve(path, { paths });
2297
+ } catch {
2298
+ }
2299
+ }
2300
+ const modulePath = resolvePathSync(path, {
2301
+ url: options.paths
2302
+ });
2303
+ if (options.platform === "win32")
2304
+ return win32.normalize(modulePath);
2305
+ return modulePath;
2306
+ }
2307
+ function resolveModule(name, options = {}) {
2308
+ try {
2309
+ return _resolve(name, options);
2310
+ } catch {
2311
+ return void 0;
2312
+ }
2313
+ }
2314
+ function isPackageExists(name, options = {}) {
2315
+ return !!resolvePackage(name, options);
2316
+ }
2317
+ function getPackageJsonPath(name, options = {}) {
2318
+ const entry = resolvePackage(name, options);
2319
+ if (!entry)
2320
+ return;
2321
+ return searchPackageJSON(entry);
2322
+ }
2323
+ const readFile = quansync({
2324
+ async: (id) => fs.promises.readFile(id, "utf8"),
2325
+ sync: (id) => fs.readFileSync(id, "utf8")
2326
+ });
2327
+ const getPackageInfo = quansync(function* (name, options = {}) {
2328
+ const packageJsonPath = getPackageJsonPath(name, options);
2329
+ if (!packageJsonPath)
2330
+ return;
2331
+ const packageJson = JSON.parse(yield readFile(packageJsonPath));
2332
+ return {
2333
+ name,
2334
+ version: packageJson.version,
2335
+ rootPath: dirname(packageJsonPath),
2336
+ packageJsonPath,
2337
+ packageJson
2338
+ };
2339
+ });
2340
+ getPackageInfo.sync;
2341
+ function resolvePackage(name, options = {}) {
2342
+ try {
2343
+ return _resolve(`${name}/package.json`, options);
2344
+ } catch {
2345
+ }
2346
+ try {
2347
+ return _resolve(name, options);
2348
+ } catch (e) {
2349
+ if (e.code !== "MODULE_NOT_FOUND" && e.code !== "ERR_MODULE_NOT_FOUND")
2350
+ console.error(e);
2351
+ return false;
2352
+ }
2353
+ }
2354
+ function searchPackageJSON(dir) {
2355
+ let packageJsonPath;
2356
+ while (true) {
2357
+ if (!dir)
2358
+ return;
2359
+ const newDir = dirname(dir);
2360
+ if (newDir === dir)
2361
+ return;
2362
+ dir = newDir;
2363
+ packageJsonPath = join(dir, "package.json");
2364
+ if (fs.existsSync(packageJsonPath))
2365
+ break;
2366
+ }
2367
+ return packageJsonPath;
2368
+ }
2369
+ const findUp = quansync({
2370
+ sync: findUpSync,
2371
+ async: findUp$1
2372
+ });
2373
+ const loadPackageJSON = quansync(function* (cwd = process$1.cwd()) {
2374
+ const path = yield findUp("package.json", { cwd });
2375
+ if (!path || !fs.existsSync(path))
2376
+ return null;
2377
+ return JSON.parse(yield readFile(path));
2378
+ });
2379
+ loadPackageJSON.sync;
2380
+ const isPackageListed = quansync(function* (name, cwd) {
2381
+ const pkg = (yield loadPackageJSON(cwd)) || {};
2382
+ return name in (pkg.dependencies || {}) || name in (pkg.devDependencies || {});
2383
+ });
2384
+ isPackageListed.sync;
2385
+
2386
+ function getWorkersCountByPercentage(percent) {
2387
+ const maxWorkersCount = nodeos__default.availableParallelism?.() ?? nodeos__default.cpus().length;
2388
+ const workersCountByPercentage = Math.round(Number.parseInt(percent) / 100 * maxWorkersCount);
2389
+ return Math.max(1, Math.min(maxWorkersCount, workersCountByPercentage));
2390
+ }
2391
+
2392
+ const envsOrder = [
2393
+ "node",
2394
+ "jsdom",
2395
+ "happy-dom",
2396
+ "edge-runtime"
2397
+ ];
2398
+ function getTransformMode(patterns, filename) {
2399
+ if (patterns.web && pm.isMatch(filename, patterns.web)) return "web";
2400
+ if (patterns.ssr && pm.isMatch(filename, patterns.ssr)) return "ssr";
2401
+ return void 0;
2402
+ }
2403
+ async function groupFilesByEnv(files) {
2404
+ const filesWithEnv = await Promise.all(files.map(async ({ moduleId: filepath, project, testLines }) => {
2405
+ const code = await promises$1.readFile(filepath, "utf-8");
2406
+ // 1. Check for control comments in the file
2407
+ let env = code.match(/@(?:vitest|jest)-environment\s+([\w-]+)\b/)?.[1];
2408
+ // 2. Check for globals
2409
+ if (!env) {
2410
+ for (const [glob, target] of project.config.environmentMatchGlobs || []) if (pm.isMatch(filepath, glob, { cwd: project.config.root })) {
2411
+ env = target;
2412
+ break;
2413
+ }
2414
+ }
2415
+ // 3. Fallback to global env
2416
+ env ||= project.config.environment || "node";
2417
+ const transformMode = getTransformMode(project.config.testTransformMode, filepath);
2418
+ let envOptionsJson = code.match(/@(?:vitest|jest)-environment-options\s+(.+)/)?.[1];
2419
+ if (envOptionsJson?.endsWith("*/"))
2420
+ // Trim closing Docblock characters the above regex might have captured
2421
+ envOptionsJson = envOptionsJson.slice(0, -2);
2422
+ const envOptions = JSON.parse(envOptionsJson || "null");
2423
+ const envKey = env === "happy-dom" ? "happyDOM" : env;
2424
+ const environment = {
2425
+ name: env,
2426
+ transformMode,
2427
+ options: envOptions ? { [envKey]: envOptions } : null
2428
+ };
2429
+ return {
2430
+ file: {
2431
+ filepath,
2432
+ testLocations: testLines
2433
+ },
2434
+ project,
2435
+ environment
2436
+ };
2437
+ }));
2438
+ return groupBy(filesWithEnv, ({ environment }) => environment.name);
2439
+ }
2440
+
2441
+ const created = /* @__PURE__ */ new Set();
2442
+ const promises = /* @__PURE__ */ new Map();
2443
+ function createMethodsRPC(project, options = {}) {
2444
+ const ctx = project.vitest;
2445
+ const cacheFs = options.cacheFs ?? false;
2446
+ return {
2447
+ snapshotSaved(snapshot) {
2448
+ ctx.snapshot.add(snapshot);
2449
+ },
2450
+ resolveSnapshotPath(testPath) {
2451
+ return ctx.snapshot.resolvePath(testPath, { config: project.serializedConfig });
2452
+ },
2453
+ async getSourceMap(id, force) {
2454
+ if (force) {
2455
+ const mod = project.vite.moduleGraph.getModuleById(id);
2456
+ if (mod) project.vite.moduleGraph.invalidateModule(mod);
2457
+ }
2458
+ const r = await project.vitenode.transformRequest(id);
2459
+ return r?.map;
2460
+ },
2461
+ async fetch(id, transformMode) {
2462
+ const result = await project.vitenode.fetchResult(id, transformMode).catch(handleRollupError);
2463
+ const code = result.code;
2464
+ if (!cacheFs || result.externalize) return result;
2465
+ if ("id" in result && typeof result.id === "string") return { id: result.id };
2466
+ if (code == null) throw new Error(`Failed to fetch module ${id}`);
2467
+ const dir = join$1(project.tmpDir, transformMode);
2468
+ const name = hash("sha1", id, "hex");
2469
+ const tmp = join$1(dir, name);
2470
+ if (!created.has(dir)) {
2471
+ mkdirSync(dir, { recursive: true });
2472
+ created.add(dir);
2473
+ }
2474
+ if (promises.has(tmp)) {
2475
+ await promises.get(tmp);
2476
+ return { id: tmp };
2477
+ }
2478
+ promises.set(tmp, atomicWriteFile(tmp, code).catch(() => writeFile(tmp, code, "utf-8")).finally(() => promises.delete(tmp)));
2479
+ await promises.get(tmp);
2480
+ Object.assign(result, { id: tmp });
2481
+ return { id: tmp };
2482
+ },
2483
+ resolveId(id, importer, transformMode) {
2484
+ return project.vitenode.resolveId(id, importer, transformMode).catch(handleRollupError);
2485
+ },
2486
+ transform(id, environment) {
2487
+ return project.vitenode.transformModule(id, environment).catch(handleRollupError);
2488
+ },
2489
+ async onQueued(file) {
2490
+ if (options.collect) ctx.state.collectFiles(project, [file]);
2491
+ else await ctx._testRun.enqueued(project, file);
2492
+ },
2493
+ async onCollected(files) {
2494
+ if (options.collect) ctx.state.collectFiles(project, files);
2495
+ else await ctx._testRun.collected(project, files);
2496
+ },
2497
+ onAfterSuiteRun(meta) {
2498
+ ctx.coverageProvider?.onAfterSuiteRun(meta);
2499
+ },
2500
+ async onTaskAnnotate(testId, annotation) {
2501
+ return ctx._testRun.annotate(testId, annotation);
2502
+ },
2503
+ async onTaskUpdate(packs, events) {
2504
+ if (options.collect) ctx.state.updateTasks(packs);
2505
+ else await ctx._testRun.updated(packs, events);
2506
+ },
2507
+ async onUserConsoleLog(log) {
2508
+ if (options.collect) ctx.state.updateUserLog(log);
2509
+ else await ctx._testRun.log(log);
2510
+ },
2511
+ onUnhandledError(err, type) {
2512
+ ctx.state.catchError(err, type);
2513
+ },
2514
+ onCancel(reason) {
2515
+ ctx.cancelCurrentRun(reason);
2516
+ },
2517
+ getCountOfFailedTests() {
2518
+ return ctx.state.getCountOfFailedTests();
2519
+ }
2520
+ };
2521
+ }
2522
+ // serialize rollup error on server to preserve details as a test error
2523
+ function handleRollupError(e) {
2524
+ if (e instanceof Error && ("plugin" in e || "frame" in e || "id" in e))
2525
+ // eslint-disable-next-line no-throw-literal
2526
+ throw {
2527
+ name: e.name,
2528
+ message: e.message,
2529
+ stack: e.stack,
2530
+ cause: e.cause,
2531
+ __vitest_rollup_error__: {
2532
+ plugin: e.plugin,
2533
+ id: e.id,
2534
+ loc: e.loc,
2535
+ frame: e.frame
2536
+ }
2537
+ };
2538
+ throw e;
2539
+ }
2540
+ /**
2541
+ * Performs an atomic write operation using the write-then-rename pattern.
2542
+ *
2543
+ * Why we need this:
2544
+ * - Ensures file integrity by never leaving partially written files on disk
2545
+ * - Prevents other processes from reading incomplete data during writes
2546
+ * - Particularly important for test files where incomplete writes could cause test failures
2547
+ *
2548
+ * The implementation writes to a temporary file first, then renames it to the target path.
2549
+ * This rename operation is atomic on most filesystems (including POSIX-compliant ones),
2550
+ * guaranteeing that other processes will only ever see the complete file.
2551
+ *
2552
+ * Added in https://github.com/vitest-dev/vitest/pull/7531
2553
+ */
2554
+ async function atomicWriteFile(realFilePath, data) {
2555
+ const dir = dirname$1(realFilePath);
2556
+ const tmpFilePath = join$1(dir, `.tmp-${Date.now()}-${Math.random().toString(36).slice(2)}`);
2557
+ try {
2558
+ await writeFile(tmpFilePath, data, "utf-8");
2559
+ await rename(tmpFilePath, realFilePath);
2560
+ } finally {
2561
+ try {
2562
+ if (await stat(tmpFilePath)) await unlink(tmpFilePath);
2563
+ } catch {}
2564
+ }
2565
+ }
2566
+
2567
+ function createChildProcessChannel$1(project, collect = false) {
2568
+ const emitter = new EventEmitter();
2569
+ const events = {
2570
+ message: "message",
2571
+ response: "response"
2572
+ };
2573
+ const channel = {
2574
+ onMessage: (callback) => emitter.on(events.message, callback),
2575
+ postMessage: (message) => emitter.emit(events.response, message),
2576
+ onClose: () => emitter.removeAllListeners()
2577
+ };
2578
+ const rpc = createBirpc(createMethodsRPC(project, {
2579
+ cacheFs: true,
2580
+ collect
2581
+ }), {
2582
+ eventNames: ["onCancel"],
2583
+ serialize: v8.serialize,
2584
+ deserialize: (v) => {
2585
+ try {
2586
+ return v8.deserialize(Buffer.from(v));
2587
+ } catch (error) {
2588
+ let stringified = "";
2589
+ try {
2590
+ stringified = `\nReceived value: ${JSON.stringify(v)}`;
2591
+ } catch {}
2592
+ throw new Error(`[vitest-pool]: Unexpected call to process.send(). Make sure your test cases are not interfering with process's channel.${stringified}`, { cause: error });
2593
+ }
2594
+ },
2595
+ post(v) {
2596
+ emitter.emit(events.message, v);
2597
+ },
2598
+ on(fn) {
2599
+ emitter.on(events.response, fn);
2600
+ },
2601
+ onTimeoutError(functionName) {
2602
+ throw new Error(`[vitest-pool]: Timeout calling "${functionName}"`);
2603
+ }
2604
+ });
2605
+ project.vitest.onCancel((reason) => rpc.onCancel(reason));
2606
+ return channel;
2607
+ }
2608
+ function createForksPool(vitest, { execArgv, env }) {
2609
+ const numCpus = typeof nodeos.availableParallelism === "function" ? nodeos.availableParallelism() : nodeos.cpus().length;
2610
+ const threadsCount = vitest.config.watch ? Math.max(Math.floor(numCpus / 2), 1) : Math.max(numCpus - 1, 1);
2611
+ const poolOptions = vitest.config.poolOptions?.forks ?? {};
2612
+ const maxThreads = poolOptions.maxForks ?? vitest.config.maxWorkers ?? threadsCount;
2613
+ const minThreads = poolOptions.minForks ?? vitest.config.minWorkers ?? Math.min(threadsCount, maxThreads);
2614
+ const worker = resolve(vitest.distPath, "workers/forks.js");
2615
+ const options = {
2616
+ runtime: "child_process",
2617
+ filename: resolve(vitest.distPath, "worker.js"),
2618
+ teardown: "teardown",
2619
+ maxThreads,
2620
+ minThreads,
2621
+ env,
2622
+ execArgv: [...poolOptions.execArgv ?? [], ...execArgv],
2623
+ terminateTimeout: vitest.config.teardownTimeout,
2624
+ concurrentTasksPerWorker: 1
2625
+ };
2626
+ const isolated = poolOptions.isolate ?? true;
2627
+ if (isolated) options.isolateWorkers = true;
2628
+ if (poolOptions.singleFork || !vitest.config.fileParallelism) {
2629
+ options.maxThreads = 1;
2630
+ options.minThreads = 1;
2631
+ }
2632
+ const pool = new Tinypool(options);
2633
+ const runWithFiles = (name) => {
2634
+ let id = 0;
2635
+ async function runFiles(project, config, files, environment, invalidates = []) {
2636
+ const paths = files.map((f) => f.filepath);
2637
+ vitest.state.clearFiles(project, paths);
2638
+ const channel = createChildProcessChannel$1(project, name === "collect");
2639
+ const workerId = ++id;
2640
+ const data = {
2641
+ pool: "forks",
2642
+ worker,
2643
+ config,
2644
+ files,
2645
+ invalidates,
2646
+ environment,
2647
+ workerId,
2648
+ projectName: project.name,
2649
+ providedContext: project.getProvidedContext()
2650
+ };
2651
+ try {
2652
+ await pool.run(data, {
2653
+ name,
2654
+ channel
2655
+ });
2656
+ } catch (error) {
2657
+ // Worker got stuck and won't terminate - this may cause process to hang
2658
+ if (error instanceof Error && /Failed to terminate worker/.test(error.message)) vitest.state.addProcessTimeoutCause(`Failed to terminate worker while running ${paths.join(", ")}.`);
2659
+ else if (vitest.isCancelling && error instanceof Error && /The task has been cancelled/.test(error.message)) vitest.state.cancelFiles(paths, project);
2660
+ else throw error;
2661
+ }
2662
+ }
2663
+ return async (specs, invalidates) => {
2664
+ // Cancel pending tasks from pool when possible
2665
+ vitest.onCancel(() => pool.cancelPendingTasks());
2666
+ const configs = /* @__PURE__ */ new WeakMap();
2667
+ const getConfig = (project) => {
2668
+ if (configs.has(project)) return configs.get(project);
2669
+ const _config = project.getSerializableConfig();
2670
+ const config = wrapSerializableConfig(_config);
2671
+ configs.set(project, config);
2672
+ return config;
2673
+ };
2674
+ const singleFork = specs.filter((spec) => spec.project.config.poolOptions?.forks?.singleFork);
2675
+ const multipleForks = specs.filter((spec) => !spec.project.config.poolOptions?.forks?.singleFork);
2676
+ if (multipleForks.length) {
2677
+ const filesByEnv = await groupFilesByEnv(multipleForks);
2678
+ const files = Object.values(filesByEnv).flat();
2679
+ const results = [];
2680
+ if (isolated) results.push(...await Promise.allSettled(files.map(({ file, environment, project }) => runFiles(project, getConfig(project), [file], environment, invalidates))));
2681
+ else {
2682
+ // When isolation is disabled, we still need to isolate environments and workspace projects from each other.
2683
+ // Tasks are still running parallel but environments are isolated between tasks.
2684
+ const grouped = groupBy(files, ({ project, environment }) => project.name + environment.name + JSON.stringify(environment.options));
2685
+ for (const group of Object.values(grouped)) {
2686
+ // Push all files to pool's queue
2687
+ results.push(...await Promise.allSettled(group.map(({ file, environment, project }) => runFiles(project, getConfig(project), [file], environment, invalidates))));
2688
+ // Once all tasks are running or finished, recycle worker for isolation.
2689
+ // On-going workers will run in the previous environment.
2690
+ await new Promise((resolve) => pool.queueSize === 0 ? resolve() : pool.once("drain", resolve));
2691
+ await pool.recycleWorkers();
2692
+ }
2693
+ }
2694
+ const errors = results.filter((r) => r.status === "rejected").map((r) => r.reason);
2695
+ if (errors.length > 0) throw new AggregateError(errors, "Errors occurred while running tests. For more information, see serialized error.");
2696
+ }
2697
+ if (singleFork.length) {
2698
+ const filesByEnv = await groupFilesByEnv(singleFork);
2699
+ const envs = envsOrder.concat(Object.keys(filesByEnv).filter((env) => !envsOrder.includes(env)));
2700
+ for (const env of envs) {
2701
+ const files = filesByEnv[env];
2702
+ if (!files?.length) continue;
2703
+ const filesByOptions = groupBy(files, ({ project, environment }) => project.name + JSON.stringify(environment.options));
2704
+ for (const files of Object.values(filesByOptions)) {
2705
+ // Always run environments isolated between each other
2706
+ await pool.recycleWorkers();
2707
+ const filenames = files.map((f) => f.file);
2708
+ await runFiles(files[0].project, getConfig(files[0].project), filenames, files[0].environment, invalidates);
2709
+ }
2710
+ }
2711
+ }
2712
+ };
2713
+ };
2714
+ return {
2715
+ name: "forks",
2716
+ runTests: runWithFiles("run"),
2717
+ collectTests: runWithFiles("collect"),
2718
+ close: () => pool.destroy()
2719
+ };
2720
+ }
2721
+
2722
+ function createWorkerChannel$1(project, collect) {
2723
+ const channel = new MessageChannel();
2724
+ const port = channel.port2;
2725
+ const workerPort = channel.port1;
2726
+ const rpc = createBirpc(createMethodsRPC(project, { collect }), {
2727
+ eventNames: ["onCancel"],
2728
+ post(v) {
2729
+ port.postMessage(v);
2730
+ },
2731
+ on(fn) {
2732
+ port.on("message", fn);
2733
+ },
2734
+ onTimeoutError(functionName) {
2735
+ throw new Error(`[vitest-pool]: Timeout calling "${functionName}"`);
2736
+ }
2737
+ });
2738
+ project.vitest.onCancel((reason) => rpc.onCancel(reason));
2739
+ return {
2740
+ workerPort,
2741
+ port
2742
+ };
2743
+ }
2744
+ function createThreadsPool(vitest, { execArgv, env }) {
2745
+ const numCpus = typeof nodeos.availableParallelism === "function" ? nodeos.availableParallelism() : nodeos.cpus().length;
2746
+ const threadsCount = vitest.config.watch ? Math.max(Math.floor(numCpus / 2), 1) : Math.max(numCpus - 1, 1);
2747
+ const poolOptions = vitest.config.poolOptions?.threads ?? {};
2748
+ const maxThreads = poolOptions.maxThreads ?? vitest.config.maxWorkers ?? threadsCount;
2749
+ const minThreads = poolOptions.minThreads ?? vitest.config.minWorkers ?? Math.min(threadsCount, maxThreads);
2750
+ const worker = resolve(vitest.distPath, "workers/threads.js");
2751
+ const options = {
2752
+ filename: resolve(vitest.distPath, "worker.js"),
2753
+ teardown: "teardown",
2754
+ useAtomics: poolOptions.useAtomics ?? false,
2755
+ maxThreads,
2756
+ minThreads,
2757
+ env,
2758
+ execArgv: [...poolOptions.execArgv ?? [], ...execArgv],
2759
+ terminateTimeout: vitest.config.teardownTimeout,
2760
+ concurrentTasksPerWorker: 1
2761
+ };
2762
+ const isolated = poolOptions.isolate ?? true;
2763
+ if (isolated) options.isolateWorkers = true;
2764
+ if (poolOptions.singleThread || !vitest.config.fileParallelism) {
2765
+ options.maxThreads = 1;
2766
+ options.minThreads = 1;
2767
+ }
2768
+ const pool = new Tinypool$1(options);
2769
+ const runWithFiles = (name) => {
2770
+ let id = 0;
2771
+ async function runFiles(project, config, files, environment, invalidates = []) {
2772
+ const paths = files.map((f) => f.filepath);
2773
+ vitest.state.clearFiles(project, paths);
2774
+ const { workerPort, port } = createWorkerChannel$1(project, name === "collect");
2775
+ const onClose = () => {
2776
+ port.close();
2777
+ workerPort.close();
2778
+ };
2779
+ const workerId = ++id;
2780
+ const data = {
2781
+ pool: "threads",
2782
+ worker,
2783
+ port: workerPort,
2784
+ config,
2785
+ files,
2786
+ invalidates,
2787
+ environment,
2788
+ workerId,
2789
+ projectName: project.name,
2790
+ providedContext: project.getProvidedContext()
2791
+ };
2792
+ try {
2793
+ await pool.run(data, {
2794
+ transferList: [workerPort],
2795
+ name,
2796
+ channel: { onClose }
2797
+ });
2798
+ } catch (error) {
2799
+ // Worker got stuck and won't terminate - this may cause process to hang
2800
+ if (error instanceof Error && /Failed to terminate worker/.test(error.message)) vitest.state.addProcessTimeoutCause(`Failed to terminate worker while running ${paths.join(", ")}. \nSee https://vitest.dev/guide/common-errors.html#failed-to-terminate-worker for troubleshooting.`);
2801
+ else if (vitest.isCancelling && error instanceof Error && /The task has been cancelled/.test(error.message)) vitest.state.cancelFiles(paths, project);
2802
+ else throw error;
2803
+ }
2804
+ }
2805
+ return async (specs, invalidates) => {
2806
+ // Cancel pending tasks from pool when possible
2807
+ vitest.onCancel(() => pool.cancelPendingTasks());
2808
+ const configs = /* @__PURE__ */ new WeakMap();
2809
+ const getConfig = (project) => {
2810
+ if (configs.has(project)) return configs.get(project);
2811
+ const config = project.serializedConfig;
2812
+ configs.set(project, config);
2813
+ return config;
2814
+ };
2815
+ const singleThreads = specs.filter((spec) => spec.project.config.poolOptions?.threads?.singleThread);
2816
+ const multipleThreads = specs.filter((spec) => !spec.project.config.poolOptions?.threads?.singleThread);
2817
+ if (multipleThreads.length) {
2818
+ const filesByEnv = await groupFilesByEnv(multipleThreads);
2819
+ const files = Object.values(filesByEnv).flat();
2820
+ const results = [];
2821
+ if (isolated) results.push(...await Promise.allSettled(files.map(({ file, environment, project }) => runFiles(project, getConfig(project), [file], environment, invalidates))));
2822
+ else {
2823
+ // When isolation is disabled, we still need to isolate environments and workspace projects from each other.
2824
+ // Tasks are still running parallel but environments are isolated between tasks.
2825
+ const grouped = groupBy(files, ({ project, environment }) => project.name + environment.name + JSON.stringify(environment.options));
2826
+ for (const group of Object.values(grouped)) {
2827
+ // Push all files to pool's queue
2828
+ results.push(...await Promise.allSettled(group.map(({ file, environment, project }) => runFiles(project, getConfig(project), [file], environment, invalidates))));
2829
+ // Once all tasks are running or finished, recycle worker for isolation.
2830
+ // On-going workers will run in the previous environment.
2831
+ await new Promise((resolve) => pool.queueSize === 0 ? resolve() : pool.once("drain", resolve));
2832
+ await pool.recycleWorkers();
2833
+ }
2834
+ }
2835
+ const errors = results.filter((r) => r.status === "rejected").map((r) => r.reason);
2836
+ if (errors.length > 0) throw new AggregateError(errors, "Errors occurred while running tests. For more information, see serialized error.");
2837
+ }
2838
+ if (singleThreads.length) {
2839
+ const filesByEnv = await groupFilesByEnv(singleThreads);
2840
+ const envs = envsOrder.concat(Object.keys(filesByEnv).filter((env) => !envsOrder.includes(env)));
2841
+ for (const env of envs) {
2842
+ const files = filesByEnv[env];
2843
+ if (!files?.length) continue;
2844
+ const filesByOptions = groupBy(files, ({ project, environment }) => project.name + JSON.stringify(environment.options));
2845
+ for (const files of Object.values(filesByOptions)) {
2846
+ // Always run environments isolated between each other
2847
+ await pool.recycleWorkers();
2848
+ const filenames = files.map((f) => f.file);
2849
+ await runFiles(files[0].project, getConfig(files[0].project), filenames, files[0].environment, invalidates);
2850
+ }
2851
+ }
2852
+ }
2853
+ };
2854
+ };
2855
+ return {
2856
+ name: "threads",
2857
+ runTests: runWithFiles("run"),
2858
+ collectTests: runWithFiles("collect"),
2859
+ close: () => pool.destroy()
2860
+ };
2861
+ }
2862
+
2863
+ function createTypecheckPool(vitest) {
2864
+ const promisesMap = /* @__PURE__ */ new WeakMap();
2865
+ const rerunTriggered = /* @__PURE__ */ new WeakSet();
2866
+ async function onParseEnd(project, { files, sourceErrors }) {
2867
+ const checker = project.typechecker;
2868
+ const { packs, events } = checker.getTestPacksAndEvents();
2869
+ await vitest._testRun.updated(packs, events);
2870
+ if (!project.config.typecheck.ignoreSourceErrors) sourceErrors.forEach((error) => vitest.state.catchError(error, "Unhandled Source Error"));
2871
+ const processError = !hasFailed(files) && !sourceErrors.length && checker.getExitCode();
2872
+ if (processError) {
2873
+ const error = new Error(checker.getOutput());
2874
+ error.stack = "";
2875
+ vitest.state.catchError(error, "Typecheck Error");
2876
+ }
2877
+ promisesMap.get(project)?.resolve();
2878
+ rerunTriggered.delete(project);
2879
+ // triggered by TSC watcher, not Vitest watcher, so we need to emulate what Vitest does in this case
2880
+ if (vitest.config.watch && !vitest.runningPromise) {
2881
+ await vitest.report("onFinished", files, []);
2882
+ await vitest.report("onWatcherStart", files, [...project.config.typecheck.ignoreSourceErrors ? [] : sourceErrors, ...vitest.state.getUnhandledErrors()]);
2883
+ }
2884
+ }
2885
+ async function createWorkspaceTypechecker(project, files) {
2886
+ const checker = project.typechecker ?? new Typechecker(project);
2887
+ if (project.typechecker) return checker;
2888
+ project.typechecker = checker;
2889
+ checker.setFiles(files);
2890
+ checker.onParseStart(async () => {
2891
+ const files = checker.getTestFiles();
2892
+ for (const file of files) await vitest._testRun.enqueued(project, file);
2893
+ await vitest._testRun.collected(project, files);
2894
+ });
2895
+ checker.onParseEnd((result) => onParseEnd(project, result));
2896
+ checker.onWatcherRerun(async () => {
2897
+ rerunTriggered.add(project);
2898
+ if (!vitest.runningPromise) {
2899
+ vitest.state.clearErrors();
2900
+ await vitest.report("onWatcherRerun", files, "File change detected. Triggering rerun.");
2901
+ }
2902
+ await checker.collectTests();
2903
+ const testFiles = checker.getTestFiles();
2904
+ for (const file of testFiles) await vitest._testRun.enqueued(project, file);
2905
+ await vitest._testRun.collected(project, testFiles);
2906
+ const { packs, events } = checker.getTestPacksAndEvents();
2907
+ await vitest._testRun.updated(packs, events);
2908
+ });
2909
+ return checker;
2910
+ }
2911
+ async function startTypechecker(project, files) {
2912
+ if (project.typechecker) return;
2913
+ const checker = await createWorkspaceTypechecker(project, files);
2914
+ await checker.collectTests();
2915
+ await checker.start();
2916
+ }
2917
+ async function collectTests(specs) {
2918
+ const specsByProject = groupBy(specs, (spec) => spec.project.name);
2919
+ for (const name in specsByProject) {
2920
+ const project = specsByProject[name][0].project;
2921
+ const files = specsByProject[name].map((spec) => spec.moduleId);
2922
+ const checker = await createWorkspaceTypechecker(project, files);
2923
+ checker.setFiles(files);
2924
+ await checker.collectTests();
2925
+ const testFiles = checker.getTestFiles();
2926
+ vitest.state.collectFiles(project, testFiles);
2927
+ }
2928
+ }
2929
+ async function runTests(specs) {
2930
+ const specsByProject = groupBy(specs, (spec) => spec.project.name);
2931
+ const promises = [];
2932
+ for (const name in specsByProject) {
2933
+ const project = specsByProject[name][0].project;
2934
+ const files = specsByProject[name].map((spec) => spec.moduleId);
2935
+ const promise = createDefer();
2936
+ // check that watcher actually triggered rerun
2937
+ const _p = new Promise((resolve) => {
2938
+ const _i = setInterval(() => {
2939
+ if (!project.typechecker || rerunTriggered.has(project)) {
2940
+ resolve(true);
2941
+ clearInterval(_i);
2942
+ }
2943
+ });
2944
+ setTimeout(() => {
2945
+ resolve(false);
2946
+ clearInterval(_i);
2947
+ }, 500).unref();
2948
+ });
2949
+ const triggered = await _p;
2950
+ if (project.typechecker && !triggered) {
2951
+ const testFiles = project.typechecker.getTestFiles();
2952
+ for (const file of testFiles) await vitest._testRun.enqueued(project, file);
2953
+ await vitest._testRun.collected(project, testFiles);
2954
+ await onParseEnd(project, project.typechecker.getResult());
2955
+ continue;
2956
+ }
2957
+ promises.push(promise);
2958
+ promisesMap.set(project, promise);
2959
+ promises.push(startTypechecker(project, files));
2960
+ }
2961
+ await Promise.all(promises);
2962
+ }
2963
+ return {
2964
+ name: "typescript",
2965
+ runTests,
2966
+ collectTests,
2967
+ async close() {
2968
+ const promises = vitest.projects.map((project) => project.typechecker?.stop());
2969
+ await Promise.all(promises);
2970
+ }
2971
+ };
2972
+ }
2973
+
2974
+ function getDefaultThreadsCount(config) {
2975
+ const numCpus = typeof nodeos.availableParallelism === "function" ? nodeos.availableParallelism() : nodeos.cpus().length;
2976
+ return config.watch ? Math.max(Math.floor(numCpus / 2), 1) : Math.max(numCpus - 1, 1);
2977
+ }
2978
+ function getWorkerMemoryLimit(config, pool) {
2979
+ if (pool === "vmForks") {
2980
+ const opts = config.poolOptions?.vmForks ?? {};
2981
+ if (opts.memoryLimit) return opts.memoryLimit;
2982
+ const workers = opts.maxForks ?? getDefaultThreadsCount(config);
2983
+ return 1 / workers;
2984
+ } else {
2985
+ const opts = config.poolOptions?.vmThreads ?? {};
2986
+ if (opts.memoryLimit) return opts.memoryLimit;
2987
+ const workers = opts.maxThreads ?? getDefaultThreadsCount(config);
2988
+ return 1 / workers;
2989
+ }
2990
+ }
2991
+ /**
2992
+ * Converts a string representing an amount of memory to bytes.
2993
+ *
2994
+ * @param input The value to convert to bytes.
2995
+ * @param percentageReference The reference value to use when a '%' value is supplied.
2996
+ */
2997
+ function stringToBytes(input, percentageReference) {
2998
+ if (input === null || input === void 0) return input;
2999
+ if (typeof input === "string") if (Number.isNaN(Number.parseFloat(input.slice(-1)))) {
3000
+ let [, numericString, trailingChars] = input.match(/(.*?)([^0-9.-]+)$/) || [];
3001
+ if (trailingChars && numericString) {
3002
+ const numericValue = Number.parseFloat(numericString);
3003
+ trailingChars = trailingChars.toLowerCase();
3004
+ switch (trailingChars) {
3005
+ case "%":
3006
+ input = numericValue / 100;
3007
+ break;
3008
+ case "kb":
3009
+ case "k": return numericValue * 1e3;
3010
+ case "kib": return numericValue * 1024;
3011
+ case "mb":
3012
+ case "m": return numericValue * 1e3 * 1e3;
3013
+ case "mib": return numericValue * 1024 * 1024;
3014
+ case "gb":
3015
+ case "g": return numericValue * 1e3 * 1e3 * 1e3;
3016
+ case "gib": return numericValue * 1024 * 1024 * 1024;
3017
+ }
3018
+ }
3019
+ } else input = Number.parseFloat(input);
3020
+ if (typeof input === "number") if (input <= 1 && input > 0) if (percentageReference) return Math.floor(input * percentageReference);
3021
+ else throw new Error("For a percentage based memory limit a percentageReference must be supplied");
3022
+ else if (input > 1) return Math.floor(input);
3023
+ else throw new Error("Unexpected numerical input for \"memoryLimit\"");
3024
+ return null;
3025
+ }
3026
+
3027
+ const suppressWarningsPath$1 = resolve(rootDir, "./suppress-warnings.cjs");
3028
+ function createChildProcessChannel(project, collect) {
3029
+ const emitter = new EventEmitter();
3030
+ const cleanup = () => emitter.removeAllListeners();
3031
+ const events = {
3032
+ message: "message",
3033
+ response: "response"
3034
+ };
3035
+ const channel = {
3036
+ onMessage: (callback) => emitter.on(events.message, callback),
3037
+ postMessage: (message) => emitter.emit(events.response, message)
3038
+ };
3039
+ const rpc = createBirpc(createMethodsRPC(project, {
3040
+ cacheFs: true,
3041
+ collect
3042
+ }), {
3043
+ eventNames: ["onCancel"],
3044
+ serialize: v8.serialize,
3045
+ deserialize: (v) => {
3046
+ try {
3047
+ return v8.deserialize(Buffer.from(v));
3048
+ } catch (error) {
3049
+ let stringified = "";
3050
+ try {
3051
+ stringified = `\nReceived value: ${JSON.stringify(v)}`;
3052
+ } catch {}
3053
+ throw new Error(`[vitest-pool]: Unexpected call to process.send(). Make sure your test cases are not interfering with process's channel.${stringified}`, { cause: error });
3054
+ }
3055
+ },
3056
+ post(v) {
3057
+ emitter.emit(events.message, v);
3058
+ },
3059
+ on(fn) {
3060
+ emitter.on(events.response, fn);
3061
+ },
3062
+ onTimeoutError(functionName) {
3063
+ throw new Error(`[vitest-pool]: Timeout calling "${functionName}"`);
3064
+ }
3065
+ });
3066
+ project.vitest.onCancel((reason) => rpc.onCancel(reason));
3067
+ return {
3068
+ channel,
3069
+ cleanup
3070
+ };
3071
+ }
3072
+ function createVmForksPool(vitest, { execArgv, env }) {
3073
+ const numCpus = typeof nodeos.availableParallelism === "function" ? nodeos.availableParallelism() : nodeos.cpus().length;
3074
+ const threadsCount = vitest.config.watch ? Math.max(Math.floor(numCpus / 2), 1) : Math.max(numCpus - 1, 1);
3075
+ const poolOptions = vitest.config.poolOptions?.vmForks ?? {};
3076
+ const maxThreads = poolOptions.maxForks ?? vitest.config.maxWorkers ?? threadsCount;
3077
+ const minThreads = poolOptions.maxForks ?? vitest.config.minWorkers ?? Math.min(threadsCount, maxThreads);
3078
+ const worker = resolve(vitest.distPath, "workers/vmForks.js");
3079
+ const options = {
3080
+ runtime: "child_process",
3081
+ filename: resolve(vitest.distPath, "worker.js"),
3082
+ maxThreads,
3083
+ minThreads,
3084
+ env,
3085
+ execArgv: [
3086
+ "--experimental-import-meta-resolve",
3087
+ "--experimental-vm-modules",
3088
+ "--require",
3089
+ suppressWarningsPath$1,
3090
+ ...poolOptions.execArgv ?? [],
3091
+ ...execArgv
3092
+ ],
3093
+ terminateTimeout: vitest.config.teardownTimeout,
3094
+ concurrentTasksPerWorker: 1,
3095
+ maxMemoryLimitBeforeRecycle: getMemoryLimit$1(vitest.config) || void 0
3096
+ };
3097
+ if (poolOptions.singleFork || !vitest.config.fileParallelism) {
3098
+ options.maxThreads = 1;
3099
+ options.minThreads = 1;
3100
+ }
3101
+ const pool = new Tinypool$1(options);
3102
+ const runWithFiles = (name) => {
3103
+ let id = 0;
3104
+ async function runFiles(project, config, files, environment, invalidates = []) {
3105
+ const paths = files.map((f) => f.filepath);
3106
+ vitest.state.clearFiles(project, paths);
3107
+ const { channel, cleanup } = createChildProcessChannel(project, name === "collect");
3108
+ const workerId = ++id;
3109
+ const data = {
3110
+ pool: "forks",
3111
+ worker,
3112
+ config,
3113
+ files,
3114
+ invalidates,
3115
+ environment,
3116
+ workerId,
3117
+ projectName: project.name,
3118
+ providedContext: project.getProvidedContext()
3119
+ };
3120
+ try {
3121
+ await pool.run(data, {
3122
+ name,
3123
+ channel
3124
+ });
3125
+ } catch (error) {
3126
+ // Worker got stuck and won't terminate - this may cause process to hang
3127
+ if (error instanceof Error && /Failed to terminate worker/.test(error.message)) vitest.state.addProcessTimeoutCause(`Failed to terminate worker while running ${paths.join(", ")}.`);
3128
+ else if (vitest.isCancelling && error instanceof Error && /The task has been cancelled/.test(error.message)) vitest.state.cancelFiles(paths, project);
3129
+ else throw error;
3130
+ } finally {
3131
+ cleanup();
3132
+ }
3133
+ }
3134
+ return async (specs, invalidates) => {
3135
+ // Cancel pending tasks from pool when possible
3136
+ vitest.onCancel(() => pool.cancelPendingTasks());
3137
+ const configs = /* @__PURE__ */ new Map();
3138
+ const getConfig = (project) => {
3139
+ if (configs.has(project)) return configs.get(project);
3140
+ const _config = project.serializedConfig;
3141
+ const config = wrapSerializableConfig(_config);
3142
+ configs.set(project, config);
3143
+ return config;
3144
+ };
3145
+ const filesByEnv = await groupFilesByEnv(specs);
3146
+ const promises = Object.values(filesByEnv).flat();
3147
+ const results = await Promise.allSettled(promises.map(({ file, environment, project }) => runFiles(project, getConfig(project), [file], environment, invalidates)));
3148
+ const errors = results.filter((r) => r.status === "rejected").map((r) => r.reason);
3149
+ if (errors.length > 0) throw new AggregateError(errors, "Errors occurred while running tests. For more information, see serialized error.");
3150
+ };
3151
+ };
3152
+ return {
3153
+ name: "vmForks",
3154
+ runTests: runWithFiles("run"),
3155
+ collectTests: runWithFiles("collect"),
3156
+ close: () => pool.destroy()
3157
+ };
3158
+ }
3159
+ function getMemoryLimit$1(config) {
3160
+ const memory = nodeos.totalmem();
3161
+ const limit = getWorkerMemoryLimit(config, "vmForks");
3162
+ if (typeof memory === "number") return stringToBytes(limit, config.watch ? memory / 2 : memory);
3163
+ // If totalmem is not supported we cannot resolve percentage based values like 0.5, "50%"
3164
+ if (typeof limit === "number" && limit > 1 || typeof limit === "string" && limit.at(-1) !== "%") return stringToBytes(limit);
3165
+ // just ignore "memoryLimit" value because we cannot detect memory limit
3166
+ return null;
3167
+ }
3168
+
3169
+ const suppressWarningsPath = resolve(rootDir, "./suppress-warnings.cjs");
3170
+ function createWorkerChannel(project, collect) {
3171
+ const channel = new MessageChannel();
3172
+ const port = channel.port2;
3173
+ const workerPort = channel.port1;
3174
+ const rpc = createBirpc(createMethodsRPC(project, { collect }), {
3175
+ eventNames: ["onCancel"],
3176
+ post(v) {
3177
+ port.postMessage(v);
3178
+ },
3179
+ on(fn) {
3180
+ port.on("message", fn);
3181
+ },
3182
+ onTimeoutError(functionName) {
3183
+ throw new Error(`[vitest-pool]: Timeout calling "${functionName}"`);
3184
+ }
3185
+ });
3186
+ project.vitest.onCancel((reason) => rpc.onCancel(reason));
3187
+ return {
3188
+ workerPort,
3189
+ port
3190
+ };
3191
+ }
3192
+ function createVmThreadsPool(vitest, { execArgv, env }) {
3193
+ const numCpus = typeof nodeos.availableParallelism === "function" ? nodeos.availableParallelism() : nodeos.cpus().length;
3194
+ const threadsCount = vitest.config.watch ? Math.max(Math.floor(numCpus / 2), 1) : Math.max(numCpus - 1, 1);
3195
+ const poolOptions = vitest.config.poolOptions?.vmThreads ?? {};
3196
+ const maxThreads = poolOptions.maxThreads ?? vitest.config.maxWorkers ?? threadsCount;
3197
+ const minThreads = poolOptions.minThreads ?? vitest.config.minWorkers ?? Math.min(threadsCount, maxThreads);
3198
+ const worker = resolve(vitest.distPath, "workers/vmThreads.js");
3199
+ const options = {
3200
+ filename: resolve(vitest.distPath, "worker.js"),
3201
+ useAtomics: poolOptions.useAtomics ?? false,
3202
+ maxThreads,
3203
+ minThreads,
3204
+ env,
3205
+ execArgv: [
3206
+ "--experimental-import-meta-resolve",
3207
+ "--experimental-vm-modules",
3208
+ "--require",
3209
+ suppressWarningsPath,
3210
+ ...poolOptions.execArgv ?? [],
3211
+ ...execArgv
3212
+ ],
3213
+ terminateTimeout: vitest.config.teardownTimeout,
3214
+ concurrentTasksPerWorker: 1,
3215
+ maxMemoryLimitBeforeRecycle: getMemoryLimit(vitest.config) || void 0
3216
+ };
3217
+ if (poolOptions.singleThread || !vitest.config.fileParallelism) {
3218
+ options.maxThreads = 1;
3219
+ options.minThreads = 1;
3220
+ }
3221
+ const pool = new Tinypool$1(options);
3222
+ const runWithFiles = (name) => {
3223
+ let id = 0;
3224
+ async function runFiles(project, config, files, environment, invalidates = []) {
3225
+ const paths = files.map((f) => f.filepath);
3226
+ vitest.state.clearFiles(project, paths);
3227
+ const { workerPort, port } = createWorkerChannel(project, name === "collect");
3228
+ const workerId = ++id;
3229
+ const data = {
3230
+ pool: "vmThreads",
3231
+ worker,
3232
+ port: workerPort,
3233
+ config,
3234
+ files: paths,
3235
+ invalidates,
3236
+ environment,
3237
+ workerId,
3238
+ projectName: project.name,
3239
+ providedContext: project.getProvidedContext()
3240
+ };
3241
+ try {
3242
+ await pool.run(data, {
3243
+ transferList: [workerPort],
3244
+ name
3245
+ });
3246
+ } catch (error) {
3247
+ // Worker got stuck and won't terminate - this may cause process to hang
3248
+ if (error instanceof Error && /Failed to terminate worker/.test(error.message)) vitest.state.addProcessTimeoutCause(`Failed to terminate worker while running ${paths.join(", ")}. \nSee https://vitest.dev/guide/common-errors.html#failed-to-terminate-worker for troubleshooting.`);
3249
+ else if (vitest.isCancelling && error instanceof Error && /The task has been cancelled/.test(error.message)) vitest.state.cancelFiles(paths, project);
3250
+ else throw error;
3251
+ } finally {
3252
+ port.close();
3253
+ workerPort.close();
3254
+ }
3255
+ }
3256
+ return async (specs, invalidates) => {
3257
+ // Cancel pending tasks from pool when possible
3258
+ vitest.onCancel(() => pool.cancelPendingTasks());
3259
+ const configs = /* @__PURE__ */ new Map();
3260
+ const getConfig = (project) => {
3261
+ if (configs.has(project)) return configs.get(project);
3262
+ const config = project.serializedConfig;
3263
+ configs.set(project, config);
3264
+ return config;
3265
+ };
3266
+ const filesByEnv = await groupFilesByEnv(specs);
3267
+ const promises = Object.values(filesByEnv).flat();
3268
+ const results = await Promise.allSettled(promises.map(({ file, environment, project }) => runFiles(project, getConfig(project), [file], environment, invalidates)));
3269
+ const errors = results.filter((r) => r.status === "rejected").map((r) => r.reason);
3270
+ if (errors.length > 0) throw new AggregateError(errors, "Errors occurred while running tests. For more information, see serialized error.");
3271
+ };
3272
+ };
3273
+ return {
3274
+ name: "vmThreads",
3275
+ runTests: runWithFiles("run"),
3276
+ collectTests: runWithFiles("collect"),
3277
+ close: () => pool.destroy()
3278
+ };
3279
+ }
3280
+ function getMemoryLimit(config) {
3281
+ const memory = nodeos.totalmem();
3282
+ const limit = getWorkerMemoryLimit(config, "vmThreads");
3283
+ if (typeof memory === "number") return stringToBytes(limit, config.watch ? memory / 2 : memory);
3284
+ // If totalmem is not supported we cannot resolve percentage based values like 0.5, "50%"
3285
+ if (typeof limit === "number" && limit > 1 || typeof limit === "string" && limit.at(-1) !== "%") return stringToBytes(limit);
3286
+ // just ignore "memoryLimit" value because we cannot detect memory limit
3287
+ return null;
3288
+ }
3289
+
3290
+ const builtinPools = [
3291
+ "forks",
3292
+ "threads",
3293
+ "browser",
3294
+ "vmThreads",
3295
+ "vmForks",
3296
+ "typescript"
3297
+ ];
3298
+ function getDefaultPoolName(project) {
3299
+ if (project.config.browser.enabled) return "browser";
3300
+ return project.config.pool;
3301
+ }
3302
+ function getFilePoolName(project, file) {
3303
+ for (const [glob, pool] of project.config.poolMatchGlobs) {
3304
+ if (pool === "browser") throw new Error("Since Vitest 0.31.0 \"browser\" pool is not supported in `poolMatchGlobs`. You can create a project to run some of your tests in browser in parallel. Read more: https://vitest.dev/guide/projects");
3305
+ if (pm.isMatch(file, glob, { cwd: project.config.root })) return pool;
3306
+ }
3307
+ return getDefaultPoolName(project);
3308
+ }
3309
+ function createPool(ctx) {
3310
+ const pools = {
3311
+ forks: null,
3312
+ threads: null,
3313
+ browser: null,
3314
+ vmThreads: null,
3315
+ vmForks: null,
3316
+ typescript: null
3317
+ };
3318
+ // in addition to resolve.conditions Vite also adds production/development,
3319
+ // see: https://github.com/vitejs/vite/blob/af2aa09575229462635b7cbb6d248ca853057ba2/packages/vite/src/node/plugins/resolve.ts#L1056-L1080
3320
+ const viteMajor = Number(version.split(".")[0]);
3321
+ const potentialConditions = new Set(viteMajor >= 6 ? ctx.vite.config.ssr.resolve?.conditions ?? [] : [
3322
+ "production",
3323
+ "development",
3324
+ ...ctx.vite.config.resolve.conditions
3325
+ ]);
3326
+ const conditions = [...potentialConditions].filter((condition) => {
3327
+ if (condition === "production") return ctx.vite.config.isProduction;
3328
+ if (condition === "development") return !ctx.vite.config.isProduction;
3329
+ return true;
3330
+ }).map((condition) => {
3331
+ if (viteMajor >= 6 && condition === "development|production") return ctx.vite.config.isProduction ? "production" : "development";
3332
+ return condition;
3333
+ }).flatMap((c) => ["--conditions", c]);
3334
+ // Instead of passing whole process.execArgv to the workers, pick allowed options.
3335
+ // Some options may crash worker, e.g. --prof, --title. nodejs/node#41103
3336
+ const execArgv = process.execArgv.filter((execArg) => execArg.startsWith("--cpu-prof") || execArg.startsWith("--heap-prof") || execArg.startsWith("--diagnostic-dir"));
3337
+ async function executeTests(method, files, invalidate) {
3338
+ const options = {
3339
+ execArgv: [...execArgv, ...conditions],
3340
+ env: {
3341
+ TEST: "true",
3342
+ VITEST: "true",
3343
+ NODE_ENV: process.env.NODE_ENV || "test",
3344
+ VITEST_MODE: ctx.config.watch ? "WATCH" : "RUN",
3345
+ FORCE_TTY: isatty(1) ? "true" : "",
3346
+ ...process.env,
3347
+ ...ctx.config.env
3348
+ }
3349
+ };
3350
+ // env are case-insensitive on Windows, but spawned processes don't support it
3351
+ if (isWindows) for (const name in options.env) options.env[name.toUpperCase()] = options.env[name];
3352
+ const poolConcurrentPromises = /* @__PURE__ */ new Map();
3353
+ const customPools = /* @__PURE__ */ new Map();
3354
+ async function resolveCustomPool(filepath) {
3355
+ if (customPools.has(filepath)) return customPools.get(filepath);
3356
+ const pool = await ctx.runner.executeId(filepath);
3357
+ if (typeof pool.default !== "function") throw new TypeError(`Custom pool "${filepath}" must export a function as default export`);
3358
+ const poolInstance = await pool.default(ctx, options);
3359
+ if (typeof poolInstance?.name !== "string") throw new TypeError(`Custom pool "${filepath}" should return an object with "name" property`);
3360
+ if (typeof poolInstance?.[method] !== "function") throw new TypeError(`Custom pool "${filepath}" should return an object with "${method}" method`);
3361
+ customPools.set(filepath, poolInstance);
3362
+ return poolInstance;
3363
+ }
3364
+ function getConcurrentPool(pool, fn) {
3365
+ if (poolConcurrentPromises.has(pool)) return poolConcurrentPromises.get(pool);
3366
+ const promise = fn().finally(() => {
3367
+ poolConcurrentPromises.delete(pool);
3368
+ });
3369
+ poolConcurrentPromises.set(pool, promise);
3370
+ return promise;
3371
+ }
3372
+ function getCustomPool(pool) {
3373
+ return getConcurrentPool(pool, () => resolveCustomPool(pool));
3374
+ }
3375
+ function getBrowserPool() {
3376
+ return getConcurrentPool("browser", async () => {
3377
+ const { createBrowserPool } = await import('@vitest/browser');
3378
+ return createBrowserPool(ctx);
3379
+ });
3380
+ }
3381
+ const groupedSpecifications = {};
3382
+ const groups = /* @__PURE__ */ new Set();
3383
+ const factories = {
3384
+ vmThreads: () => createVmThreadsPool(ctx, options),
3385
+ vmForks: () => createVmForksPool(ctx, options),
3386
+ threads: () => createThreadsPool(ctx, options),
3387
+ forks: () => createForksPool(ctx, options),
3388
+ typescript: () => createTypecheckPool(ctx)
3389
+ };
3390
+ for (const spec of files) {
3391
+ const group = spec[0].config.sequence.groupOrder ?? 0;
3392
+ groups.add(group);
3393
+ groupedSpecifications[group] ??= [];
3394
+ groupedSpecifications[group].push(spec);
3395
+ }
3396
+ const Sequencer = ctx.config.sequence.sequencer;
3397
+ const sequencer = new Sequencer(ctx);
3398
+ async function sortSpecs(specs) {
3399
+ if (ctx.config.shard) {
3400
+ if (!ctx.config.passWithNoTests && ctx.config.shard.count > specs.length) throw new Error(`--shard <count> must be a smaller than count of test files. Resolved ${specs.length} test files for --shard=${ctx.config.shard.index}/${ctx.config.shard.count}.`);
3401
+ specs = await sequencer.shard(specs);
3402
+ }
3403
+ return sequencer.sort(specs);
3404
+ }
3405
+ const sortedGroups = Array.from(groups).sort();
3406
+ for (const group of sortedGroups) {
3407
+ const specifications = groupedSpecifications[group];
3408
+ if (!specifications?.length) continue;
3409
+ const filesByPool = {
3410
+ forks: [],
3411
+ threads: [],
3412
+ vmThreads: [],
3413
+ vmForks: [],
3414
+ typescript: []
3415
+ };
3416
+ specifications.forEach((specification) => {
3417
+ const pool = specification[2].pool;
3418
+ filesByPool[pool] ??= [];
3419
+ filesByPool[pool].push(specification);
3420
+ });
3421
+ await Promise.all(Object.entries(filesByPool).map(async (entry) => {
3422
+ const [pool, files] = entry;
3423
+ if (!files.length) return null;
3424
+ const specs = await sortSpecs(files);
3425
+ if (pool in factories) {
3426
+ const factory = factories[pool];
3427
+ pools[pool] ??= factory();
3428
+ return pools[pool][method](specs, invalidate);
3429
+ }
3430
+ if (pool === "browser") {
3431
+ pools.browser ??= await getBrowserPool();
3432
+ return pools.browser[method](specs, invalidate);
3433
+ }
3434
+ const poolHandler = await getCustomPool(pool);
3435
+ pools[poolHandler.name] ??= poolHandler;
3436
+ return poolHandler[method](specs, invalidate);
3437
+ }));
3438
+ }
3439
+ }
3440
+ return {
3441
+ name: "default",
3442
+ runTests: (files, invalidates) => executeTests("runTests", files, invalidates),
3443
+ collectTests: (files, invalidates) => executeTests("collectTests", files, invalidates),
3444
+ async close() {
3445
+ await Promise.all(Object.values(pools).map((p) => p?.close?.()));
3446
+ }
3447
+ };
3448
+ }
3449
+
3450
+ class BaseSequencer {
3451
+ ctx;
3452
+ constructor(ctx) {
3453
+ this.ctx = ctx;
3454
+ }
3455
+ // async so it can be extended by other sequelizers
3456
+ async shard(files) {
3457
+ const { config } = this.ctx;
3458
+ const { index, count } = config.shard;
3459
+ const shardSize = Math.ceil(files.length / count);
3460
+ const shardStart = shardSize * (index - 1);
3461
+ const shardEnd = shardSize * index;
3462
+ return [...files].map((spec) => {
3463
+ const fullPath = resolve$1(slash(config.root), slash(spec.moduleId));
3464
+ const specPath = fullPath?.slice(config.root.length);
3465
+ return {
3466
+ spec,
3467
+ hash: hash("sha1", specPath, "hex")
3468
+ };
3469
+ }).sort((a, b) => a.hash < b.hash ? -1 : a.hash > b.hash ? 1 : 0).slice(shardStart, shardEnd).map(({ spec }) => spec);
3470
+ }
3471
+ // async so it can be extended by other sequelizers
3472
+ async sort(files) {
3473
+ const cache = this.ctx.cache;
3474
+ return [...files].sort((a, b) => {
3475
+ const keyA = `${a.project.name}:${relative(this.ctx.config.root, a.moduleId)}`;
3476
+ const keyB = `${b.project.name}:${relative(this.ctx.config.root, b.moduleId)}`;
3477
+ const aState = cache.getFileTestResults(keyA);
3478
+ const bState = cache.getFileTestResults(keyB);
3479
+ if (!aState || !bState) {
3480
+ const statsA = cache.getFileStats(keyA);
3481
+ const statsB = cache.getFileStats(keyB);
3482
+ // run unknown first
3483
+ if (!statsA || !statsB) return !statsA && statsB ? -1 : !statsB && statsA ? 1 : 0;
3484
+ // run larger files first
3485
+ return statsB.size - statsA.size;
3486
+ }
3487
+ // run failed first
3488
+ if (aState.failed && !bState.failed) return -1;
3489
+ if (!aState.failed && bState.failed) return 1;
3490
+ // run longer first
3491
+ return bState.duration - aState.duration;
3492
+ });
3493
+ }
3494
+ }
3495
+
3496
+ class RandomSequencer extends BaseSequencer {
3497
+ async sort(files) {
3498
+ const { sequence } = this.ctx.config;
3499
+ return shuffle(files, sequence.seed);
3500
+ }
3501
+ }
3502
+
3503
+ function resolvePath(path, root) {
3504
+ return normalize(/* @__PURE__ */ resolveModule(path, { paths: [root] }) ?? resolve$1(root, path));
3505
+ }
3506
+ function parseInspector(inspect) {
3507
+ if (typeof inspect === "boolean" || inspect === void 0) return {};
3508
+ if (typeof inspect === "number") return { port: inspect };
3509
+ if (inspect.match(/https?:\//)) throw new Error(`Inspector host cannot be a URL. Use "host:port" instead of "${inspect}"`);
3510
+ const [host, port] = inspect.split(":");
3511
+ if (!port) return { host };
3512
+ return {
3513
+ host,
3514
+ port: Number(port) || defaultInspectPort
3515
+ };
3516
+ }
3517
+ function resolveApiServerConfig(options, defaultPort, parentApi, logger) {
3518
+ let api;
3519
+ if (options.ui && !options.api) api = { port: defaultPort };
3520
+ else if (options.api === true) api = { port: defaultPort };
3521
+ else if (typeof options.api === "number") api = { port: options.api };
3522
+ if (typeof options.api === "object") if (api) {
3523
+ if (options.api.port) api.port = options.api.port;
3524
+ if (options.api.strictPort) api.strictPort = options.api.strictPort;
3525
+ if (options.api.host) api.host = options.api.host;
3526
+ } else api = { ...options.api };
3527
+ if (api) {
3528
+ if (!api.port && !api.middlewareMode) api.port = defaultPort;
3529
+ } else api = { middlewareMode: true };
3530
+ if (!api.middlewareMode && api.host && api.host !== "localhost" && api.host !== "127.0.0.1") {
3531
+ if (parentApi && api.allowWrite == null && api.allowExec == null) logger?.error(c.yellow(`${c.yellowBright(" WARNING ")} API server is exposed to network, disabling write and exec operations by default for security reasons. This can cause some APIs to not work as expected. Set \`browser.api.allowExec\` manually to hide this warning. See https://vitest.dev/config/browser/api for more details.`));
3532
+ api.allowWrite ??= parentApi?.allowWrite ?? false;
3533
+ api.allowExec ??= parentApi?.allowExec ?? false;
3534
+ } else {
3535
+ api.allowWrite ??= parentApi?.allowWrite ?? true;
3536
+ api.allowExec ??= parentApi?.allowExec ?? true;
3537
+ }
3538
+ return api;
3539
+ }
3540
+ function resolveInlineWorkerOption(value) {
3541
+ if (typeof value === "string" && value.trim().endsWith("%")) return getWorkersCountByPercentage(value);
3542
+ else return Number(value);
3543
+ }
3544
+ function resolveConfig$1(vitest, options, viteConfig) {
3545
+ const mode = vitest.mode;
3546
+ const logger = vitest.logger;
3547
+ if (options.dom) {
3548
+ if (viteConfig.test?.environment != null && viteConfig.test.environment !== "happy-dom") logger.console.warn(c.yellow(`${c.inverse(c.yellow(" Vitest "))} Your config.test.environment ("${viteConfig.test.environment}") conflicts with --dom flag ("happy-dom"), ignoring "${viteConfig.test.environment}"`));
3549
+ options.environment = "happy-dom";
3550
+ }
3551
+ const resolved = {
3552
+ ...configDefaults,
3553
+ ...options,
3554
+ root: viteConfig.root,
3555
+ mode
3556
+ };
3557
+ resolved.project = toArray(resolved.project);
3558
+ resolved.provide ??= {};
3559
+ resolved.name = typeof options.name === "string" ? options.name : options.name?.label || "";
3560
+ resolved.color = typeof options.name !== "string" ? options.name?.color : void 0;
3561
+ const inspector = resolved.inspect || resolved.inspectBrk;
3562
+ resolved.inspector = {
3563
+ ...resolved.inspector,
3564
+ ...parseInspector(inspector),
3565
+ enabled: !!inspector,
3566
+ waitForDebugger: options.inspector?.waitForDebugger ?? !!resolved.inspectBrk
3567
+ };
3568
+ if (viteConfig.base !== "/") resolved.base = viteConfig.base;
3569
+ resolved.clearScreen = resolved.clearScreen ?? viteConfig.clearScreen ?? true;
3570
+ if (options.shard) {
3571
+ if (resolved.watch) throw new Error("You cannot use --shard option with enabled watch");
3572
+ const [indexString, countString] = options.shard.split("/");
3573
+ const index = Math.abs(Number.parseInt(indexString, 10));
3574
+ const count = Math.abs(Number.parseInt(countString, 10));
3575
+ if (Number.isNaN(count) || count <= 0) throw new Error("--shard <count> must be a positive number");
3576
+ if (Number.isNaN(index) || index <= 0 || index > count) throw new Error("--shard <index> must be a positive number less then <count>");
3577
+ resolved.shard = {
3578
+ index,
3579
+ count
3580
+ };
3581
+ }
3582
+ if (resolved.standalone && !resolved.watch) throw new Error(`Vitest standalone mode requires --watch`);
3583
+ if (resolved.mergeReports && resolved.watch) throw new Error(`Cannot merge reports with --watch enabled`);
3584
+ if (resolved.maxWorkers) resolved.maxWorkers = resolveInlineWorkerOption(resolved.maxWorkers);
3585
+ if (resolved.minWorkers) resolved.minWorkers = resolveInlineWorkerOption(resolved.minWorkers);
3586
+ // run benchmark sequentially by default
3587
+ resolved.fileParallelism ??= mode !== "benchmark";
3588
+ if (!resolved.fileParallelism) {
3589
+ // ignore user config, parallelism cannot be implemented without limiting workers
3590
+ resolved.maxWorkers = 1;
3591
+ resolved.minWorkers = 1;
3592
+ }
3593
+ if (resolved.maxConcurrency === 0) {
3594
+ logger.console.warn(c.yellow(`The option "maxConcurrency" cannot be set to 0. Using default value ${configDefaults.maxConcurrency} instead.`));
3595
+ resolved.maxConcurrency = configDefaults.maxConcurrency;
3596
+ }
3597
+ if (resolved.inspect || resolved.inspectBrk) {
3598
+ const isSingleThread = resolved.pool === "threads" && resolved.poolOptions?.threads?.singleThread;
3599
+ const isSingleFork = resolved.pool === "forks" && resolved.poolOptions?.forks?.singleFork;
3600
+ if (resolved.fileParallelism && !isSingleThread && !isSingleFork) {
3601
+ const inspectOption = `--inspect${resolved.inspectBrk ? "-brk" : ""}`;
3602
+ throw new Error(`You cannot use ${inspectOption} without "--no-file-parallelism", "poolOptions.threads.singleThread" or "poolOptions.forks.singleFork"`);
3603
+ }
3604
+ }
3605
+ // apply browser CLI options only if the config already has the browser config and not disabled manually
3606
+ if (vitest._cliOptions.browser && resolved.browser && (resolved.browser.enabled !== false || vitest._cliOptions.browser.enabled)) resolved.browser = mergeConfig(resolved.browser, vitest._cliOptions.browser);
3607
+ resolved.browser ??= {};
3608
+ const browser = resolved.browser;
3609
+ if (browser.enabled) {
3610
+ if (!browser.name && !browser.instances) throw new Error(`Vitest Browser Mode requires "browser.name" (deprecated) or "browser.instances" options, none were set.`);
3611
+ const instances = browser.instances;
3612
+ if (browser.name && browser.instances)
3613
+ // --browser=chromium filters configs to a single one
3614
+ browser.instances = browser.instances.filter((instance) => instance.browser === browser.name);
3615
+ if (browser.instances && !browser.instances.length) throw new Error([`"browser.instances" was set in the config, but the array is empty. Define at least one browser config.`, browser.name && instances?.length ? ` The "browser.name" was set to "${browser.name}" which filtered all configs (${instances.map((c) => c.browser).join(", ")}). Did you mean to use another name?` : ""].join(""));
3616
+ }
3617
+ const playwrightChromiumOnly = isPlaywrightChromiumOnly(vitest, resolved);
3618
+ // Browser-mode "Playwright + Chromium" only features:
3619
+ if (browser.enabled && !playwrightChromiumOnly) {
3620
+ const browserConfig = { browser: {
3621
+ provider: browser.provider,
3622
+ name: browser.name,
3623
+ instances: browser.instances?.map((i) => ({ browser: i.browser }))
3624
+ } };
3625
+ if (resolved.coverage.enabled && resolved.coverage.provider === "v8") throw new Error(`@vitest/coverage-v8 does not work with\n${JSON.stringify(browserConfig, null, 2)}\n\nUse either:\n${JSON.stringify({ browser: {
3626
+ provider: "playwright",
3627
+ instances: [{ browser: "chromium" }]
3628
+ } }, null, 2)}\n\n...or change your coverage provider to:\n${JSON.stringify({ coverage: { provider: "istanbul" } }, null, 2)}\n`);
3629
+ if (resolved.inspect || resolved.inspectBrk) {
3630
+ const inspectOption = `--inspect${resolved.inspectBrk ? "-brk" : ""}`;
3631
+ throw new Error(`${inspectOption} does not work with\n${JSON.stringify(browserConfig, null, 2)}\n\nUse either:\n${JSON.stringify({ browser: {
3632
+ provider: "playwright",
3633
+ instances: [{ browser: "chromium" }]
3634
+ } }, null, 2)}\n\n...or disable ${inspectOption}\n`);
3635
+ }
3636
+ }
3637
+ resolved.coverage.reporter = resolveCoverageReporters(resolved.coverage.reporter);
3638
+ if (resolved.coverage.enabled && resolved.coverage.reportsDirectory) {
3639
+ const reportsDirectory = resolve$1(resolved.root, resolved.coverage.reportsDirectory);
3640
+ if (reportsDirectory === resolved.root || reportsDirectory === process.cwd()) throw new Error(`You cannot set "coverage.reportsDirectory" as ${reportsDirectory}. Vitest needs to be able to remove this directory before test run`);
3641
+ }
3642
+ if (resolved.coverage.enabled && resolved.coverage.provider === "custom" && resolved.coverage.customProviderModule) resolved.coverage.customProviderModule = resolvePath(resolved.coverage.customProviderModule, resolved.root);
3643
+ resolved.expect ??= {};
3644
+ resolved.deps ??= {};
3645
+ resolved.deps.moduleDirectories ??= [];
3646
+ resolved.deps.moduleDirectories = resolved.deps.moduleDirectories.map((dir) => {
3647
+ if (!dir.startsWith("/")) dir = `/${dir}`;
3648
+ if (!dir.endsWith("/")) dir += "/";
3649
+ return normalize(dir);
3650
+ });
3651
+ if (!resolved.deps.moduleDirectories.includes("/node_modules/")) resolved.deps.moduleDirectories.push("/node_modules/");
3652
+ resolved.deps.optimizer ??= {};
3653
+ resolved.deps.optimizer.ssr ??= {};
3654
+ resolved.deps.optimizer.ssr.enabled ??= true;
3655
+ resolved.deps.optimizer.web ??= {};
3656
+ resolved.deps.optimizer.web.enabled ??= true;
3657
+ resolved.deps.web ??= {};
3658
+ resolved.deps.web.transformAssets ??= true;
3659
+ resolved.deps.web.transformCss ??= true;
3660
+ resolved.deps.web.transformGlobPattern ??= [];
3661
+ resolved.setupFiles = toArray(resolved.setupFiles || []).map((file) => resolvePath(file, resolved.root));
3662
+ resolved.globalSetup = toArray(resolved.globalSetup || []).map((file) => resolvePath(file, resolved.root));
3663
+ // override original exclude array for cases where user re-uses same object in test.exclude
3664
+ resolved.coverage.exclude = [
3665
+ ...resolved.coverage.exclude,
3666
+ ...resolved.setupFiles.map((file) => `${resolved.coverage.allowExternal ? "**/" : ""}${relative(resolved.root, file)}`),
3667
+ ...resolved.include
3668
+ ];
3669
+ resolved.forceRerunTriggers = [...resolved.forceRerunTriggers, ...resolved.setupFiles];
3670
+ resolved.server ??= {};
3671
+ resolved.server.deps ??= {};
3672
+ const deprecatedDepsOptions = [
3673
+ "inline",
3674
+ "external",
3675
+ "fallbackCJS"
3676
+ ];
3677
+ deprecatedDepsOptions.forEach((option) => {
3678
+ if (resolved.deps[option] === void 0) return;
3679
+ if (option === "fallbackCJS") logger.console.warn(c.yellow(`${c.inverse(c.yellow(" Vitest "))} "deps.${option}" is deprecated. Use "server.deps.${option}" instead`));
3680
+ else {
3681
+ const transformMode = resolved.environment === "happy-dom" || resolved.environment === "jsdom" ? "web" : "ssr";
3682
+ logger.console.warn(c.yellow(`${c.inverse(c.yellow(" Vitest "))} "deps.${option}" is deprecated. If you rely on vite-node directly, use "server.deps.${option}" instead. Otherwise, consider using "deps.optimizer.${transformMode}.${option === "external" ? "exclude" : "include"}"`));
3683
+ }
3684
+ if (resolved.server.deps[option] === void 0) resolved.server.deps[option] = resolved.deps[option];
3685
+ });
3686
+ if (resolved.cliExclude) resolved.exclude.push(...resolved.cliExclude);
3687
+ // vitenode will try to import such file with native node,
3688
+ // but then our mocker will not work properly
3689
+ if (resolved.server.deps.inline !== true) {
3690
+ const ssrOptions = viteConfig.ssr;
3691
+ if (ssrOptions?.noExternal === true && resolved.server.deps.inline == null) resolved.server.deps.inline = true;
3692
+ else {
3693
+ resolved.server.deps.inline ??= [];
3694
+ resolved.server.deps.inline.push(...extraInlineDeps);
3695
+ }
3696
+ }
3697
+ resolved.server.deps.inlineFiles ??= [];
3698
+ resolved.server.deps.inlineFiles.push(...resolved.setupFiles);
3699
+ resolved.server.deps.moduleDirectories ??= [];
3700
+ resolved.server.deps.moduleDirectories.push(...resolved.deps.moduleDirectories);
3701
+ if (resolved.runner) resolved.runner = resolvePath(resolved.runner, resolved.root);
3702
+ resolved.attachmentsDir = resolve$1(resolved.root, resolved.attachmentsDir ?? ".vitest-attachments");
3703
+ if (resolved.snapshotEnvironment) resolved.snapshotEnvironment = resolvePath(resolved.snapshotEnvironment, resolved.root);
3704
+ resolved.testNamePattern = resolved.testNamePattern ? resolved.testNamePattern instanceof RegExp ? resolved.testNamePattern : new RegExp(resolved.testNamePattern) : void 0;
3705
+ if (resolved.snapshotFormat && "plugins" in resolved.snapshotFormat) resolved.snapshotFormat.plugins = [];
3706
+ const UPDATE_SNAPSHOT = resolved.update || process.env.UPDATE_SNAPSHOT;
3707
+ resolved.snapshotOptions = {
3708
+ expand: resolved.expandSnapshotDiff ?? false,
3709
+ snapshotFormat: resolved.snapshotFormat || {},
3710
+ updateSnapshot: isCI && !UPDATE_SNAPSHOT ? "none" : UPDATE_SNAPSHOT ? "all" : "new",
3711
+ resolveSnapshotPath: options.resolveSnapshotPath,
3712
+ snapshotEnvironment: null
3713
+ };
3714
+ resolved.snapshotSerializers ??= [];
3715
+ resolved.snapshotSerializers = resolved.snapshotSerializers.map((file) => resolvePath(file, resolved.root));
3716
+ resolved.forceRerunTriggers.push(...resolved.snapshotSerializers);
3717
+ if (options.resolveSnapshotPath) delete resolved.resolveSnapshotPath;
3718
+ resolved.pool ??= "threads";
3719
+ if (process.env.VITEST_MAX_THREADS) resolved.poolOptions = {
3720
+ ...resolved.poolOptions,
3721
+ threads: {
3722
+ ...resolved.poolOptions?.threads,
3723
+ maxThreads: Number.parseInt(process.env.VITEST_MAX_THREADS)
3724
+ },
3725
+ vmThreads: {
3726
+ ...resolved.poolOptions?.vmThreads,
3727
+ maxThreads: Number.parseInt(process.env.VITEST_MAX_THREADS)
3728
+ }
3729
+ };
3730
+ if (process.env.VITEST_MIN_THREADS) resolved.poolOptions = {
3731
+ ...resolved.poolOptions,
3732
+ threads: {
3733
+ ...resolved.poolOptions?.threads,
3734
+ minThreads: Number.parseInt(process.env.VITEST_MIN_THREADS)
3735
+ },
3736
+ vmThreads: {
3737
+ ...resolved.poolOptions?.vmThreads,
3738
+ minThreads: Number.parseInt(process.env.VITEST_MIN_THREADS)
3739
+ }
3740
+ };
3741
+ if (process.env.VITEST_MAX_FORKS) resolved.poolOptions = {
3742
+ ...resolved.poolOptions,
3743
+ forks: {
3744
+ ...resolved.poolOptions?.forks,
3745
+ maxForks: Number.parseInt(process.env.VITEST_MAX_FORKS)
3746
+ },
3747
+ vmForks: {
3748
+ ...resolved.poolOptions?.vmForks,
3749
+ maxForks: Number.parseInt(process.env.VITEST_MAX_FORKS)
3750
+ }
3751
+ };
3752
+ if (process.env.VITEST_MIN_FORKS) resolved.poolOptions = {
3753
+ ...resolved.poolOptions,
3754
+ forks: {
3755
+ ...resolved.poolOptions?.forks,
3756
+ minForks: Number.parseInt(process.env.VITEST_MIN_FORKS)
3757
+ },
3758
+ vmForks: {
3759
+ ...resolved.poolOptions?.vmForks,
3760
+ minForks: Number.parseInt(process.env.VITEST_MIN_FORKS)
3761
+ }
3762
+ };
3763
+ const poolThreadsOptions = [
3764
+ ["threads", "minThreads"],
3765
+ ["threads", "maxThreads"],
3766
+ ["vmThreads", "minThreads"],
3767
+ ["vmThreads", "maxThreads"]
3768
+ ];
3769
+ for (const [poolOptionKey, workerOptionKey] of poolThreadsOptions) if (resolved.poolOptions?.[poolOptionKey]?.[workerOptionKey]) resolved.poolOptions[poolOptionKey][workerOptionKey] = resolveInlineWorkerOption(resolved.poolOptions[poolOptionKey][workerOptionKey]);
3770
+ const poolForksOptions = [
3771
+ ["forks", "minForks"],
3772
+ ["forks", "maxForks"],
3773
+ ["vmForks", "minForks"],
3774
+ ["vmForks", "maxForks"]
3775
+ ];
3776
+ for (const [poolOptionKey, workerOptionKey] of poolForksOptions) if (resolved.poolOptions?.[poolOptionKey]?.[workerOptionKey]) resolved.poolOptions[poolOptionKey][workerOptionKey] = resolveInlineWorkerOption(resolved.poolOptions[poolOptionKey][workerOptionKey]);
3777
+ if (typeof resolved.workspace === "string")
3778
+ // if passed down from the CLI and it's relative, resolve relative to CWD
3779
+ resolved.workspace = typeof options.workspace === "string" && options.workspace[0] === "." ? resolve$1(process.cwd(), options.workspace) : resolvePath(resolved.workspace, resolved.root);
3780
+ if (!builtinPools.includes(resolved.pool)) resolved.pool = resolvePath(resolved.pool, resolved.root);
3781
+ if (resolved.poolMatchGlobs) logger.deprecate("`poolMatchGlobs` is deprecated. Use `test.projects` to define different configurations instead.");
3782
+ resolved.poolMatchGlobs = (resolved.poolMatchGlobs || []).map(([glob, pool]) => {
3783
+ if (!builtinPools.includes(pool)) pool = resolvePath(pool, resolved.root);
3784
+ return [glob, pool];
3785
+ });
3786
+ if (mode === "benchmark") {
3787
+ resolved.benchmark = {
3788
+ ...benchmarkConfigDefaults,
3789
+ ...resolved.benchmark
3790
+ };
3791
+ // override test config
3792
+ resolved.coverage.enabled = false;
3793
+ resolved.typecheck.enabled = false;
3794
+ resolved.include = resolved.benchmark.include;
3795
+ resolved.exclude = resolved.benchmark.exclude;
3796
+ resolved.includeSource = resolved.benchmark.includeSource;
3797
+ const reporters = Array.from(new Set([...toArray(resolved.benchmark.reporters), ...toArray(options.reporter)])).filter(Boolean);
3798
+ if (reporters.length) resolved.benchmark.reporters = reporters;
3799
+ else resolved.benchmark.reporters = ["default"];
3800
+ if (options.outputFile) resolved.benchmark.outputFile = options.outputFile;
3801
+ // --compare from cli
3802
+ if (options.compare) resolved.benchmark.compare = options.compare;
3803
+ if (options.outputJson) resolved.benchmark.outputJson = options.outputJson;
3804
+ }
3805
+ if (typeof resolved.diff === "string") {
3806
+ resolved.diff = resolvePath(resolved.diff, resolved.root);
3807
+ resolved.forceRerunTriggers.push(resolved.diff);
3808
+ }
3809
+ // the server has been created, we don't need to override vite.server options
3810
+ const api = resolveApiServerConfig(options, defaultPort);
3811
+ resolved.api = {
3812
+ ...api,
3813
+ token: crypto.randomUUID()
3814
+ };
3815
+ if (options.related) resolved.related = toArray(options.related).map((file) => resolve$1(resolved.root, file));
3816
+ /*
3817
+ * Reporters can be defined in many different ways:
3818
+ * { reporter: 'json' }
3819
+ * { reporter: { onFinish() { method() } } }
3820
+ * { reporter: ['json', { onFinish() { method() } }] }
3821
+ * { reporter: [[ 'json' ]] }
3822
+ * { reporter: [[ 'json' ], 'html'] }
3823
+ * { reporter: [[ 'json', { outputFile: 'test.json' } ], 'html'] }
3824
+ */
3825
+ if (options.reporters) if (!Array.isArray(options.reporters))
3826
+ // Reporter name, e.g. { reporters: 'json' }
3827
+ if (typeof options.reporters === "string") resolved.reporters = [[options.reporters, {}]];
3828
+ else resolved.reporters = [options.reporters];
3829
+ else {
3830
+ resolved.reporters = [];
3831
+ for (const reporter of options.reporters) if (Array.isArray(reporter))
3832
+ // Reporter with options, e.g. { reporters: [ [ 'json', { outputFile: 'test.json' } ] ] }
3833
+ resolved.reporters.push([reporter[0], reporter[1] || {}]);
3834
+ else if (typeof reporter === "string")
3835
+ // Reporter name in array, e.g. { reporters: ["html", "json"]}
3836
+ resolved.reporters.push([reporter, {}]);
3837
+ else
3838
+ // Inline reporter, e.g. { reporter: [{ onFinish() { method() } }] }
3839
+ resolved.reporters.push(reporter);
3840
+ }
3841
+ if (mode !== "benchmark") {
3842
+ // @ts-expect-error "reporter" is from CLI, should be absolute to the running directory
3843
+ // it is passed down as "vitest --reporter ../reporter.js"
3844
+ const reportersFromCLI = resolved.reporter;
3845
+ const cliReporters = toArray(reportersFromCLI || []).map((reporter) => {
3846
+ // ./reporter.js || ../reporter.js, but not .reporters/reporter.js
3847
+ if (/^\.\.?\//.test(reporter)) return resolve$1(process.cwd(), reporter);
3848
+ return reporter;
3849
+ });
3850
+ if (cliReporters.length) resolved.reporters = Array.from(new Set(toArray(cliReporters))).filter(Boolean).map((reporter) => [reporter, {}]);
3851
+ }
3852
+ if (!resolved.reporters.length) {
3853
+ resolved.reporters.push(["default", {}]);
3854
+ // also enable github-actions reporter as a default
3855
+ if (process.env.GITHUB_ACTIONS === "true") resolved.reporters.push(["github-actions", {}]);
3856
+ }
3857
+ if (resolved.changed) resolved.passWithNoTests ??= true;
3858
+ resolved.css ??= {};
3859
+ if (typeof resolved.css === "object") {
3860
+ resolved.css.modules ??= {};
3861
+ resolved.css.modules.classNameStrategy ??= "stable";
3862
+ }
3863
+ if (resolved.cache !== false) {
3864
+ if (resolved.cache && typeof resolved.cache.dir === "string") vitest.logger.deprecate(`"cache.dir" is deprecated, use Vite's "cacheDir" instead if you want to change the cache director. Note caches will be written to "cacheDir\/vitest"`);
3865
+ resolved.cache = { dir: viteConfig.cacheDir };
3866
+ }
3867
+ resolved.sequence ??= {};
3868
+ if (resolved.sequence.shuffle && typeof resolved.sequence.shuffle === "object") {
3869
+ const { files, tests } = resolved.sequence.shuffle;
3870
+ resolved.sequence.sequencer ??= files ? RandomSequencer : BaseSequencer;
3871
+ resolved.sequence.shuffle = tests;
3872
+ }
3873
+ if (!resolved.sequence?.sequencer)
3874
+ // CLI flag has higher priority
3875
+ resolved.sequence.sequencer = resolved.sequence.shuffle ? RandomSequencer : BaseSequencer;
3876
+ resolved.sequence.groupOrder ??= 0;
3877
+ resolved.sequence.hooks ??= "stack";
3878
+ if (resolved.sequence.sequencer === RandomSequencer) resolved.sequence.seed ??= Date.now();
3879
+ resolved.typecheck = {
3880
+ ...configDefaults.typecheck,
3881
+ ...resolved.typecheck
3882
+ };
3883
+ if (resolved.environmentMatchGlobs) logger.deprecate("\"environmentMatchGlobs\" is deprecated. Use `test.projects` to define different configurations instead.");
3884
+ resolved.environmentMatchGlobs = (resolved.environmentMatchGlobs || []).map((i) => [resolve$1(resolved.root, i[0]), i[1]]);
3885
+ resolved.typecheck ??= {};
3886
+ resolved.typecheck.enabled ??= false;
3887
+ if (resolved.typecheck.enabled) logger.console.warn(c.yellow("Testing types with tsc and vue-tsc is an experimental feature.\nBreaking changes might not follow SemVer, please pin Vitest's version when using it."));
3888
+ resolved.browser.enabled ??= false;
3889
+ resolved.browser.headless ??= isCI;
3890
+ resolved.browser.isolate ??= true;
3891
+ resolved.browser.fileParallelism ??= options.fileParallelism ?? mode !== "benchmark";
3892
+ // disable in headless mode by default, and if CI is detected
3893
+ resolved.browser.ui ??= resolved.browser.headless === true ? false : !isCI;
3894
+ if (resolved.browser.screenshotDirectory) resolved.browser.screenshotDirectory = resolve$1(resolved.root, resolved.browser.screenshotDirectory);
3895
+ const isPreview = resolved.browser.provider === "preview";
3896
+ if (isPreview && resolved.browser.screenshotFailures === true) {
3897
+ console.warn(c.yellow([
3898
+ `Browser provider "preview" doesn't support screenshots, `,
3899
+ `so "browser.screenshotFailures" option is forcefully disabled. `,
3900
+ `Set "browser.screenshotFailures" to false or remove it from the config to suppress this warning.`
3901
+ ].join("")));
3902
+ resolved.browser.screenshotFailures = false;
3903
+ } else resolved.browser.screenshotFailures ??= !isPreview && !resolved.browser.ui;
3904
+ resolved.browser.viewport ??= {};
3905
+ resolved.browser.viewport.width ??= 414;
3906
+ resolved.browser.viewport.height ??= 896;
3907
+ resolved.browser.locators ??= {};
3908
+ resolved.browser.locators.testIdAttribute ??= "data-testid";
3909
+ if (resolved.browser.enabled && provider === "stackblitz") resolved.browser.provider = "preview";
3910
+ resolved.browser.api = resolveApiServerConfig(resolved.browser, defaultBrowserPort, resolved.api, logger) || { port: defaultBrowserPort };
3911
+ // enable includeTaskLocation by default in UI mode
3912
+ if (resolved.browser.enabled) {
3913
+ if (resolved.browser.ui) resolved.includeTaskLocation ??= true;
3914
+ } else if (resolved.ui) resolved.includeTaskLocation ??= true;
3915
+ const htmlReporter = toArray(resolved.reporters).some((reporter) => {
3916
+ if (Array.isArray(reporter)) return reporter[0] === "html";
3917
+ return false;
3918
+ });
3919
+ if (htmlReporter) resolved.includeTaskLocation ??= true;
3920
+ resolved.testTransformMode ??= {};
3921
+ resolved.testTimeout ??= resolved.browser.enabled ? 15e3 : 5e3;
3922
+ resolved.hookTimeout ??= resolved.browser.enabled ? 3e4 : 1e4;
3923
+ return resolved;
3924
+ }
3925
+ function isBrowserEnabled(config) {
3926
+ return Boolean(config.browser?.enabled);
3927
+ }
3928
+ function resolveCoverageReporters(configReporters) {
3929
+ // E.g. { reporter: "html" }
3930
+ if (!Array.isArray(configReporters)) return [[configReporters, {}]];
3931
+ const resolvedReporters = [];
3932
+ for (const reporter of configReporters) if (Array.isArray(reporter))
3933
+ // E.g. { reporter: [ ["html", { skipEmpty: true }], ["lcov"], ["json", { file: "map.json" }] ]}
3934
+ resolvedReporters.push([reporter[0], reporter[1] || {}]);
3935
+ else
3936
+ // E.g. { reporter: ["html", "json"]}
3937
+ resolvedReporters.push([reporter, {}]);
3938
+ return resolvedReporters;
3939
+ }
3940
+ function isPlaywrightChromiumOnly(vitest, config) {
3941
+ const browser = config.browser;
3942
+ if (!browser || browser.provider !== "playwright" || !browser.enabled) return false;
3943
+ if (browser.name) return browser.name === "chromium";
3944
+ if (!browser.instances) return false;
3945
+ for (const instance of browser.instances) {
3946
+ const name = instance.name || (config.name ? `${config.name} (${instance.browser})` : instance.browser);
3947
+ // browser config is filtered out
3948
+ if (!vitest.matchesProjectFilter(name)) continue;
3949
+ if (instance.browser !== "chromium") return false;
3950
+ }
3951
+ return true;
3952
+ }
3953
+
3954
+ const THRESHOLD_KEYS = [
3955
+ "lines",
3956
+ "functions",
3957
+ "statements",
3958
+ "branches"
3959
+ ];
3960
+ const GLOBAL_THRESHOLDS_KEY = "global";
3961
+ const DEFAULT_PROJECT = Symbol.for("default-project");
3962
+ let uniqueId = 0;
3963
+ async function getCoverageProvider(options, loader) {
3964
+ const coverageModule = await resolveCoverageProviderModule(options, loader);
3965
+ if (coverageModule) return coverageModule.getProvider();
3966
+ return null;
3967
+ }
3968
+ class BaseCoverageProvider {
3969
+ ctx;
3970
+ name;
3971
+ version;
3972
+ options;
3973
+ coverageFiles = /* @__PURE__ */ new Map();
3974
+ pendingPromises = [];
3975
+ coverageFilesDirectory;
3976
+ _initialize(ctx) {
3977
+ this.ctx = ctx;
3978
+ if (ctx.version !== this.version) ctx.logger.warn(c.yellow(`Loaded ${c.inverse(c.yellow(` vitest@${ctx.version} `))} and ${c.inverse(c.yellow(` @vitest/coverage-${this.name}@${this.version} `))}.
3979
+ Running mixed versions is not supported and may lead into bugs
3980
+ Update your dependencies and make sure the versions match.`));
3981
+ const config = ctx.config.coverage;
3982
+ this.options = {
3983
+ ...coverageConfigDefaults,
3984
+ ...config,
3985
+ provider: this.name,
3986
+ reportsDirectory: resolve$1(ctx.config.root, config.reportsDirectory || coverageConfigDefaults.reportsDirectory),
3987
+ reporter: resolveCoverageReporters(config.reporter || coverageConfigDefaults.reporter),
3988
+ thresholds: config.thresholds && {
3989
+ ...config.thresholds,
3990
+ lines: config.thresholds["100"] ? 100 : config.thresholds.lines,
3991
+ branches: config.thresholds["100"] ? 100 : config.thresholds.branches,
3992
+ functions: config.thresholds["100"] ? 100 : config.thresholds.functions,
3993
+ statements: config.thresholds["100"] ? 100 : config.thresholds.statements
3994
+ }
3995
+ };
3996
+ const shard = this.ctx.config.shard;
3997
+ const tempDirectory = `.tmp${shard ? `-${shard.index}-${shard.count}` : ""}`;
3998
+ this.coverageFilesDirectory = resolve$1(this.options.reportsDirectory, tempDirectory);
3999
+ }
4000
+ createCoverageMap() {
4001
+ throw new Error("BaseReporter's createCoverageMap was not overwritten");
4002
+ }
4003
+ async generateReports(_, __) {
4004
+ throw new Error("BaseReporter's generateReports was not overwritten");
4005
+ }
4006
+ async parseConfigModule(_) {
4007
+ throw new Error("BaseReporter's parseConfigModule was not overwritten");
4008
+ }
4009
+ resolveOptions() {
4010
+ return this.options;
4011
+ }
4012
+ async clean(clean = true) {
4013
+ if (clean && existsSync(this.options.reportsDirectory)) await promises$1.rm(this.options.reportsDirectory, {
4014
+ recursive: true,
4015
+ force: true,
4016
+ maxRetries: 10
4017
+ });
4018
+ if (existsSync(this.coverageFilesDirectory)) await promises$1.rm(this.coverageFilesDirectory, {
4019
+ recursive: true,
4020
+ force: true,
4021
+ maxRetries: 10
4022
+ });
4023
+ await promises$1.mkdir(this.coverageFilesDirectory, { recursive: true });
4024
+ this.coverageFiles = /* @__PURE__ */ new Map();
4025
+ this.pendingPromises = [];
4026
+ }
4027
+ onAfterSuiteRun({ coverage, transformMode, projectName, testFiles }) {
4028
+ if (!coverage) return;
4029
+ if (transformMode !== "web" && transformMode !== "ssr" && transformMode !== "browser") throw new Error(`Invalid transform mode: ${transformMode}`);
4030
+ let entry = this.coverageFiles.get(projectName || DEFAULT_PROJECT);
4031
+ if (!entry) {
4032
+ entry = {
4033
+ web: {},
4034
+ ssr: {},
4035
+ browser: {}
4036
+ };
4037
+ this.coverageFiles.set(projectName || DEFAULT_PROJECT, entry);
4038
+ }
4039
+ const testFilenames = testFiles.join();
4040
+ const filename = resolve$1(this.coverageFilesDirectory, `coverage-${uniqueId++}.json`);
4041
+ // If there's a result from previous run, overwrite it
4042
+ entry[transformMode][testFilenames] = filename;
4043
+ const promise = promises$1.writeFile(filename, JSON.stringify(coverage), "utf-8");
4044
+ this.pendingPromises.push(promise);
4045
+ }
4046
+ async readCoverageFiles({ onFileRead, onFinished, onDebug }) {
4047
+ let index = 0;
4048
+ const total = this.pendingPromises.length;
4049
+ await Promise.all(this.pendingPromises);
4050
+ this.pendingPromises = [];
4051
+ for (const [projectName, coveragePerProject] of this.coverageFiles.entries()) for (const [transformMode, coverageByTestfiles] of Object.entries(coveragePerProject)) {
4052
+ const filenames = Object.values(coverageByTestfiles);
4053
+ const project = this.ctx.getProjectByName(projectName);
4054
+ for (const chunk of this.toSlices(filenames, this.options.processingConcurrency)) {
4055
+ if (onDebug.enabled) {
4056
+ index += chunk.length;
4057
+ onDebug(`Reading coverage results ${index}/${total}`);
4058
+ }
4059
+ await Promise.all(chunk.map(async (filename) => {
4060
+ const contents = await promises$1.readFile(filename, "utf-8");
4061
+ const coverage = JSON.parse(contents);
4062
+ onFileRead(coverage);
4063
+ }));
4064
+ }
4065
+ await onFinished(project, transformMode);
4066
+ }
4067
+ }
4068
+ async cleanAfterRun() {
4069
+ this.coverageFiles = /* @__PURE__ */ new Map();
4070
+ await promises$1.rm(this.coverageFilesDirectory, { recursive: true });
4071
+ // Remove empty reports directory, e.g. when only text-reporter is used
4072
+ if (readdirSync(this.options.reportsDirectory).length === 0) await promises$1.rm(this.options.reportsDirectory, { recursive: true });
4073
+ }
4074
+ async onTestFailure() {
4075
+ if (!this.options.reportOnFailure) await this.cleanAfterRun();
4076
+ }
4077
+ async reportCoverage(coverageMap, { allTestsRun }) {
4078
+ await this.generateReports(coverageMap || this.createCoverageMap(), allTestsRun);
4079
+ // In watch mode we need to preserve the previous results if cleanOnRerun is disabled
4080
+ const keepResults = !this.options.cleanOnRerun && this.ctx.config.watch;
4081
+ if (!keepResults) await this.cleanAfterRun();
4082
+ }
4083
+ async reportThresholds(coverageMap, allTestsRun) {
4084
+ const resolvedThresholds = this.resolveThresholds(coverageMap);
4085
+ this.checkThresholds(resolvedThresholds);
4086
+ if (this.options.thresholds?.autoUpdate && allTestsRun) {
4087
+ if (!this.ctx.server.config.configFile) throw new Error("Missing configurationFile. The \"coverage.thresholds.autoUpdate\" can only be enabled when configuration file is used.");
4088
+ const configFilePath = this.ctx.server.config.configFile;
4089
+ const configModule = await this.parseConfigModule(configFilePath);
4090
+ await this.updateThresholds({
4091
+ thresholds: resolvedThresholds,
4092
+ configurationFile: configModule,
4093
+ onUpdate: () => writeFileSync(configFilePath, configModule.generate().code, "utf-8")
4094
+ });
4095
+ }
4096
+ }
4097
+ /**
4098
+ * Constructs collected coverage and users' threshold options into separate sets
4099
+ * where each threshold set holds their own coverage maps. Threshold set is either
4100
+ * for specific files defined by glob pattern or global for all other files.
4101
+ */
4102
+ resolveThresholds(coverageMap) {
4103
+ const resolvedThresholds = [];
4104
+ const files = coverageMap.files();
4105
+ const globalCoverageMap = this.createCoverageMap();
4106
+ for (const key of Object.keys(this.options.thresholds)) {
4107
+ if (key === "perFile" || key === "autoUpdate" || key === "100" || THRESHOLD_KEYS.includes(key)) continue;
4108
+ const glob = key;
4109
+ const globThresholds = resolveGlobThresholds(this.options.thresholds[glob]);
4110
+ const globCoverageMap = this.createCoverageMap();
4111
+ const matcher = pm(glob);
4112
+ const matchingFiles = files.filter((file) => matcher(relative(this.ctx.config.root, file)));
4113
+ for (const file of matchingFiles) {
4114
+ const fileCoverage = coverageMap.fileCoverageFor(file);
4115
+ globCoverageMap.addFileCoverage(fileCoverage);
4116
+ }
4117
+ resolvedThresholds.push({
4118
+ name: glob,
4119
+ coverageMap: globCoverageMap,
4120
+ thresholds: globThresholds
4121
+ });
4122
+ }
4123
+ // Global threshold is for all files, even if they are included by glob patterns
4124
+ for (const file of files) {
4125
+ const fileCoverage = coverageMap.fileCoverageFor(file);
4126
+ globalCoverageMap.addFileCoverage(fileCoverage);
4127
+ }
4128
+ resolvedThresholds.unshift({
4129
+ name: GLOBAL_THRESHOLDS_KEY,
4130
+ coverageMap: globalCoverageMap,
4131
+ thresholds: {
4132
+ branches: this.options.thresholds?.branches,
4133
+ functions: this.options.thresholds?.functions,
4134
+ lines: this.options.thresholds?.lines,
4135
+ statements: this.options.thresholds?.statements
4136
+ }
4137
+ });
4138
+ return resolvedThresholds;
4139
+ }
4140
+ /**
4141
+ * Check collected coverage against configured thresholds. Sets exit code to 1 when thresholds not reached.
4142
+ */
4143
+ checkThresholds(allThresholds) {
4144
+ for (const { coverageMap, thresholds, name } of allThresholds) {
4145
+ if (thresholds.branches === void 0 && thresholds.functions === void 0 && thresholds.lines === void 0 && thresholds.statements === void 0) continue;
4146
+ // Construct list of coverage summaries where thresholds are compared against
4147
+ const summaries = this.options.thresholds?.perFile ? coverageMap.files().map((file) => ({
4148
+ file,
4149
+ summary: coverageMap.fileCoverageFor(file).toSummary()
4150
+ })) : [{
4151
+ file: null,
4152
+ summary: coverageMap.getCoverageSummary()
4153
+ }];
4154
+ // Check thresholds of each summary
4155
+ for (const { summary, file } of summaries) for (const thresholdKey of THRESHOLD_KEYS) {
4156
+ const threshold = thresholds[thresholdKey];
4157
+ if (threshold === void 0) continue;
4158
+ /**
4159
+ * Positive thresholds are treated as minimum coverage percentages (X means: X% of lines must be covered),
4160
+ * while negative thresholds are treated as maximum uncovered counts (-X means: X lines may be uncovered).
4161
+ */
4162
+ if (threshold >= 0) {
4163
+ const coverage = summary.data[thresholdKey].pct;
4164
+ if (coverage < threshold) {
4165
+ process.exitCode = 1;
4166
+ /**
4167
+ * Generate error message based on perFile flag:
4168
+ * - ERROR: Coverage for statements (33.33%) does not meet threshold (85%) for src/math.ts
4169
+ * - ERROR: Coverage for statements (50%) does not meet global threshold (85%)
4170
+ */
4171
+ let errorMessage = `ERROR: Coverage for ${thresholdKey} (${coverage}%) does not meet ${name === GLOBAL_THRESHOLDS_KEY ? name : `"${name}"`} threshold (${threshold}%)`;
4172
+ if (this.options.thresholds?.perFile && file) errorMessage += ` for ${relative("./", file).replace(/\\/g, "/")}`;
4173
+ this.ctx.logger.error(errorMessage);
4174
+ }
4175
+ } else {
4176
+ const uncovered = summary.data[thresholdKey].total - summary.data[thresholdKey].covered;
4177
+ const absoluteThreshold = threshold * -1;
4178
+ if (uncovered > absoluteThreshold) {
4179
+ process.exitCode = 1;
4180
+ /**
4181
+ * Generate error message based on perFile flag:
4182
+ * - ERROR: Uncovered statements (33) exceed threshold (30) for src/math.ts
4183
+ * - ERROR: Uncovered statements (33) exceed global threshold (30)
4184
+ */
4185
+ let errorMessage = `ERROR: Uncovered ${thresholdKey} (${uncovered}) exceed ${name === GLOBAL_THRESHOLDS_KEY ? name : `"${name}"`} threshold (${absoluteThreshold})`;
4186
+ if (this.options.thresholds?.perFile && file) errorMessage += ` for ${relative("./", file).replace(/\\/g, "/")}`;
4187
+ this.ctx.logger.error(errorMessage);
4188
+ }
4189
+ }
4190
+ }
4191
+ }
4192
+ }
4193
+ /**
4194
+ * Check if current coverage is above configured thresholds and bump the thresholds if needed
4195
+ */
4196
+ async updateThresholds({ thresholds: allThresholds, onUpdate, configurationFile }) {
4197
+ let updatedThresholds = false;
4198
+ const config = resolveConfig(configurationFile);
4199
+ assertConfigurationModule(config);
4200
+ for (const { coverageMap, thresholds, name } of allThresholds) {
4201
+ const summaries = this.options.thresholds?.perFile ? coverageMap.files().map((file) => coverageMap.fileCoverageFor(file).toSummary()) : [coverageMap.getCoverageSummary()];
4202
+ const thresholdsToUpdate = [];
4203
+ for (const key of THRESHOLD_KEYS) {
4204
+ const threshold = thresholds[key] ?? 100;
4205
+ /**
4206
+ * Positive thresholds are treated as minimum coverage percentages (X means: X% of lines must be covered),
4207
+ * while negative thresholds are treated as maximum uncovered counts (-X means: X lines may be uncovered).
4208
+ */
4209
+ if (threshold >= 0) {
4210
+ const actual = Math.min(...summaries.map((summary) => summary[key].pct));
4211
+ if (actual > threshold) thresholdsToUpdate.push([key, actual]);
4212
+ } else {
4213
+ const absoluteThreshold = threshold * -1;
4214
+ const actual = Math.max(...summaries.map((summary) => summary[key].total - summary[key].covered));
4215
+ if (actual < absoluteThreshold) {
4216
+ // If everything was covered, set new threshold to 100% (since a threshold of 0 would be considered as 0%)
4217
+ const updatedThreshold = actual === 0 ? 100 : actual * -1;
4218
+ thresholdsToUpdate.push([key, updatedThreshold]);
4219
+ }
4220
+ }
4221
+ }
4222
+ if (thresholdsToUpdate.length === 0) continue;
4223
+ updatedThresholds = true;
4224
+ for (const [threshold, newValue] of thresholdsToUpdate) if (name === GLOBAL_THRESHOLDS_KEY) config.test.coverage.thresholds[threshold] = newValue;
4225
+ else {
4226
+ const glob = config.test.coverage.thresholds[name];
4227
+ glob[threshold] = newValue;
4228
+ }
4229
+ }
4230
+ if (updatedThresholds) {
4231
+ this.ctx.logger.log("Updating thresholds to configuration file. You may want to push with updated coverage thresholds.");
4232
+ onUpdate();
4233
+ }
4234
+ }
4235
+ async mergeReports(coverageMaps) {
4236
+ const coverageMap = this.createCoverageMap();
4237
+ for (const coverage of coverageMaps) coverageMap.merge(coverage);
4238
+ await this.generateReports(coverageMap, true);
4239
+ }
4240
+ hasTerminalReporter(reporters) {
4241
+ return reporters.some(([reporter]) => reporter === "text" || reporter === "text-summary" || reporter === "text-lcov" || reporter === "teamcity");
4242
+ }
4243
+ toSlices(array, size) {
4244
+ return array.reduce((chunks, item) => {
4245
+ const index = Math.max(0, chunks.length - 1);
4246
+ const lastChunk = chunks[index] || [];
4247
+ chunks[index] = lastChunk;
4248
+ if (lastChunk.length >= size) chunks.push([item]);
4249
+ else lastChunk.push(item);
4250
+ return chunks;
4251
+ }, []);
4252
+ }
4253
+ createUncoveredFileTransformer(ctx) {
4254
+ const servers = [...ctx.projects.map((project) => ({
4255
+ root: project.config.root,
4256
+ isBrowserEnabled: project.isBrowserEnabled(),
4257
+ vitenode: project.vitenode
4258
+ })), {
4259
+ root: ctx.config.root,
4260
+ vitenode: ctx.vitenode,
4261
+ isBrowserEnabled: ctx.getRootProject().isBrowserEnabled()
4262
+ }];
4263
+ return async function transformFile(filename) {
4264
+ let lastError;
4265
+ for (const { root, vitenode, isBrowserEnabled } of servers) {
4266
+ // On Windows root doesn't start with "/" while filenames do
4267
+ if (!filename.startsWith(root) && !filename.startsWith(`/${root}`)) continue;
4268
+ if (isBrowserEnabled) {
4269
+ const result = await vitenode.transformRequest(filename, void 0, "web").catch(() => null);
4270
+ if (result) return result;
4271
+ }
4272
+ try {
4273
+ return await vitenode.transformRequest(filename);
4274
+ } catch (error) {
4275
+ lastError = error;
4276
+ }
4277
+ }
4278
+ // All vite-node servers failed to transform the file
4279
+ throw lastError;
4280
+ };
4281
+ }
4282
+ }
4283
+ /**
4284
+ * Narrow down `unknown` glob thresholds to resolved ones
4285
+ */
4286
+ function resolveGlobThresholds(thresholds) {
4287
+ if (!thresholds || typeof thresholds !== "object") return {};
4288
+ if (100 in thresholds && thresholds[100] === true) return {
4289
+ lines: 100,
4290
+ branches: 100,
4291
+ functions: 100,
4292
+ statements: 100
4293
+ };
4294
+ return {
4295
+ lines: "lines" in thresholds && typeof thresholds.lines === "number" ? thresholds.lines : void 0,
4296
+ branches: "branches" in thresholds && typeof thresholds.branches === "number" ? thresholds.branches : void 0,
4297
+ functions: "functions" in thresholds && typeof thresholds.functions === "number" ? thresholds.functions : void 0,
4298
+ statements: "statements" in thresholds && typeof thresholds.statements === "number" ? thresholds.statements : void 0
4299
+ };
4300
+ }
4301
+ function assertConfigurationModule(config) {
4302
+ try {
4303
+ // @ts-expect-error -- Intentional unsafe null pointer check as wrapped in try-catch
4304
+ if (typeof config.test.coverage.thresholds !== "object") throw new TypeError("Expected config.test.coverage.thresholds to be an object");
4305
+ } catch (error) {
4306
+ const message = error instanceof Error ? error.message : String(error);
4307
+ throw new Error(`Unable to parse thresholds from configuration file: ${message}`);
4308
+ }
4309
+ }
4310
+ function resolveConfig(configModule) {
4311
+ const mod = configModule.exports.default;
4312
+ try {
4313
+ // Check for "export default { test: {...} }"
4314
+ if (mod.$type === "object") return mod;
4315
+ // "export default defineConfig(...)"
4316
+ let config = resolveDefineConfig(mod);
4317
+ if (config) return config;
4318
+ // "export default mergeConfig(..., defineConfig(...))"
4319
+ if (mod.$type === "function-call" && mod.$callee === "mergeConfig") {
4320
+ config = resolveMergeConfig(mod);
4321
+ if (config) return config;
4322
+ }
4323
+ } catch (error) {
4324
+ // Reduce magicast's verbose errors to readable ones
4325
+ throw new Error(error instanceof Error ? error.message : String(error));
4326
+ }
4327
+ throw new Error("Failed to update coverage thresholds. Configuration file is too complex.");
4328
+ }
4329
+ function resolveDefineConfig(mod) {
4330
+ if (mod.$type === "function-call" && mod.$callee === "defineConfig") {
4331
+ // "export default defineConfig({ test: {...} })"
4332
+ if (mod.$args[0].$type === "object") return mod.$args[0];
4333
+ if (mod.$args[0].$type === "arrow-function-expression") {
4334
+ if (mod.$args[0].$body.$type === "object")
4335
+ // "export default defineConfig(() => ({ test: {...} }))"
4336
+ return mod.$args[0].$body;
4337
+ // "export default defineConfig(() => mergeConfig({...}, ...))"
4338
+ const config = resolveMergeConfig(mod.$args[0].$body);
4339
+ if (config) return config;
4340
+ }
4341
+ }
4342
+ }
4343
+ function resolveMergeConfig(mod) {
4344
+ if (mod.$type === "function-call" && mod.$callee === "mergeConfig") for (const arg of mod.$args) {
4345
+ const config = resolveDefineConfig(arg);
4346
+ if (config) return config;
4347
+ }
4348
+ }
4349
+
4350
+ export { BaseCoverageProvider as B, RandomSequencer as R, resolveApiServerConfig as a, BaseSequencer as b, createMethodsRPC as c, isBrowserEnabled as d, groupBy as e, getCoverageProvider as f, getFilePoolName as g, hash as h, isPackageExists as i, createPool as j, resolveConfig$1 as r, stdout as s, wildcardPatternToRegExp as w };