vite-plugin-mock-dev-server 1.8.7 → 1.9.1

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.
@@ -1,21 +1,19 @@
1
- "use strict";
2
- const require_chunk = require('./chunk-BCwAaXi7.cjs');
3
- const __pengzhanbo_utils = require_chunk.__toESM(require("@pengzhanbo/utils"));
4
- const picocolors = require_chunk.__toESM(require("picocolors"));
5
- const node_fs = require_chunk.__toESM(require("node:fs"));
6
- const node_path = require_chunk.__toESM(require("node:path"));
7
- const node_url = require_chunk.__toESM(require("node:url"));
8
- const node_os = require_chunk.__toESM(require("node:os"));
9
- const node_querystring = require_chunk.__toESM(require("node:querystring"));
10
- const debug = require_chunk.__toESM(require("debug"));
11
- const path_to_regexp = require_chunk.__toESM(require("path-to-regexp"));
12
- const node_buffer = require_chunk.__toESM(require("node:buffer"));
13
- const cookies = require_chunk.__toESM(require("cookies"));
14
- const http_status = require_chunk.__toESM(require("http-status"));
15
- const mime_types = require_chunk.__toESM(require("mime-types"));
16
- const co_body = require_chunk.__toESM(require("co-body"));
17
- const formidable = require_chunk.__toESM(require("formidable"));
18
- const ws = require_chunk.__toESM(require("ws"));
1
+ const require_dist = require('./dist-DrfpZ4UT.cjs');
2
+ const picocolors = require_dist.__toESM(require("picocolors"));
3
+ const node_fs = require_dist.__toESM(require("node:fs"));
4
+ const node_path = require_dist.__toESM(require("node:path"));
5
+ const node_url = require_dist.__toESM(require("node:url"));
6
+ const node_os = require_dist.__toESM(require("node:os"));
7
+ const node_querystring = require_dist.__toESM(require("node:querystring"));
8
+ const debug = require_dist.__toESM(require("debug"));
9
+ const path_to_regexp = require_dist.__toESM(require("path-to-regexp"));
10
+ const node_buffer = require_dist.__toESM(require("node:buffer"));
11
+ const cookies = require_dist.__toESM(require("cookies"));
12
+ const http_status = require_dist.__toESM(require("http-status"));
13
+ const mime_types = require_dist.__toESM(require("mime-types"));
14
+ const co_body = require_dist.__toESM(require("co-body"));
15
+ const formidable = require_dist.__toESM(require("formidable"));
16
+ const ws = require_dist.__toESM(require("ws"));
19
17
 
20
18
  //#region src/core/utils.ts
