mockaton 13.7.1 → 13.9.0

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 (284) hide show
  1. package/README.md +27 -8
  2. package/package.json +5 -3
  3. package/src/client/Filename.js +2 -2
  4. package/src/client/dir/groupByFolder.js +16 -14
  5. package/src/server/Mockaton.js +3 -3
  6. package/src/server/Mockaton.test.js +33 -0
  7. package/src/server/cli.js +9 -8
  8. package/src/server/importResolver.js +35 -0
  9. package/src/server/utils/logger.js +2 -4
  10. package/src/server/utils/openInBrowser.js +1 -1
  11. package/vite-plugin/README.md +29 -0
  12. package/vite-plugin/index.ts +21 -0
  13. package/vite-plugin/node_modules/.package-lock.json +356 -0
  14. package/vite-plugin/node_modules/@oxc-project/types/LICENSE +22 -0
  15. package/vite-plugin/node_modules/@oxc-project/types/README.md +3 -0
  16. package/vite-plugin/node_modules/@oxc-project/types/package.json +26 -0
  17. package/vite-plugin/node_modules/@oxc-project/types/types.d.ts +1912 -0
  18. package/vite-plugin/node_modules/@rolldown/binding-darwin-arm64/README.md +3 -0
  19. package/vite-plugin/node_modules/@rolldown/binding-darwin-arm64/package.json +37 -0
  20. package/vite-plugin/node_modules/@rolldown/binding-darwin-arm64/rolldown-binding.darwin-arm64.node +0 -0
  21. package/vite-plugin/node_modules/@rolldown/pluginutils/LICENSE +25 -0
  22. package/vite-plugin/node_modules/@rolldown/pluginutils/README.md +83 -0
  23. package/vite-plugin/node_modules/@rolldown/pluginutils/dist/filter/composable-filters.d.ts +90 -0
  24. package/vite-plugin/node_modules/@rolldown/pluginutils/dist/filter/composable-filters.js +256 -0
  25. package/vite-plugin/node_modules/@rolldown/pluginutils/dist/filter/filter-vite-plugins.d.ts +28 -0
  26. package/vite-plugin/node_modules/@rolldown/pluginutils/dist/filter/filter-vite-plugins.js +75 -0
  27. package/vite-plugin/node_modules/@rolldown/pluginutils/dist/filter/index.d.ts +3 -0
  28. package/vite-plugin/node_modules/@rolldown/pluginutils/dist/filter/index.js +3 -0
  29. package/vite-plugin/node_modules/@rolldown/pluginutils/dist/filter/simple-filters.d.ts +71 -0
  30. package/vite-plugin/node_modules/@rolldown/pluginutils/dist/filter/simple-filters.js +70 -0
  31. package/vite-plugin/node_modules/@rolldown/pluginutils/dist/index.d.ts +1 -0
  32. package/vite-plugin/node_modules/@rolldown/pluginutils/dist/index.js +1 -0
  33. package/vite-plugin/node_modules/@rolldown/pluginutils/dist/utils.d.ts +2 -0
  34. package/vite-plugin/node_modules/@rolldown/pluginutils/dist/utils.js +17 -0
  35. package/vite-plugin/node_modules/@rolldown/pluginutils/package.json +37 -0
  36. package/vite-plugin/node_modules/detect-libc/LICENSE +201 -0
  37. package/vite-plugin/node_modules/detect-libc/README.md +163 -0
  38. package/vite-plugin/node_modules/detect-libc/index.d.ts +14 -0
  39. package/vite-plugin/node_modules/detect-libc/lib/detect-libc.js +313 -0
  40. package/vite-plugin/node_modules/detect-libc/lib/elf.js +39 -0
  41. package/vite-plugin/node_modules/detect-libc/lib/filesystem.js +51 -0
  42. package/vite-plugin/node_modules/detect-libc/lib/process.js +24 -0
  43. package/vite-plugin/node_modules/detect-libc/package.json +44 -0
  44. package/vite-plugin/node_modules/fdir/LICENSE +7 -0
  45. package/vite-plugin/node_modules/fdir/README.md +91 -0
  46. package/vite-plugin/node_modules/fdir/dist/index.cjs +588 -0
  47. package/vite-plugin/node_modules/fdir/dist/index.d.cts +155 -0
  48. package/vite-plugin/node_modules/fdir/dist/index.d.mts +155 -0
  49. package/vite-plugin/node_modules/fdir/dist/index.mjs +570 -0
  50. package/vite-plugin/node_modules/fdir/package.json +103 -0
  51. package/vite-plugin/node_modules/fsevents/LICENSE +22 -0
  52. package/vite-plugin/node_modules/fsevents/README.md +89 -0
  53. package/vite-plugin/node_modules/fsevents/fsevents.d.ts +46 -0
  54. package/vite-plugin/node_modules/fsevents/fsevents.js +83 -0
  55. package/vite-plugin/node_modules/fsevents/fsevents.node +0 -0
  56. package/vite-plugin/node_modules/fsevents/package.json +62 -0
  57. package/vite-plugin/node_modules/lightningcss/LICENSE +373 -0
  58. package/vite-plugin/node_modules/lightningcss/README.md +105 -0
  59. package/vite-plugin/node_modules/lightningcss/node/ast.d.ts +9892 -0
  60. package/vite-plugin/node_modules/lightningcss/node/ast.js.flow +10539 -0
  61. package/vite-plugin/node_modules/lightningcss/node/browserslistToTargets.js +48 -0
  62. package/vite-plugin/node_modules/lightningcss/node/composeVisitors.js +450 -0
  63. package/vite-plugin/node_modules/lightningcss/node/flags.js +28 -0
  64. package/vite-plugin/node_modules/lightningcss/node/index.d.ts +494 -0
  65. package/vite-plugin/node_modules/lightningcss/node/index.js +59 -0
  66. package/vite-plugin/node_modules/lightningcss/node/index.js.flow +843 -0
  67. package/vite-plugin/node_modules/lightningcss/node/index.mjs +4 -0
  68. package/vite-plugin/node_modules/lightningcss/node/targets.d.ts +40 -0
  69. package/vite-plugin/node_modules/lightningcss/node/targets.js.flow +39 -0
  70. package/vite-plugin/node_modules/lightningcss/package.json +110 -0
  71. package/vite-plugin/node_modules/lightningcss-darwin-arm64/LICENSE +373 -0
  72. package/vite-plugin/node_modules/lightningcss-darwin-arm64/README.md +1 -0
  73. package/vite-plugin/node_modules/lightningcss-darwin-arm64/lightningcss.darwin-arm64.node +0 -0
  74. package/vite-plugin/node_modules/lightningcss-darwin-arm64/package.json +34 -0
  75. package/vite-plugin/node_modules/nanoid/LICENSE +20 -0
  76. package/vite-plugin/node_modules/nanoid/README.md +39 -0
  77. package/vite-plugin/node_modules/nanoid/async/index.browser.cjs +69 -0
  78. package/vite-plugin/node_modules/nanoid/async/index.browser.js +34 -0
  79. package/vite-plugin/node_modules/nanoid/async/index.cjs +71 -0
  80. package/vite-plugin/node_modules/nanoid/async/index.d.ts +56 -0
  81. package/vite-plugin/node_modules/nanoid/async/index.js +35 -0
  82. package/vite-plugin/node_modules/nanoid/async/index.native.js +26 -0
  83. package/vite-plugin/node_modules/nanoid/async/package.json +12 -0
  84. package/vite-plugin/node_modules/nanoid/bin/nanoid.cjs +55 -0
  85. package/vite-plugin/node_modules/nanoid/index.browser.cjs +72 -0
  86. package/vite-plugin/node_modules/nanoid/index.browser.js +34 -0
  87. package/vite-plugin/node_modules/nanoid/index.cjs +85 -0
  88. package/vite-plugin/node_modules/nanoid/index.d.cts +91 -0
  89. package/vite-plugin/node_modules/nanoid/index.d.ts +91 -0
  90. package/vite-plugin/node_modules/nanoid/index.js +45 -0
  91. package/vite-plugin/node_modules/nanoid/nanoid.js +1 -0
  92. package/vite-plugin/node_modules/nanoid/non-secure/index.cjs +34 -0
  93. package/vite-plugin/node_modules/nanoid/non-secure/index.d.ts +33 -0
  94. package/vite-plugin/node_modules/nanoid/non-secure/index.js +21 -0
  95. package/vite-plugin/node_modules/nanoid/non-secure/package.json +6 -0
  96. package/vite-plugin/node_modules/nanoid/package.json +89 -0
  97. package/vite-plugin/node_modules/nanoid/url-alphabet/index.cjs +7 -0
  98. package/vite-plugin/node_modules/nanoid/url-alphabet/index.js +3 -0
  99. package/vite-plugin/node_modules/nanoid/url-alphabet/package.json +6 -0
  100. package/vite-plugin/node_modules/picocolors/LICENSE +15 -0
  101. package/vite-plugin/node_modules/picocolors/README.md +21 -0
  102. package/vite-plugin/node_modules/picocolors/package.json +25 -0
  103. package/vite-plugin/node_modules/picocolors/picocolors.browser.js +4 -0
  104. package/vite-plugin/node_modules/picocolors/picocolors.d.ts +5 -0
  105. package/vite-plugin/node_modules/picocolors/picocolors.js +75 -0
  106. package/vite-plugin/node_modules/picocolors/types.d.ts +51 -0
  107. package/vite-plugin/node_modules/picomatch/LICENSE +21 -0
  108. package/vite-plugin/node_modules/picomatch/README.md +749 -0
  109. package/vite-plugin/node_modules/picomatch/index.js +17 -0
  110. package/vite-plugin/node_modules/picomatch/lib/constants.js +184 -0
  111. package/vite-plugin/node_modules/picomatch/lib/parse.js +1386 -0
  112. package/vite-plugin/node_modules/picomatch/lib/picomatch.js +349 -0
  113. package/vite-plugin/node_modules/picomatch/lib/scan.js +391 -0
  114. package/vite-plugin/node_modules/picomatch/lib/utils.js +72 -0
  115. package/vite-plugin/node_modules/picomatch/package.json +82 -0
  116. package/vite-plugin/node_modules/picomatch/posix.js +3 -0
  117. package/vite-plugin/node_modules/postcss/LICENSE +20 -0
  118. package/vite-plugin/node_modules/postcss/README.md +28 -0
  119. package/vite-plugin/node_modules/postcss/lib/at-rule.d.ts +139 -0
  120. package/vite-plugin/node_modules/postcss/lib/at-rule.js +25 -0
  121. package/vite-plugin/node_modules/postcss/lib/comment.d.ts +67 -0
  122. package/vite-plugin/node_modules/postcss/lib/comment.js +13 -0
  123. package/vite-plugin/node_modules/postcss/lib/container.d.ts +478 -0
  124. package/vite-plugin/node_modules/postcss/lib/container.js +447 -0
  125. package/vite-plugin/node_modules/postcss/lib/css-syntax-error.d.ts +247 -0
  126. package/vite-plugin/node_modules/postcss/lib/css-syntax-error.js +133 -0
  127. package/vite-plugin/node_modules/postcss/lib/declaration.d.ts +150 -0
  128. package/vite-plugin/node_modules/postcss/lib/declaration.js +24 -0
  129. package/vite-plugin/node_modules/postcss/lib/document.d.ts +68 -0
  130. package/vite-plugin/node_modules/postcss/lib/document.js +33 -0
  131. package/vite-plugin/node_modules/postcss/lib/fromJSON.d.ts +9 -0
  132. package/vite-plugin/node_modules/postcss/lib/fromJSON.js +54 -0
  133. package/vite-plugin/node_modules/postcss/lib/input.d.ts +226 -0
  134. package/vite-plugin/node_modules/postcss/lib/input.js +273 -0
  135. package/vite-plugin/node_modules/postcss/lib/lazy-result.d.ts +189 -0
  136. package/vite-plugin/node_modules/postcss/lib/lazy-result.js +550 -0
  137. package/vite-plugin/node_modules/postcss/lib/list.d.ts +60 -0
  138. package/vite-plugin/node_modules/postcss/lib/list.js +58 -0
  139. package/vite-plugin/node_modules/postcss/lib/map-generator.js +376 -0
  140. package/vite-plugin/node_modules/postcss/lib/no-work-result.d.ts +45 -0
  141. package/vite-plugin/node_modules/postcss/lib/no-work-result.js +137 -0
  142. package/vite-plugin/node_modules/postcss/lib/node.d.ts +555 -0
  143. package/vite-plugin/node_modules/postcss/lib/node.js +449 -0
  144. package/vite-plugin/node_modules/postcss/lib/parse.d.ts +9 -0
  145. package/vite-plugin/node_modules/postcss/lib/parse.js +42 -0
  146. package/vite-plugin/node_modules/postcss/lib/parser.js +611 -0
  147. package/vite-plugin/node_modules/postcss/lib/postcss.d.mts +66 -0
  148. package/vite-plugin/node_modules/postcss/lib/postcss.d.ts +456 -0
  149. package/vite-plugin/node_modules/postcss/lib/postcss.js +101 -0
  150. package/vite-plugin/node_modules/postcss/lib/postcss.mjs +30 -0
  151. package/vite-plugin/node_modules/postcss/lib/previous-map.d.ts +80 -0
  152. package/vite-plugin/node_modules/postcss/lib/previous-map.js +145 -0
  153. package/vite-plugin/node_modules/postcss/lib/processor.d.ts +114 -0
  154. package/vite-plugin/node_modules/postcss/lib/processor.js +67 -0
  155. package/vite-plugin/node_modules/postcss/lib/result.d.ts +204 -0
  156. package/vite-plugin/node_modules/postcss/lib/result.js +42 -0
  157. package/vite-plugin/node_modules/postcss/lib/root.d.ts +86 -0
  158. package/vite-plugin/node_modules/postcss/lib/root.js +61 -0
  159. package/vite-plugin/node_modules/postcss/lib/rule.d.ts +126 -0
  160. package/vite-plugin/node_modules/postcss/lib/rule.js +27 -0
  161. package/vite-plugin/node_modules/postcss/lib/stringifier.d.ts +45 -0
  162. package/vite-plugin/node_modules/postcss/lib/stringifier.js +370 -0
  163. package/vite-plugin/node_modules/postcss/lib/stringify.d.ts +9 -0
  164. package/vite-plugin/node_modules/postcss/lib/stringify.js +11 -0
  165. package/vite-plugin/node_modules/postcss/lib/symbols.js +5 -0
  166. package/vite-plugin/node_modules/postcss/lib/terminal-highlight.js +70 -0
  167. package/vite-plugin/node_modules/postcss/lib/tokenize.js +266 -0
  168. package/vite-plugin/node_modules/postcss/lib/warn-once.js +13 -0
  169. package/vite-plugin/node_modules/postcss/lib/warning.d.ts +146 -0
  170. package/vite-plugin/node_modules/postcss/lib/warning.js +37 -0
  171. package/vite-plugin/node_modules/postcss/package.json +88 -0
  172. package/vite-plugin/node_modules/rolldown/LICENSE +25 -0
  173. package/vite-plugin/node_modules/rolldown/README.md +11 -0
  174. package/vite-plugin/node_modules/rolldown/bin/cli.mjs +2 -0
  175. package/vite-plugin/node_modules/rolldown/dist/cli.d.mts +1 -0
  176. package/vite-plugin/node_modules/rolldown/dist/cli.mjs +1191 -0
  177. package/vite-plugin/node_modules/rolldown/dist/config.d.mts +14 -0
  178. package/vite-plugin/node_modules/rolldown/dist/config.mjs +4 -0
  179. package/vite-plugin/node_modules/rolldown/dist/experimental-index.d.mts +253 -0
  180. package/vite-plugin/node_modules/rolldown/dist/experimental-index.mjs +320 -0
  181. package/vite-plugin/node_modules/rolldown/dist/experimental-runtime-types.d.ts +98 -0
  182. package/vite-plugin/node_modules/rolldown/dist/filter-index.d.mts +196 -0
  183. package/vite-plugin/node_modules/rolldown/dist/filter-index.mjs +386 -0
  184. package/vite-plugin/node_modules/rolldown/dist/get-log-filter.d.mts +3 -0
  185. package/vite-plugin/node_modules/rolldown/dist/get-log-filter.mjs +68 -0
  186. package/vite-plugin/node_modules/rolldown/dist/index.d.mts +4 -0
  187. package/vite-plugin/node_modules/rolldown/dist/index.mjs +50 -0
  188. package/vite-plugin/node_modules/rolldown/dist/parallel-plugin-worker.d.mts +1 -0
  189. package/vite-plugin/node_modules/rolldown/dist/parallel-plugin-worker.mjs +28 -0
  190. package/vite-plugin/node_modules/rolldown/dist/parallel-plugin.d.mts +13 -0
  191. package/vite-plugin/node_modules/rolldown/dist/parallel-plugin.mjs +6 -0
  192. package/vite-plugin/node_modules/rolldown/dist/parse-ast-index.d.mts +32 -0
  193. package/vite-plugin/node_modules/rolldown/dist/parse-ast-index.mjs +60 -0
  194. package/vite-plugin/node_modules/rolldown/dist/plugins-index.d.mts +33 -0
  195. package/vite-plugin/node_modules/rolldown/dist/plugins-index.mjs +40 -0
  196. package/vite-plugin/node_modules/rolldown/dist/shared/binding-BeU_1iEk.mjs +582 -0
  197. package/vite-plugin/node_modules/rolldown/dist/shared/binding-zH1vcmbM.d.mts +1899 -0
  198. package/vite-plugin/node_modules/rolldown/dist/shared/bindingify-input-options-DbbBhzky.mjs +2211 -0
  199. package/vite-plugin/node_modules/rolldown/dist/shared/constructors-C2EWPKW3.mjs +68 -0
  200. package/vite-plugin/node_modules/rolldown/dist/shared/constructors-D0W3rNfA.d.mts +37 -0
  201. package/vite-plugin/node_modules/rolldown/dist/shared/define-config-5HJ1b9vG.d.mts +3829 -0
  202. package/vite-plugin/node_modules/rolldown/dist/shared/define-config-DJOr6Iwt.mjs +6 -0
  203. package/vite-plugin/node_modules/rolldown/dist/shared/error-DL-e8-oE.mjs +85 -0
  204. package/vite-plugin/node_modules/rolldown/dist/shared/get-log-filter-semyr3Lj.d.mts +35 -0
  205. package/vite-plugin/node_modules/rolldown/dist/shared/load-config-BoVO31Un.mjs +120 -0
  206. package/vite-plugin/node_modules/rolldown/dist/shared/logging-C6h4g8dA.d.mts +50 -0
  207. package/vite-plugin/node_modules/rolldown/dist/shared/logs-D80CXhvg.mjs +180 -0
  208. package/vite-plugin/node_modules/rolldown/dist/shared/misc-DJYbNKZX.mjs +21 -0
  209. package/vite-plugin/node_modules/rolldown/dist/shared/normalize-string-or-regex-CbQQ69gT.mjs +66 -0
  210. package/vite-plugin/node_modules/rolldown/dist/shared/parse-B_ZnWxLZ.mjs +74 -0
  211. package/vite-plugin/node_modules/rolldown/dist/shared/prompt-U5ajztzG.mjs +847 -0
  212. package/vite-plugin/node_modules/rolldown/dist/shared/resolve-tsconfig-CfYpGzid.mjs +113 -0
  213. package/vite-plugin/node_modules/rolldown/dist/shared/rolldown-D3JZ9rMt.mjs +40 -0
  214. package/vite-plugin/node_modules/rolldown/dist/shared/rolldown-build-DSxL8qiP.mjs +3325 -0
  215. package/vite-plugin/node_modules/rolldown/dist/shared/transform-DgZ3paSD.d.mts +149 -0
  216. package/vite-plugin/node_modules/rolldown/dist/shared/watch-Bd8v9ewv.mjs +374 -0
  217. package/vite-plugin/node_modules/rolldown/dist/utils-index.d.mts +376 -0
  218. package/vite-plugin/node_modules/rolldown/dist/utils-index.mjs +2414 -0
  219. package/vite-plugin/node_modules/rolldown/package.json +153 -0
  220. package/vite-plugin/node_modules/source-map-js/LICENSE +28 -0
  221. package/vite-plugin/node_modules/source-map-js/README.md +765 -0
  222. package/vite-plugin/node_modules/source-map-js/lib/array-set.js +121 -0
  223. package/vite-plugin/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  224. package/vite-plugin/node_modules/source-map-js/lib/base64.js +67 -0
  225. package/vite-plugin/node_modules/source-map-js/lib/binary-search.js +111 -0
  226. package/vite-plugin/node_modules/source-map-js/lib/mapping-list.js +79 -0
  227. package/vite-plugin/node_modules/source-map-js/lib/quick-sort.js +132 -0
  228. package/vite-plugin/node_modules/source-map-js/lib/source-map-consumer.d.ts +1 -0
  229. package/vite-plugin/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
  230. package/vite-plugin/node_modules/source-map-js/lib/source-map-generator.d.ts +1 -0
  231. package/vite-plugin/node_modules/source-map-js/lib/source-map-generator.js +444 -0
  232. package/vite-plugin/node_modules/source-map-js/lib/source-node.d.ts +1 -0
  233. package/vite-plugin/node_modules/source-map-js/lib/source-node.js +413 -0
  234. package/vite-plugin/node_modules/source-map-js/lib/util.js +594 -0
  235. package/vite-plugin/node_modules/source-map-js/package.json +71 -0
  236. package/vite-plugin/node_modules/source-map-js/source-map.d.ts +104 -0
  237. package/vite-plugin/node_modules/source-map-js/source-map.js +8 -0
  238. package/vite-plugin/node_modules/tinyglobby/LICENSE +21 -0
  239. package/vite-plugin/node_modules/tinyglobby/README.md +25 -0
  240. package/vite-plugin/node_modules/tinyglobby/dist/index.cjs +334 -0
  241. package/vite-plugin/node_modules/tinyglobby/dist/index.d.cts +148 -0
  242. package/vite-plugin/node_modules/tinyglobby/dist/index.d.mts +148 -0
  243. package/vite-plugin/node_modules/tinyglobby/dist/index.mjs +306 -0
  244. package/vite-plugin/node_modules/tinyglobby/package.json +73 -0
  245. package/vite-plugin/node_modules/vite/LICENSE.md +2230 -0
  246. package/vite-plugin/node_modules/vite/README.md +20 -0
  247. package/vite-plugin/node_modules/vite/bin/openChrome.js +68 -0
  248. package/vite-plugin/node_modules/vite/bin/vite.js +79 -0
  249. package/vite-plugin/node_modules/vite/client.d.ts +282 -0
  250. package/vite-plugin/node_modules/vite/dist/client/client.mjs +1237 -0
  251. package/vite-plugin/node_modules/vite/dist/client/env.mjs +18 -0
  252. package/vite-plugin/node_modules/vite/dist/node/chunks/build.js +5381 -0
  253. package/vite-plugin/node_modules/vite/dist/node/chunks/chunk.js +37 -0
  254. package/vite-plugin/node_modules/vite/dist/node/chunks/dist.js +6784 -0
  255. package/vite-plugin/node_modules/vite/dist/node/chunks/lib.js +371 -0
  256. package/vite-plugin/node_modules/vite/dist/node/chunks/logger.js +322 -0
  257. package/vite-plugin/node_modules/vite/dist/node/chunks/moduleRunnerTransport.d.ts +96 -0
  258. package/vite-plugin/node_modules/vite/dist/node/chunks/node.js +34874 -0
  259. package/vite-plugin/node_modules/vite/dist/node/chunks/postcss-import.js +467 -0
  260. package/vite-plugin/node_modules/vite/dist/node/cli.js +837 -0
  261. package/vite-plugin/node_modules/vite/dist/node/index.d.ts +3867 -0
  262. package/vite-plugin/node_modules/vite/dist/node/index.js +3 -0
  263. package/vite-plugin/node_modules/vite/dist/node/internal.d.ts +2 -0
  264. package/vite-plugin/node_modules/vite/dist/node/internal.js +2 -0
  265. package/vite-plugin/node_modules/vite/dist/node/module-runner.d.ts +315 -0
  266. package/vite-plugin/node_modules/vite/dist/node/module-runner.js +1262 -0
  267. package/vite-plugin/node_modules/vite/misc/false.js +1 -0
  268. package/vite-plugin/node_modules/vite/misc/true.js +1 -0
  269. package/vite-plugin/node_modules/vite/package.json +192 -0
  270. package/vite-plugin/node_modules/vite/types/customEvent.d.ts +79 -0
  271. package/vite-plugin/node_modules/vite/types/hmrPayload.d.ts +80 -0
  272. package/vite-plugin/node_modules/vite/types/hot.d.ts +39 -0
  273. package/vite-plugin/node_modules/vite/types/import-meta.d.ts +5 -0
  274. package/vite-plugin/node_modules/vite/types/importGlob.d.ts +89 -0
  275. package/vite-plugin/node_modules/vite/types/importMeta.d.ts +30 -0
  276. package/vite-plugin/node_modules/vite/types/internal/cssPreprocessorOptions.d.ts +44 -0
  277. package/vite-plugin/node_modules/vite/types/internal/esbuildOptions.d.ts +28 -0
  278. package/vite-plugin/node_modules/vite/types/internal/lightningcssOptions.d.ts +18 -0
  279. package/vite-plugin/node_modules/vite/types/internal/rollupTypeCompat.d.ts +24 -0
  280. package/vite-plugin/node_modules/vite/types/internal/terserOptions.d.ts +11 -0
  281. package/vite-plugin/node_modules/vite/types/metadata.d.ts +47 -0
  282. package/vite-plugin/package.json +14 -0
  283. package/www/src/{assets → .well-known/agent-skills/mockaton}/SKILLS.md +21 -9
  284. package/src/server/cacheBustResolver.js +0 -19
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![codecov](https://codecov.io/github/ericfortis/mockaton/graph/badge.svg?token=90NYLMMG1J)](https://codecov.io/github/ericfortis/mockaton)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
6
 
7
- ## [Docs ↗](https://mockaton.com) | [Changelog ↗](https://mockaton.com/changelog) | [Skills](https://mockaton.com/assets/SKILLS.md)
7
+ ## [Docs ↗](https://mockaton.com) | [Changelog ↗](https://mockaton.com/changelog) | [Skills](skills/mockaton/SKILL.md)
8
8
 
9
9
  Mockaton is an HTTP mock server for simulating APIs, designed
10
10
  for testing difficult to reproduce backend states with minimal setup.
@@ -30,11 +30,12 @@ Test it:
30
30
  curl localhost:2020/api/user
31
31
  ```
32
32
  Dashboard: [localhost:2020/mockaton](http://localhost:2020/mockaton)
33
+
33
34
  <!-- SKILLS_IGNORE_END -->
34
35
 
35
36
  ## Basic Usage
36
37
  ```sh
37
- npx mockaton my-mocks-dir/
38
+ npx mockaton --port 2020 my-mocks-dir/
38
39
  ```
39
40
 
40
41
  Mockaton will serve the files on the given directory. It's a file-system
@@ -53,22 +54,40 @@ Also, each route can have different mock file variants.
53
54
 
54
55
  ## Docs
55
56
  - How to **configure** Mockaton? See [CLI and mockaton.config.js](https://mockaton.com/config) docs.
56
- - How to **control** Mockaton? Besides the dashboard, there's a [Programmatic API](https://mockaton.com/api).
57
+ - How to **control** Mockaton? Besides the dashboard, there's a [Programmatic API](https://mockaton.com/api), in which
58
+ you can delay a route, select a different mock file, such as a 500 error, among other options.
57
59
  - How to **add plugins**? You can write [Plugins](https://mockaton.com/plugins) for customizing responses.
58
60
 
59
61
  <!-- SKILLS_IGNORE_BEGIN -->
60
62
  ## How to scrape your backend APIs?
61
63
  Mockaton has a [Browser Extension](https://mockaton.com/scraping) that lets
62
64
  you download in bulk all your API responses following Mockaton's filename convention.
65
+
66
+
67
+ ## Skills
68
+ ```sh
69
+ npx skills add ericfortis/mockaton
70
+ ```
63
71
  <!-- SKILLS_IGNORE_END -->
64
72
 
65
73
  ## How to create mocks?
66
74
 
67
- Write to your mocks directory. Alternatively, there's an API [PATCH /mockaton/write-mock](https://mockaton.com/api).
75
+ ```sh
76
+ npm install mockaton
77
+ ```
78
+
79
+ Write to your mocks directory, `.ts` files are served as JSON by default.
68
80
  ```sh
69
81
  mkdir -p my-mocks-dir/api
70
- echo '{ "name": "John" }' > my-mocks-dir/api/user.GET.200.json
71
- sleep 0.1 # Wait for the watcher to register it
82
+ cat > my-mocks-dir/api/user.GET.200.ts << EOF
83
+ interface User {
84
+ name: string
85
+ }
86
+
87
+ export default {
88
+ "name": "John"
89
+ } satisfies User
90
+ EOF
72
91
  ```
73
92
 
74
93
  ### Example A: JSON
@@ -96,8 +115,8 @@ export default {
96
115
  ```
97
116
 
98
117
  ### Example C: [Function Mocks](https://mockaton.com/function-mocks)
99
- With a function mock you can do pretty much anything you could do with a normal backend handler.</p>
100
- For example, you can handle complex logic, URL parsing, saving toa database, etc.
118
+ With a function mock you can do pretty much anything you could do with a normal backend handler.
119
+ For example, you can handle complex logic, URL parsing, saving to a database, etc.
101
120
 
102
121
  - **Route:** /api/company/abc/user/999
103
122
  - **Filename:** api/company/[companyId]/user/[userId].GET.200.ts
package/package.json CHANGED
@@ -2,21 +2,23 @@
2
2
  "name": "mockaton",
3
3
  "description": "HTTP Mock Server",
4
4
  "type": "module",
5
- "version": "13.7.1",
5
+ "version": "13.9.0",
6
6
  "exports": {
7
7
  ".": {
8
8
  "import": "./index.js",
9
9
  "types": "./index.d.ts"
10
10
  },
11
+ "./vite": "./vite-plugin/index.js",
11
12
  "./openapi.json": "./www/src/assets/openapi.json",
12
- "./SKILLS.md": "./www/src/assets/SKILLS.md"
13
+ "./SKILLS.md": "./www/src/.well-known/agent-skills/mockaton/SKILLS.md"
13
14
  },
14
15
  "files": [
15
16
  "src",
16
17
  "index.js",
17
18
  "index.d.ts",
19
+ "vite-plugin",
18
20
  "www/src/assets/openapi.json",
19
- "www/src/assets/SKILLS.md"
21
+ "www/src/.well-known/agent-skills/mockaton/SKILLS.md"
20
22
  ],
21
23
  "license": "MIT",
22
24
  "homepage": "https://mockaton.com",
@@ -65,7 +65,7 @@ export function makeMockFilename(url, method, status, ext, comment = '') {
65
65
  return [urlMask + comment, method, status, ext].join('.')
66
66
  }
67
67
 
68
- const reUuidV4 = /([0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})/gi
69
68
  function replaceIds(filename) {
70
- return filename.replaceAll(reUuidV4, '[id]')
69
+ return filename.replaceAll(replaceIds.reUuidV4, '[id]')
71
70
  }
71
+ replaceIds.reUuidV4 = /([0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})/gi
@@ -11,28 +11,22 @@ function trie(brokers) {
11
11
  for (const b of brokers) {
12
12
  let node = root
13
13
  for (const seg of b.urlMask.split('/')) { // TODO it should ignore query string
14
- const segNode = node.getChild(seg) || new TrieNode()
15
- node.addChild(seg, segNode)
16
- node = segNode
14
+ if (node.hasChild(seg))
15
+ node = node.getChild(seg)
16
+ else {
17
+ const segNode = new TrieNode()
18
+ node.setChild(seg, segNode)
19
+ node = segNode
20
+ }
17
21
  }
18
22
  node.brokers.push(b)
19
23
  }
20
24
  return root
21
25
  }
22
26
 
23
- class TrieNode {
24
- #children = new Map()
25
- brokers = []
26
- addChild(k, v) { this.#children.set(k, v) }
27
- getChild(k) { return this.#children.get(k) }
28
- getChildren() { return this.#children.values() }
29
- }
30
-
31
27
  /** @param {TrieNode} node */
32
28
  function dfs(node) {
33
- const childBrokers = []
34
- for (const tnc of node.getChildren())
35
- childBrokers.push(...dfs(tnc))
29
+ const childBrokers = node.getChildren().flatMap(dfs)
36
30
 
37
31
  const brokers = node.brokers.length
38
32
  ? [node.brokers[0], ...childBrokers, ...node.brokers.slice(1)]
@@ -49,3 +43,11 @@ function dfs(node) {
49
43
  return brokers
50
44
  }
51
45
 
46
+ class TrieNode {
47
+ #children = new Map()
48
+ brokers = []
49
+ setChild(k, v) { this.#children.set(k, v) }
50
+ hasChild(k) { return this.#children.has(k) }
51
+ getChild(k) { return this.#children.get(k)}
52
+ getChildren() { return Array.from(this.#children.values()) }
53
+ }
@@ -25,11 +25,11 @@ export function Mockaton(options) {
25
25
  setup(options)
26
26
  cookie.init(config.cookies)
27
27
  mockBrokerCollection.init()
28
+ register('./importResolver.js', import.meta.url)
28
29
 
29
- if (config.watcherEnabled) {
30
- register('./cacheBustResolver.js', import.meta.url)
30
+ if (config.watcherEnabled)
31
31
  watchMocksDir()
32
- }
32
+
33
33
  if (config.hotReload)
34
34
  watchDevSPA(CLIENT_DIR)
35
35
 
@@ -1035,6 +1035,39 @@ describe('Write and Delete Mock', () => {
1035
1035
  const r2 = await request('/manual-mock')
1036
1036
  equal(r2.status, 404)
1037
1037
  })
1038
+
1039
+ test('can overwrite', async () => {
1040
+ const f = 'overwrite.GET.200.txt'
1041
+ await api.writeMock(f, 'write1')
1042
+ await api.writeMock(f, 'write2')
1043
+ const r = await request('/overwrite')
1044
+ equal(await r.text(), 'write2')
1045
+ await api.deleteMock(f)
1046
+ })
1047
+ })
1048
+
1049
+
1050
+ describe('import resolver', () => {
1051
+ test('resolves extensionless ts', async () => {
1052
+ await api.writeMock('_scores.ts', 'export default [1,2,3]')
1053
+ await api.writeMock('user-scores.GET.200.ts',
1054
+ // language=typescript
1055
+ `
1056
+ import scores from './_scores'
1057
+
1058
+ export default scores
1059
+ `)
1060
+ const r = await request('/user-scores')
1061
+ deepEqual(await r.json(), [1, 2, 3])
1062
+ })
1063
+
1064
+ test('imports are cache busted', async () => {
1065
+ await api.writeMock('_scores.ts', 'export default [4,5,6]')
1066
+ const r = await request('/user-scores')
1067
+ deepEqual(await r.json(), [4, 5, 6])
1068
+ await api.deleteMock('_scores.ts')
1069
+ await api.deleteMock('user-scores.GET.200.ts')
1070
+ })
1038
1071
  })
1039
1072
 
1040
1073
 
package/src/server/cli.js CHANGED
@@ -7,10 +7,12 @@ import { isFile } from './utils/fs.js'
7
7
  import { Mockaton } from '../../index.js'
8
8
  import pkgJSON from '../../package.json' with { type: 'json' }
9
9
 
10
- const rel = f => join(import.meta.dirname, f)
11
10
 
12
11
  process.on('unhandledRejection', error => { throw error })
13
12
 
13
+ const DEFAULT_CONFIG_FILE = 'mockaton.config.js'
14
+ const SKILLS_PATH = join(import.meta.dirname, '../../www/src/.well-known/agent-skills/mockaton/SKILL.md')
15
+
14
16
  let args, positionals
15
17
  try {
16
18
  const result = parseArgs({
@@ -38,22 +40,21 @@ catch (error) {
38
40
  process.exit(1)
39
41
  }
40
42
 
41
- // For clean exit on tests, so we can collect code-coverage
42
- process.on('SIGUSR2', () => process.exit(0))
43
+ process.on('SIGUSR2', () => process.exit(0)) // For clean exit when collecting code-coverage
43
44
 
44
45
 
45
46
  if (args.version)
46
47
  console.log(pkgJSON.version)
47
48
 
48
49
  else if (args.skills)
49
- console.log(rel('../../www/src/assets/SKILLS.md'))
50
-
50
+ console.log(SKILLS_PATH)
51
+
51
52
  else if (args.help)
52
53
  console.log(`
53
54
  Usage: mockaton [mocks-dir] [options]
54
55
 
55
56
  Options:
56
- -c, --config <file> (default: ./mockaton.config.js)
57
+ -c, --config <file> (default: ./${DEFAULT_CONFIG_FILE})
57
58
 
58
59
  -H, --host <host> (default: 127.0.0.1)
59
60
  -p, --port <port> (default: 0) which means auto-assigned
@@ -68,7 +69,7 @@ Options:
68
69
 
69
70
  Notes:
70
71
  * mockaton.config.js supports more options, see: https://mockaton.com/config
71
- * CLI options override their mockaton.config.js counterparts
72
+ * CLI options override their ${DEFAULT_CONFIG_FILE}} counterparts
72
73
  `.trim())
73
74
 
74
75
  else if (args.config && !isFile(args.config)) {
@@ -76,7 +77,7 @@ else if (args.config && !isFile(args.config)) {
76
77
  process.exitCode = 1
77
78
  }
78
79
  else {
79
- const userConf = resolve(args.config ?? 'mockaton.config.js')
80
+ const userConf = resolve(args.config ?? DEFAULT_CONFIG_FILE)
80
81
  const opts = isFile(userConf)
81
82
  ? (await import(userConf)).default ?? {}
82
83
  : {}
@@ -0,0 +1,35 @@
1
+ import { existsSync } from 'node:fs'
2
+ import { resolve as _resolve, join, dirname } from 'node:path'
3
+ import { fileURLToPath, pathToFileURL } from 'node:url'
4
+
5
+ const mockatonSrcRoot = `file://${_resolve(import.meta.dirname, '..')}`
6
+
7
+ // We register this hook at runtime so it doesn’t interfere with non-dynamic imports.
8
+ export async function resolve(specifier, context, nextResolve) {
9
+ let result
10
+ try {
11
+ result = await nextResolve(specifier, context)
12
+ }
13
+ catch (error) {
14
+ // Attempt to resolve imports as .ts and .js
15
+ if (error.code === 'ERR_MODULE_NOT_FOUND' && specifier.startsWith('.') && context.parentURL) {
16
+ const absPath = join(dirname(fileURLToPath(context.parentURL)), specifier)
17
+ for (const candidate of ['.ts', '.js'].map(ext => absPath + ext))
18
+ if (existsSync(candidate))
19
+ return resolve(pathToFileURL(candidate).href, context, nextResolve)
20
+ }
21
+ throw error
22
+ }
23
+
24
+ // Cache bust by appending timestamp query param
25
+ if (result.url?.startsWith('file://') && !result.url.startsWith(mockatonSrcRoot)) {
26
+ const url = new URL(result.url)
27
+ url.searchParams.set('t', performance.now())
28
+ return {
29
+ ...result,
30
+ url: url.href,
31
+ shortCircuit: true
32
+ }
33
+ }
34
+ return result
35
+ }
@@ -45,11 +45,9 @@ export const logger = new class {
45
45
  #sanitize(url) {
46
46
  try {
47
47
  const decoded = decode(url)
48
- if (!decoded)
49
- return '__MULTI_ENCODED__'
50
48
  return decoded
51
- .replace(reControlAndDelChars, '')
52
- .slice(0, 200)
49
+ ? decoded.replace(reControlAndDelChars, '').slice(0, 200)
50
+ : '__MULTI_ENCODED__'
53
51
  }
54
52
  catch {
55
53
  return '__NON_DECODABLE__'
@@ -5,7 +5,7 @@ export const openInBrowser = (async () => {
5
5
  try {
6
6
  return (await import('open')).default
7
7
  }
8
- catch (error) {
8
+ catch {
9
9
  return _openInBrowser
10
10
  }
11
11
  })()
@@ -0,0 +1,29 @@
1
+ # Mockaton Vite Plugin
2
+
3
+ Vite plugin to start Mockaton along with Vite dev server.
4
+
5
+ ## Installation
6
+
7
+ ```sh
8
+ npm install mockaton --save-dev
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ In your `vite.config.ts`:
14
+
15
+ ```ts
16
+ import { defineConfig } from 'vite'
17
+ import mockatonPlugin from 'mockaton/vite'
18
+
19
+ export default defineConfig({
20
+ plugins: [
21
+ // …other plugins
22
+ mockatonPlugin({
23
+ port: 4040,
24
+ mocksDir: './mockaton-mocks',
25
+ })
26
+ ]
27
+ })
28
+ ```
29
+
@@ -0,0 +1,21 @@
1
+ import { type Config, Mockaton } from 'mockaton'
2
+ import { type ViteDevServer } from 'vite'
3
+
4
+ export default function (options: Config = {}) {
5
+ let mockatonServer
6
+
7
+ return {
8
+ name: 'mockaton-vite-plugin',
9
+
10
+ async configureServer(viteServer: ViteDevServer) {
11
+ mockatonServer = await Mockaton(options)
12
+ viteServer.httpServer?.on('close', () => {
13
+ mockatonServer?.close()
14
+ })
15
+ },
16
+
17
+ async buildEnd() {
18
+ mockatonServer?.close()
19
+ }
20
+ }
21
+ }