21
19
  function isStream(stream) {
@@ -85,7 +83,7 @@ function getTokens(rule) {
85
83
  if (tokensCache[rule]) return tokensCache[rule];
86
84
  const tks = (0, path_to_regexp.parse)(rule);
87
85
  const tokens = [];
88
- for (const tk of tks) if (!(0, __pengzhanbo_utils.isString)(tk)) tokens.push(tk);
86
+ for (const tk of tks) if (!require_dist.isString(tk)) tokens.push(tk);
89
87
  else {
90
88
  const hasPrefix = tk[0] === "/";
91
89
  const subTks = hasPrefix ? tk.slice(1).split("/") : tk.split("/");
@@ -104,7 +102,7 @@ function sortFn(rule) {
104
102
  let w = 0;
105
103
  for (let i = 0; i < tokens.length; i++) {
106
104
  const token = tokens[i];
107
- if (!(0, __pengzhanbo_utils.isString)(token)) w += 10 ** (i + 1);
105
+ if (!require_dist.isString(token)) w += 10 ** (i + 1);
108
106
  w += 10 ** (i + 1);
109
107
  }
110
108
  return w;
@@ -118,12 +116,12 @@ function preSort(rules) {
118
116
  if (!preMatch[len]) preMatch[len] = [];
119
117
  preMatch[len].push(rule);
120
118
  }
121
- for (const match$1 of preMatch.filter((v) => v && v.length > 0)) matched = [...matched, ...(0, __pengzhanbo_utils.sortBy)(match$1, sortFn).reverse()];
119
+ for (const match$1 of preMatch.filter((v) => v && v.length > 0)) matched = [...matched, ...require_dist.sortBy(match$1, sortFn).reverse()];
122
120
  return matched;
123
121
  }
124
122
  function defaultPriority(rules) {
125
123
  const highest = getHighest(rules);
126
- return (0, __pengzhanbo_utils.sortBy)(rules, (rule) => {
124
+ return require_dist.sortBy(rules, (rule) => {
127
125
  const tokens = getTokens(rule);
128
126
  const dym = tokens.filter((token) => typeof token !== "string");
129
127
  if (dym.length === 0) return 0;
@@ -131,11 +129,11 @@ function defaultPriority(rules) {
131
129
  let exp = 0;
132
130
  for (let i = 0; i < tokens.length; i++) {
133
131
  const token = tokens[i];
134
- const isDynamic = !(0, __pengzhanbo_utils.isString)(token);
132
+ const isDynamic = !require_dist.isString(token);
135
133
  const { pattern = "", modifier, prefix, name } = isDynamic ? token : {};
136
134
  const isGlob = pattern && pattern.includes(".*");
137
135
  const isSlash = prefix === "/";
138
- const isNamed = (0, __pengzhanbo_utils.isString)(name);
136
+ const isNamed = require_dist.isString(name);
139
137
  exp += isDynamic && isSlash ? 1 : 0;
140
138
  if (i === tokens.length - 1 && isGlob) weight += 5 * 10 ** (tokens.length === 1 ? highest + 1 : highest);
141
139
  else if (isGlob) weight += 3 * 10 ** (highest - 1);
@@ -151,24 +149,24 @@ function defaultPriority(rules) {
151
149
  function matchingWeight(rules, url, priority) {
152
150
  let matched = defaultPriority(preSort(rules.filter((rule) => (0, path_to_regexp.pathToRegexp)(rule).test(url))));
153
151
  const { global = [], special = {} } = priority;
154
- if (global.length === 0 && (0, __pengzhanbo_utils.isEmptyObject)(special) || matched.length === 0) return matched;
152
+ if (global.length === 0 && require_dist.isEmptyObject(special) || matched.length === 0) return matched;
155
153
  const [statics, dynamics] = twoPartMatch(matched);
156
154
  const globalMatch = global.filter((rule) => dynamics.includes(rule));
157
- if (globalMatch.length > 0) matched = (0, __pengzhanbo_utils.uniq)([
155
+ if (globalMatch.length > 0) matched = require_dist.uniq([
158
156
  ...statics,
159
157
  ...globalMatch,
160
158
  ...dynamics
161
159
  ]);
162
- if ((0, __pengzhanbo_utils.isEmptyObject)(special)) return matched;
160
+ if (require_dist.isEmptyObject(special)) return matched;
163
161
  const specialRule = Object.keys(special).filter((rule) => matched.includes(rule))[0];
164
162
  if (!specialRule) return matched;
165
163
  const options = special[specialRule];
166
- const { rules: lowerRules, when } = (0, __pengzhanbo_utils.isArray)(options) ? {
164
+ const { rules: lowerRules, when } = require_dist.isArray(options) ? {
167
165
  rules: options,
168
166
  when: []
169
167
  } : options;
170
168
  if (lowerRules.includes(matched[0])) {
171
- if (when.length === 0 || when.some((path$1) => (0, path_to_regexp.pathToRegexp)(path$1).test(url))) matched = (0, __pengzhanbo_utils.uniq)([specialRule, ...matched]);
169
+ if (when.length === 0 || when.some((path$1) => (0, path_to_regexp.pathToRegexp)(path$1).test(url))) matched = require_dist.uniq([specialRule, ...matched]);
172
170
  }
173
171
  return matched;
174
172
  }
@@ -186,6 +184,12 @@ function twoPartMatch(rules) {
186
184
 
187
185
  //#endregion
188
186
  //#region src/core/parseReqBody.ts
187
+ const DEFAULT_FORMIDABLE_OPTIONS = {
188
+ keepExtensions: true,
189
+ filename(name, ext, part) {
190
+ return part?.originalFilename || `${name}.${Date.now()}${ext ? `.${ext}` : ""}`;
191
+ }
192
+ };
189
193
  async function parseReqBody(req, formidableOptions, bodyParserOptions = {}) {
190
194
  const method = req.method.toUpperCase();
191
195
  if (["HEAD", "OPTIONS"].includes(method)) return void 0;
@@ -211,7 +215,10 @@ async function parseReqBody(req, formidableOptions, bodyParserOptions = {}) {
211
215
  return void 0;
212
216
  }
213
217
  async function parseMultipart(req, options) {
214
- const form = (0, formidable.default)(options);
218
+ const form = (0, formidable.default)({
219
+ ...DEFAULT_FORMIDABLE_OPTIONS,
220
+ ...options
221
+ });
215
222
  return new Promise((resolve, reject) => {
216
223
  form.parse(req, (error, fields, files) => {
217
224
  if (error) {
@@ -228,7 +235,7 @@ async function parseMultipart(req, options) {
228
235
 
229
236
  //#endregion
230
237
  //#region src/core/requestRecovery.ts
231
- const cache = new WeakMap();
238
+ const cache = /* @__PURE__ */ new WeakMap();
232
239
  function collectRequest(req) {
233
240
  const chunks = [];
234
241
  req.addListener("data", (chunk) => {
@@ -289,8 +296,8 @@ function isObjectSubset(source, target) {
289
296
  return true;
290
297
  }
291
298
  function isIncluded(source, target) {
292
- if ((0, __pengzhanbo_utils.isArray)(source) && (0, __pengzhanbo_utils.isArray)(target)) {
293
- const seen = new Set();
299
+ if (require_dist.isArray(source) && require_dist.isArray(target)) {
300
+ const seen = /* @__PURE__ */ new Set();
294
301
  return target.every((ti) => source.some((si, i) => {
295
302
  if (seen.has(i)) return false;
296
303
  const included = isIncluded(si, ti);
@@ -298,7 +305,7 @@ function isIncluded(source, target) {
298
305
  return included;
299
306
  }));
300
307
  }
301
- if ((0, __pengzhanbo_utils.isPlainObject)(source) && (0, __pengzhanbo_utils.isPlainObject)(target)) return isObjectSubset(source, target);
308
+ if (require_dist.isPlainObject(source) && require_dist.isPlainObject(target)) return isObjectSubset(source, target);
302
309
  return Object.is(source, target);
303
310
  }
304
311
 
@@ -306,7 +313,7 @@ function isIncluded(source, target) {
306
313
  //#region src/core/baseMiddleware.ts
307
314
  function baseMiddleware(compiler, { formidableOptions = {}, bodyParserOptions = {}, proxies, cookiesOptions, logger, priority = {} }) {
308
315
  return async function(req, res, next) {
309
- const startTime = (0, __pengzhanbo_utils.timestamp)();
316
+ const startTime = require_dist.timestamp();
310
317
  const { query, pathname } = urlParse(req.url);
311
318
  if (!pathname || proxies.length === 0 || !proxies.some((context) => doesProxyContextMatchUrl(context, req.url))) return next();
312
319
  const mockData = compiler.mockData;
@@ -358,7 +365,7 @@ function baseMiddleware(compiler, { formidableOptions = {}, bodyParserOptions =
358
365
  logger.debug(`${picocolors.default.magenta("DEBUG")} ${picocolors.default.underline(pathname)} matches: [ ${mockUrls.map((m) => m === _mockUrl ? picocolors.default.underline(picocolors.default.bold(m)) : picocolors.default.dim(m)).join(", ")} ]\n`);
359
366
  if (body) {
360
367
  try {
361
- const content = (0, __pengzhanbo_utils.isFunction)(body) ? await body(request) : body;
368
+ const content = require_dist.isFunction(body) ? await body(request) : body;
362
369
  await realDelay(startTime, delay);
363
370
  sendData(response, content, type);
364
371
  } catch (e) {
@@ -385,12 +392,12 @@ function baseMiddleware(compiler, { formidableOptions = {}, bodyParserOptions =
385
392
  function fineMock(mockList, logger, { pathname, method, request }) {
386
393
  return mockList.find((mock) => {
387
394
  if (!pathname || !mock || !mock.url || mock.ws === true) return false;
388
- const methods = mock.method ? (0, __pengzhanbo_utils.isArray)(mock.method) ? mock.method : [mock.method] : ["GET", "POST"];
395
+ const methods = mock.method ? require_dist.isArray(mock.method) ? mock.method : [mock.method] : ["GET", "POST"];
389
396
  if (!methods.includes(method)) return false;
390
397
  const hasMock = (0, path_to_regexp.pathToRegexp)(mock.url).test(pathname);
391
398
  if (hasMock && mock.validator) {
392
399
  const params = parseParams(mock.url, pathname);
393
- if ((0, __pengzhanbo_utils.isFunction)(mock.validator)) return mock.validator({
400
+ if (require_dist.isFunction(mock.validator)) return mock.validator({
394
401
  params,
395
402
  ...request
396
403
  });
@@ -422,7 +429,7 @@ async function provideHeaders(req, res, mock, logger) {
422
429
  if (filepath) res.setHeader("X-File-Path", filepath);
423
430
  if (!headers) return;
424
431
  try {
425
- const raw = (0, __pengzhanbo_utils.isFunction)(headers) ? await headers(req) : headers;
432
+ const raw = require_dist.isFunction(headers) ? await headers(req) : headers;
426
433
  Object.keys(raw).forEach((key) => {
427
434
  res.setHeader(key, raw[key]);
428
435
  });
@@ -435,10 +442,10 @@ async function provideCookies(req, res, mock, logger) {
435
442
  const filepath = mock.__filepath__;
436
443
  if (!cookies$1) return;
437
444
  try {
438
- const raw = (0, __pengzhanbo_utils.isFunction)(cookies$1) ? await cookies$1(req) : cookies$1;
445
+ const raw = require_dist.isFunction(cookies$1) ? await cookies$1(req) : cookies$1;
439
446
  Object.keys(raw).forEach((key) => {
440
447
  const cookie = raw[key];
441
- if ((0, __pengzhanbo_utils.isArray)(cookie)) {
448
+ if (require_dist.isArray(cookie)) {
442
449
  const [value, options] = cookie;
443
450
  res.setCookie(key, value, options);
444
451
  } else res.setCookie(key, cookie);
@@ -456,13 +463,13 @@ function sendData(res, raw, type) {
456
463
  }
457
464
  }
458
465
  async function realDelay(startTime, delay) {
459
- if (!delay || typeof delay === "number" && delay <= 0 || (0, __pengzhanbo_utils.isArray)(delay) && delay.length !== 2) return;
466
+ if (!delay || typeof delay === "number" && delay <= 0 || require_dist.isArray(delay) && delay.length !== 2) return;
460
467
  let realDelay$1 = 0;
461
- if ((0, __pengzhanbo_utils.isArray)(delay)) {
468
+ if (require_dist.isArray(delay)) {
462
469
  const [min, max] = delay;
463
- realDelay$1 = (0, __pengzhanbo_utils.random)(min, max);
464
- } else realDelay$1 = delay - ((0, __pengzhanbo_utils.timestamp)() - startTime);
465
- if (realDelay$1 > 0) await (0, __pengzhanbo_utils.sleep)(realDelay$1);
470
+ realDelay$1 = require_dist.random(min, max);
471
+ } else realDelay$1 = delay - (require_dist.timestamp() - startTime);
472
+ if (realDelay$1 > 0) await require_dist.sleep(realDelay$1);
466
473
  }
467
474
  function getHTTPStatusText(status) {
468
475
  return http_status.default[status] || "Unknown";
@@ -472,7 +479,7 @@ function requestLog(request, filepath) {
472
479
  let { pathname } = new URL(url, "http://example.com");
473
480
  pathname = picocolors.default.green(decodeURIComponent(pathname));
474
481
  const format = (prefix, data) => {
475
- return !data || (0, __pengzhanbo_utils.isEmptyObject)(data) ? "" : ` ${picocolors.default.gray(`${prefix}:`)}${JSON.stringify(data)}`;
482
+ return !data || require_dist.isEmptyObject(data) ? "" : ` ${picocolors.default.gray(`${prefix}:`)}${JSON.stringify(data)}`;
476
483
  };
477
484
  const ms = picocolors.default.magenta(picocolors.default.bold(method));
478
485
  const qs = format("query", query);
@@ -486,7 +493,7 @@ function requestLog(request, filepath) {
486
493
  //#region src/core/transform.ts
487
494
  function transformRawData(raw, __filepath__) {
488
495
  let mockConfig;
489
- if ((0, __pengzhanbo_utils.isArray)(raw)) mockConfig = raw.map((item) => ({
496
+ if (require_dist.isArray(raw)) mockConfig = raw.map((item) => ({
490
497
  ...item,
491
498
  __filepath__
492
499
  }));
@@ -498,7 +505,7 @@ function transformRawData(raw, __filepath__) {
498
505
  mockConfig = [];
499
506
  Object.keys(raw).forEach((key) => {
500
507
  const data = raw[key];
501
- if ((0, __pengzhanbo_utils.isArray)(data)) mockConfig.push(...data.map((item) => ({
508
+ if (require_dist.isArray(data)) mockConfig.push(...data.map((item) => ({
502
509
  ...item,
503
510
  __filepath__
504
511
  })));
@@ -512,9 +519,9 @@ function transformRawData(raw, __filepath__) {
512
519
  }
513
520
  function transformMockData(mockList) {
514
521
  const list = [];
515
- for (const [, handle] of mockList.entries()) if (handle) list.push(...(0, __pengzhanbo_utils.toArray)(handle));
522
+ for (const [, handle] of mockList.entries()) if (handle) list.push(...require_dist.toArray(handle));
516
523
  const mocks = {};
517
- list.filter((mock) => (0, __pengzhanbo_utils.isPlainObject)(mock) && mock.enabled !== false && mock.url).forEach((mock) => {
524
+ list.filter((mock) => require_dist.isPlainObject(mock) && mock.enabled !== false && mock.url).forEach((mock) => {
518
525
  const { pathname, query } = urlParse(mock.url);
519
526
  const list$1 = mocks[pathname] ??= [];
520
527
  const current = {
@@ -523,7 +530,7 @@ function transformMockData(mockList) {
523
530
  };
524
531
  if (current.ws !== true) {
525
532
  const validator = current.validator;
526
- if (!(0, __pengzhanbo_utils.isEmptyObject)(query)) if ((0, __pengzhanbo_utils.isFunction)(validator)) current.validator = function(request) {
533
+ if (!require_dist.isEmptyObject(query)) if (require_dist.isFunction(validator)) current.validator = function(request) {
527
534
  return isObjectSubset(request.query, query) && validator(request);
528
535
  };
529
536
  else if (validator) {
@@ -542,11 +549,11 @@ function transformMockData(mockList) {
542
549
  return mocks;
543
550
  }
544
551
  function sortByValidator(mocks) {
545
- return (0, __pengzhanbo_utils.sortBy)(mocks, (item) => {
552
+ return require_dist.sortBy(mocks, (item) => {
546
553
  if (item.ws === true) return 0;
547
554
  const { validator } = item;
548
- if (!validator || (0, __pengzhanbo_utils.isEmptyObject)(validator)) return 2;
549
- if ((0, __pengzhanbo_utils.isFunction)(validator)) return 0;
555
+ if (!validator || require_dist.isEmptyObject(validator)) return 2;
556
+ if (require_dist.isFunction(validator)) return 0;
550
557
  const count = Object.keys(validator).reduce((prev, key) => prev + keysCount(validator[key]), 0);
551
558
  return 1 / count;
552
559
  });
@@ -562,12 +569,12 @@ function keysCount(obj) {
562
569
  * mock websocket
563
570
  */
564
571
  function mockWebSocket(compiler, server, { wsProxies: proxies, cookiesOptions, logger }) {
565
- const hmrMap = new Map();
566
- const poolMap = new Map();
567
- const wssContextMap = new WeakMap();
572
+ const hmrMap = /* @__PURE__ */ new Map();
573
+ const poolMap = /* @__PURE__ */ new Map();
574
+ const wssContextMap = /* @__PURE__ */ new WeakMap();
568
575
  const getWssMap = (mockUrl) => {
569
576
  let wssMap = poolMap.get(mockUrl);
570
- if (!wssMap) poolMap.set(mockUrl, wssMap = new Map());
577
+ if (!wssMap) poolMap.set(mockUrl, wssMap = /* @__PURE__ */ new Map());
571
578
  return wssMap;
572
579
  };
573
580
  const getWss = (wssMap, pathname) => {
@@ -577,7 +584,7 @@ function mockWebSocket(compiler, server, { wsProxies: proxies, cookiesOptions, l
577
584
  };
578
585
  const addHmr = (filepath, mockUrl) => {
579
586
  let urlList = hmrMap.get(filepath);
580
- if (!urlList) hmrMap.set(filepath, urlList = new Set());
587
+ if (!urlList) hmrMap.set(filepath, urlList = /* @__PURE__ */ new Set());
581
588
  urlList.add(mockUrl);
582
589
  };
583
590
  const setupWss = (wssMap, wss, mock, context, pathname, filepath) => {
@@ -690,12 +697,12 @@ const logLevels = {
690
697
  function createLogger(prefix, defaultLevel = "info") {
691
698
  prefix = `[${prefix}]`;
692
699
  function output(type, msg, level) {
693
- level = (0, __pengzhanbo_utils.isBoolean)(level) ? level ? defaultLevel : "error" : level;
700
+ level = require_dist.isBoolean(level) ? level ? defaultLevel : "error" : level;
694
701
  const thresh = logLevels[level];
695
702
  if (thresh >= logLevels[type]) {
696
703
  const method = type === "info" || type === "debug" ? "log" : type;
697
704
  const tag = type === "debug" ? picocolors.default.magenta(picocolors.default.bold(prefix)) : type === "info" ? picocolors.default.cyan(picocolors.default.bold(prefix)) : type === "warn" ? picocolors.default.yellow(picocolors.default.bold(prefix)) : picocolors.default.red(picocolors.default.bold(prefix));
698
- const format = `${picocolors.default.dim(new Date().toLocaleTimeString())} ${tag} ${msg}`;
705
+ const format = `${picocolors.default.dim((/* @__PURE__ */ new Date()).toLocaleTimeString())} ${tag} ${msg}`;
699
706
  console[method](format);
700
707
  }
701
708
  }
@@ -1,4 +1,4 @@
1
- import { isArray, isBoolean, isEmptyObject, isFunction, isPlainObject, isString, random, sleep, sortBy, timestamp, toArray, uniq } from "@pengzhanbo/utils";
1
+ import { isArray, isBoolean, isEmptyObject, isFunction, isPlainObject, isString, random, sleep, sortBy, timestamp, toArray, uniq } from "./dist-CAA1v47s.js";
2
2
  import pc from "picocolors";
3
3
  import fs from "node:fs";
4
4
  import path from "node:path";
@@ -184,6 +184,12 @@ function twoPartMatch(rules) {
184
184
 
185
185
  //#endregion
186
186
  //#region src/core/parseReqBody.ts
187
+ const DEFAULT_FORMIDABLE_OPTIONS = {
188
+ keepExtensions: true,
189
+ filename(name, ext, part) {
190
+ return part?.originalFilename || `${name}.${Date.now()}${ext ? `.${ext}` : ""}`;
191
+ }
192
+ };
187
193
  async function parseReqBody(req, formidableOptions, bodyParserOptions = {}) {
188
194
  const method = req.method.toUpperCase();
189
195
  if (["HEAD", "OPTIONS"].includes(method)) return void 0;
@@ -209,7 +215,10 @@ async function parseReqBody(req, formidableOptions, bodyParserOptions = {}) {
209
215
  return void 0;
210
216
  }
211
217
  async function parseMultipart(req, options) {
212
- const form = formidable(options);
218
+ const form = formidable({
219
+ ...DEFAULT_FORMIDABLE_OPTIONS,
220
+ ...options
221
+ });
213
222
  return new Promise((resolve, reject) => {
214
223
  form.parse(req, (error, fields, files) => {
215
224
  if (error) {
@@ -226,7 +235,7 @@ async function parseMultipart(req, options) {
226
235
 
227
236
  //#endregion
228
237
  //#region src/core/requestRecovery.ts
229
- const cache = new WeakMap();
238
+ const cache = /* @__PURE__ */ new WeakMap();
230
239
  function collectRequest(req) {
231
240
  const chunks = [];
232
241
  req.addListener("data", (chunk) => {
@@ -288,7 +297,7 @@ function isObjectSubset(source, target) {
288
297
  }
289
298
  function isIncluded(source, target) {
290
299
  if (isArray(source) && isArray(target)) {
291
- const seen = new Set();
300
+ const seen = /* @__PURE__ */ new Set();
292
301
  return target.every((ti) => source.some((si, i) => {
293
302
  if (seen.has(i)) return false;
294
303
  const included = isIncluded(si, ti);
@@ -560,12 +569,12 @@ function keysCount(obj) {
560
569
  * mock websocket
561
570
  */
562
571
  function mockWebSocket(compiler, server, { wsProxies: proxies, cookiesOptions, logger }) {
563
- const hmrMap = new Map();
564
- const poolMap = new Map();
565
- const wssContextMap = new WeakMap();
572
+ const hmrMap = /* @__PURE__ */ new Map();
573
+ const poolMap = /* @__PURE__ */ new Map();
574
+ const wssContextMap = /* @__PURE__ */ new WeakMap();
566
575
  const getWssMap = (mockUrl) => {
567
576
  let wssMap = poolMap.get(mockUrl);
568
- if (!wssMap) poolMap.set(mockUrl, wssMap = new Map());
577
+ if (!wssMap) poolMap.set(mockUrl, wssMap = /* @__PURE__ */ new Map());
569
578
  return wssMap;
570
579
  };
571
580
  const getWss = (wssMap, pathname) => {
@@ -575,7 +584,7 @@ function mockWebSocket(compiler, server, { wsProxies: proxies, cookiesOptions, l
575
584
  };
576
585
  const addHmr = (filepath, mockUrl) => {
577
586
  let urlList = hmrMap.get(filepath);
578
- if (!urlList) hmrMap.set(filepath, urlList = new Set());
587
+ if (!urlList) hmrMap.set(filepath, urlList = /* @__PURE__ */ new Set());
579
588
  urlList.add(mockUrl);
580
589
  };
581
590
  const setupWss = (wssMap, wss, mock, context, pathname, filepath) => {
@@ -693,7 +702,7 @@ function createLogger(prefix, defaultLevel = "info") {
693
702
  if (thresh >= logLevels[type]) {
694
703
  const method = type === "info" || type === "debug" ? "log" : type;
695
704
  const tag = type === "debug" ? pc.magenta(pc.bold(prefix)) : type === "info" ? pc.cyan(pc.bold(prefix)) : type === "warn" ? pc.yellow(pc.bold(prefix)) : pc.red(pc.bold(prefix));
696
- const format = `${pc.dim(new Date().toLocaleTimeString())} ${tag} ${msg}`;
705
+ const format = `${pc.dim((/* @__PURE__ */ new Date()).toLocaleTimeString())} ${tag} ${msg}`;
697
706
  console[method](format);
698
707
  }
699
708
  }
@@ -1,4 +1,4 @@
1
- import { LogLevel, MockHttpItem, MockOptions, MockServerPluginOptions, MockWebsocketItem, ServerBuildOption } from "./types-CxzZg47I.js";
1
+ import { LogLevel, MockHttpItem, MockOptions, MockServerPluginOptions, MockWebsocketItem, ServerBuildOption } from "./types-BbbTJG0b.js";
2
2
  import { CorsOptions } from "cors";
3
3
  import EventEmitter from "node:events";
4
4
  import { FSWatcher } from "chokidar";
@@ -15,7 +15,6 @@ interface Logger {
15
15
  }
16
16
  declare const logLevels: Record<LogLevel, number>;
17
17
  declare function createLogger(prefix: string, defaultLevel?: LogLevel): Logger;
18
-
19
18
  //#endregion
20
19
  //#region src/core/resolvePluginOptions.d.ts
21
20
  type ResolvedMockServerPluginOptions = Required<Omit<MockServerPluginOptions, "build" | "cors" | "wsPrefix" | "prefix">> & {
@@ -28,7 +27,6 @@ type ResolvedMockServerPluginOptions = Required<Omit<MockServerPluginOptions, "b
28
27
  build: false | ServerBuildOption;
29
28
  cors: false | CorsOptions;
30
29
  };
31
-
32
30
  //#endregion
33
31
  //#region src/core/mockCompiler.d.ts
34
32
  /**
@@ -57,7 +55,6 @@ declare class MockCompiler extends EventEmitter {
57
55
  private updateModuleDeps;
58
56
  private loadMock;
59
57
  }
60
-
61
58
  //#endregion
62
59
  //#region src/core/baseMiddleware.d.ts
63
60
  interface BaseMiddlewareOptions {
@@ -76,14 +73,12 @@ declare function baseMiddleware(compiler: MockCompiler, {
76
73
  logger,
77
74
  priority
78
75
  }: BaseMiddlewareOptions): Connect.NextHandleFunction;
79
-
80
76
  //#endregion
81
77
  //#region src/core/transform.d.ts
82
78
  type MockRawData = MockOptions | MockHttpItem | MockWebsocketItem | Record<string, MockOptions | MockHttpItem | MockWebsocketItem>;
83
79
  declare function transformRawData(raw: MockRawData, __filepath__: string): MockOptions | MockHttpItem | MockWebsocketItem;
84
80
  declare function transformMockData(mockList: Map<string, MockHttpItem | MockWebsocketItem | MockOptions> | (MockHttpItem | MockWebsocketItem | MockOptions)[]): Record<string, MockOptions>;
85
81
  declare function sortByValidator(mocks: MockOptions): (MockHttpItem | MockWebsocketItem)[];
86
-
87
82
  //#endregion
88
83
  //#region src/core/ws.d.ts
89
84
  /**
@@ -94,6 +89,5 @@ declare function mockWebSocket(compiler: MockCompiler, server: Server | Http2Sec
94
89
  cookiesOptions,
95
90
  logger
96
91
  }: ResolvedMockServerPluginOptions): void;
97
-
98
92
  //#endregion
99
- export { BaseMiddlewareOptions, Logger, baseMiddleware as baseMiddleware$1, createLogger as createLogger$1, logLevels as logLevels$1, mockWebSocket as mockWebSocket$1, sortByValidator as sortByValidator$1, transformMockData as transformMockData$1, transformRawData as transformRawData$1 };
93
+ export { BaseMiddlewareOptions, Logger, baseMiddleware, createLogger, logLevels, mockWebSocket, sortByValidator, transformMockData, transformRawData };
package/dist/server.cjs CHANGED
@@ -1,9 +1,10 @@
1
- const require_server = require('./server-03xFMgug.cjs');
1
+ require('./dist-DrfpZ4UT.cjs');
2
+ const require_server = require('./server-BwOfV_62.cjs');
2
3
 
3
- exports.baseMiddleware = require_server.baseMiddleware
4
- exports.createLogger = require_server.createLogger
5
- exports.logLevels = require_server.logLevels
6
- exports.mockWebSocket = require_server.mockWebSocket
7
- exports.sortByValidator = require_server.sortByValidator
8
- exports.transformMockData = require_server.transformMockData
9
- exports.transformRawData = require_server.transformRawData
4
+ exports.baseMiddleware = require_server.baseMiddleware;
5
+ exports.createLogger = require_server.createLogger;
6
+ exports.logLevels = require_server.logLevels;
7
+ exports.mockWebSocket = require_server.mockWebSocket;
8
+ exports.sortByValidator = require_server.sortByValidator;
9
+ exports.transformMockData = require_server.transformMockData;
10
+ exports.transformRawData = require_server.transformRawData;
package/dist/server.d.cts CHANGED
@@ -1,3 +1,3 @@
1
- import "./types-BdGI944Z.cjs";
2
- import { BaseMiddlewareOptions, Logger, baseMiddleware, createLogger, logLevels, mockWebSocket, sortByValidator, transformMockData, transformRawData } from "./server-CAGUKvhH.cjs";
1
+ import "./types-DpbHkRjL.cjs";
2
+ import { BaseMiddlewareOptions, Logger, baseMiddleware, createLogger, logLevels, mockWebSocket, sortByValidator, transformMockData, transformRawData } from "./server-B5Ua2cmP.cjs";
3
3
  export { BaseMiddlewareOptions, Logger, baseMiddleware, createLogger, logLevels, mockWebSocket, sortByValidator, transformMockData, transformRawData };
package/dist/server.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import "./types-CxzZg47I.js";
2
- import { BaseMiddlewareOptions, Logger, baseMiddleware$1 as baseMiddleware, createLogger$1 as createLogger, logLevels$1 as logLevels, mockWebSocket$1 as mockWebSocket, sortByValidator$1 as sortByValidator, transformMockData$1 as transformMockData, transformRawData$1 as transformRawData } from "./server-CXqFaG_J.js";
1
+ import "./types-BbbTJG0b.js";
2
+ import { BaseMiddlewareOptions, Logger, baseMiddleware, createLogger, logLevels, mockWebSocket, sortByValidator, transformMockData, transformRawData } from "./server-DgmHgcvl.js";
3
3
  export { BaseMiddlewareOptions, Logger, baseMiddleware, createLogger, logLevels, mockWebSocket, sortByValidator, transformMockData, transformRawData };
package/dist/server.js CHANGED
@@ -1,3 +1,4 @@
1
- import { baseMiddleware, createLogger, logLevels, mockWebSocket, sortByValidator, transformMockData, transformRawData } from "./server-C258ATX8.js";
1
+ import "./dist-CAA1v47s.js";
2
+ import { baseMiddleware, createLogger, logLevels, mockWebSocket, sortByValidator, transformMockData, transformRawData } from "./server-C-u7jwot.js";
2
3
 
3
4
  export { baseMiddleware, createLogger, logLevels, mockWebSocket, sortByValidator, transformMockData, transformRawData };
@@ -1,19 +1,15 @@
1
- import { Options } from "co-body";
2
- import Cookies from "cookies";
1
+ import { Readable } from "node:stream";
3
2
  import { CorsOptions } from "cors";
4
- import formidable from "formidable";
5
3
  import { Buffer } from "node:buffer";
4
+ import Cookies from "cookies";
5
+ import { Options } from "co-body";
6
+ import formidable from "formidable";
7
+ import { WebSocketServer } from "ws";
6
8
  import http from "node:http";
7
- import { Readable } from "node:stream";
8
9
  import { Connect } from "vite";
9
- import { WebSocketServer } from "ws";
10
10
 
11
11
  //#region src/types.d.ts
12
- /**
13
- * Configure plugin
14
- *
15
- * 插件配置项
16
- */
12
+
17
13
  /**
18
14
  * Configure plugin
19
15
  *
@@ -572,5 +568,6 @@ interface WebSocketSetupContext {
572
568
  type MockOptions = (MockHttpItem | MockWebsocketItem)[];
573
569
  type FormidableFile = formidable.File | formidable.File[];
574
570
  type LogType = "info" | "warn" | "error" | "debug";
575
- type LogLevel = LogType | "silent"; //#endregion
571
+ type LogLevel = LogType | "silent";
572
+ //#endregion
576
573
  export { FormidableFile, LogLevel, MockHttpItem, MockOptions, MockRequest, MockServerPluginOptions, MockWebsocketItem, ServerBuildOption };
@@ -1,19 +1,15 @@
1
- import { Readable } from "node:stream";
2
- import { CorsOptions } from "cors";
3
- import { Buffer } from "node:buffer";
4
- import Cookies from "cookies";
5
1
  import { Options } from "co-body";
2
+ import Cookies from "cookies";
3
+ import { CorsOptions } from "cors";
6
4
  import formidable from "formidable";
7
- import { WebSocketServer } from "ws";
5
+ import { Buffer } from "node:buffer";
8
6
  import http from "node:http";
7
+ import { Readable } from "node:stream";
9
8
  import { Connect } from "vite";
9
+ import { WebSocketServer } from "ws";
10
10
 
11
11
  //#region src/types.d.ts
12
- /**
13
- * Configure plugin
14
- *
15
- * 插件配置项
16
- */
12
+
17
13
  /**
18
14
  * Configure plugin
19
15
  *
@@ -572,5 +568,6 @@ interface WebSocketSetupContext {
572
568
  type MockOptions = (MockHttpItem | MockWebsocketItem)[];
573
569
  type FormidableFile = formidable.File | formidable.File[];
574
570
  type LogType = "info" | "warn" | "error" | "debug";
575
- type LogLevel = LogType | "silent"; //#endregion
571
+ type LogLevel = LogType | "silent";
572
+ //#endregion
576
573
  export { FormidableFile, LogLevel, MockHttpItem, MockOptions, MockRequest, MockServerPluginOptions, MockWebsocketItem, ServerBuildOption };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vite-plugin-mock-dev-server",
3
3
  "type": "module",
4
- "version": "1.8.7",
4
+ "version": "1.9.1",
5
5
  "author": "pengzhanbo <q942450674@outlook.com> (https://github.com/pengzhanbo)",
6
6
  "license": "MIT",
7
7
  "homepage": "https://vite-plugin-mock-dev-server.netlify.app",
@@ -68,15 +68,14 @@
68
68
  }
69
69
  },
70
70
  "dependencies": {
71
- "@pengzhanbo/utils": "^2.1.0",
72
- "@rollup/pluginutils": "^5.1.4",
71
+ "@rollup/pluginutils": "^5.2.0",
73
72
  "chokidar": "3.6.0",
74
73
  "co-body": "^6.2.0",
75
74
  "cookies": "^0.9.1",
76
75
  "cors": "^2.8.5",
77
- "debug": "^4.4.0",
76
+ "debug": "^4.4.1",
78
77
  "fast-glob": "^3.3.3",
79
- "formidable": "2.1.2",
78
+ "formidable": "3.5.4",
80
79
  "http-status": "^2.1.0",
81
80
  "is-core-module": "^2.16.1",
82
81
  "json5": "^2.2.3",
@@ -86,7 +85,8 @@
86
85
  "ws": "^8.18.2"
87
86
  },
88
87
  "devDependencies": {
89
- "esbuild": "^0.25.4",
88
+ "@pengzhanbo/utils": "^2.1.0",
89
+ "esbuild": "^0.25.5",
90
90
  "vite": "^6.3.5"
91
91
  },
92
92
  "publishConfig": {
@@ -1,31 +0,0 @@
1
- "use strict";
2
- //#region rolldown:runtime
3
- var __create = Object.create;
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getProtoOf = Object.getPrototypeOf;
8
- var __hasOwnProp = Object.prototype.hasOwnProperty;
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
11
- key = keys[i];
12
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
13
- get: ((k) => from[k]).bind(null, key),
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
20
- value: mod,
21
- enumerable: true
22
- }) : target, mod));
23
-
24
- //#endregion
25
-
26
- Object.defineProperty(exports, '__toESM', {
27
- enumerable: true,
28
- get: function () {
29
- return __toESM;
30
- }
31
- });