mokup 1.0.0 → 1.0.2

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.
package/dist/index.d.cts CHANGED
@@ -1,18 +1,17 @@
1
- import { MiddlewareHandler, Context } from '@mokup/shared/hono';
1
+ import { Context, MiddlewareHandler } from '@mokup/shared/hono';
2
+ export { Context, MiddlewareHandler } from '@mokup/shared/hono';
2
3
 
3
4
  type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
4
- type MockContext = Context;
5
- type MockMiddleware = MiddlewareHandler;
6
- type MockResponseHandler = (context: Context) => Response | Promise<Response> | unknown;
7
- type MockResponse = unknown | MockResponseHandler;
8
- interface MockRule {
9
- handler: MockResponse;
5
+ type RequestHandler = (context: Context) => Response | Promise<Response> | unknown;
6
+ type RouteResponse = unknown | RequestHandler;
7
+ interface RouteRule {
8
+ handler: RouteResponse;
10
9
  status?: number;
11
10
  headers?: Record<string, string>;
12
11
  delay?: number;
13
12
  }
14
- type MokupMockMode = 'server' | 'sw';
15
- interface MokupSwOptions {
13
+ type RuntimeMode = 'server' | 'sw';
14
+ interface ServiceWorkerOptions {
16
15
  path?: string;
17
16
  scope?: string;
18
17
  register?: boolean;
@@ -20,27 +19,27 @@ interface MokupSwOptions {
20
19
  fallback?: boolean;
21
20
  basePath?: string | string[];
22
21
  }
23
- interface DirectoryConfig {
22
+ interface RouteDirectoryConfig {
24
23
  headers?: Record<string, string>;
25
24
  status?: number;
26
25
  delay?: number;
27
26
  enabled?: boolean;
28
- middleware?: MockMiddleware | MockMiddleware[];
27
+ middleware?: MiddlewareHandler | MiddlewareHandler[];
29
28
  }
30
- interface MokupViteOptions {
29
+ interface VitePluginOptions {
31
30
  dir?: string | string[] | ((root: string) => string | string[]);
32
31
  prefix?: string;
33
32
  include?: RegExp | RegExp[];
34
33
  exclude?: RegExp | RegExp[];
35
34
  watch?: boolean;
36
35
  log?: boolean;
37
- mode?: MokupMockMode;
38
- sw?: MokupSwOptions;
36
+ mode?: RuntimeMode;
37
+ sw?: ServiceWorkerOptions;
39
38
  playground?: boolean | {
40
39
  path?: string;
41
40
  enabled?: boolean;
42
41
  };
43
42
  }
44
- type MokupViteOptionsInput = MokupViteOptions | MokupViteOptions[];
43
+ type VitePluginOptionsInput = VitePluginOptions | VitePluginOptions[];
45
44
 
46
- export type { DirectoryConfig, HttpMethod, MockContext, MockMiddleware, MockResponse, MockResponseHandler, MockRule, MokupMockMode, MokupSwOptions, MokupViteOptions, MokupViteOptionsInput };
45
+ export type { HttpMethod, RequestHandler, RouteDirectoryConfig, RouteResponse, RouteRule, RuntimeMode, ServiceWorkerOptions, VitePluginOptions, VitePluginOptionsInput };
package/dist/index.d.mts CHANGED
@@ -1,18 +1,17 @@
1
- import { MiddlewareHandler, Context } from '@mokup/shared/hono';
1
+ import { Context, MiddlewareHandler } from '@mokup/shared/hono';
2
+ export { Context, MiddlewareHandler } from '@mokup/shared/hono';
2
3
 
3
4
  type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
4
- type MockContext = Context;
5
- type MockMiddleware = MiddlewareHandler;
6
- type MockResponseHandler = (context: Context) => Response | Promise<Response> | unknown;
7
- type MockResponse = unknown | MockResponseHandler;
8
- interface MockRule {
9
- handler: MockResponse;
5
+ type RequestHandler = (context: Context) => Response | Promise<Response> | unknown;
6
+ type RouteResponse = unknown | RequestHandler;
7
+ interface RouteRule {
8
+ handler: RouteResponse;
10
9
  status?: number;
11
10
  headers?: Record<string, string>;
12
11
  delay?: number;
13
12
  }
14
- type MokupMockMode = 'server' | 'sw';
15
- interface MokupSwOptions {
13
+ type RuntimeMode = 'server' | 'sw';
14
+ interface ServiceWorkerOptions {
16
15
  path?: string;
17
16
  scope?: string;
18
17
  register?: boolean;
@@ -20,27 +19,27 @@ interface MokupSwOptions {
20
19
  fallback?: boolean;
21
20
  basePath?: string | string[];
22
21
  }
23
- interface DirectoryConfig {
22
+ interface RouteDirectoryConfig {
24
23
  headers?: Record<string, string>;
25
24
  status?: number;
26
25
  delay?: number;
27
26
  enabled?: boolean;
28
- middleware?: MockMiddleware | MockMiddleware[];
27
+ middleware?: MiddlewareHandler | MiddlewareHandler[];
29
28
  }
30
- interface MokupViteOptions {
29
+ interface VitePluginOptions {
31
30
  dir?: string | string[] | ((root: string) => string | string[]);
32
31
  prefix?: string;
33
32
  include?: RegExp | RegExp[];
34
33
  exclude?: RegExp | RegExp[];
35
34
  watch?: boolean;
36
35
  log?: boolean;
37
- mode?: MokupMockMode;
38
- sw?: MokupSwOptions;
36
+ mode?: RuntimeMode;
37
+ sw?: ServiceWorkerOptions;
39
38
  playground?: boolean | {
40
39
  path?: string;
41
40
  enabled?: boolean;
42
41
  };
43
42
  }
44
- type MokupViteOptionsInput = MokupViteOptions | MokupViteOptions[];
43
+ type VitePluginOptionsInput = VitePluginOptions | VitePluginOptions[];
45
44
 
46
- export type { DirectoryConfig, HttpMethod, MockContext, MockMiddleware, MockResponse, MockResponseHandler, MockRule, MokupMockMode, MokupSwOptions, MokupViteOptions, MokupViteOptionsInput };
45
+ export type { HttpMethod, RequestHandler, RouteDirectoryConfig, RouteResponse, RouteRule, RuntimeMode, ServiceWorkerOptions, VitePluginOptions, VitePluginOptionsInput };
package/dist/index.d.ts CHANGED
@@ -1,18 +1,17 @@
1
- import { MiddlewareHandler, Context } from '@mokup/shared/hono';
1
+ import { Context, MiddlewareHandler } from '@mokup/shared/hono';
2
+ export { Context, MiddlewareHandler } from '@mokup/shared/hono';
2
3
 
3
4
  type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
4
- type MockContext = Context;
5
- type MockMiddleware = MiddlewareHandler;
6
- type MockResponseHandler = (context: Context) => Response | Promise<Response> | unknown;
7
- type MockResponse = unknown | MockResponseHandler;
8
- interface MockRule {
9
- handler: MockResponse;
5
+ type RequestHandler = (context: Context) => Response | Promise<Response> | unknown;
6
+ type RouteResponse = unknown | RequestHandler;
7
+ interface RouteRule {
8
+ handler: RouteResponse;
10
9
  status?: number;
11
10
  headers?: Record<string, string>;
12
11
  delay?: number;
13
12
  }
14
- type MokupMockMode = 'server' | 'sw';
15
- interface MokupSwOptions {
13
+ type RuntimeMode = 'server' | 'sw';
14
+ interface ServiceWorkerOptions {
16
15
  path?: string;
17
16
  scope?: string;
18
17
  register?: boolean;
@@ -20,27 +19,27 @@ interface MokupSwOptions {
20
19
  fallback?: boolean;
21
20
  basePath?: string | string[];
22
21
  }
23
- interface DirectoryConfig {
22
+ interface RouteDirectoryConfig {
24
23
  headers?: Record<string, string>;
25
24
  status?: number;
26
25
  delay?: number;
27
26
  enabled?: boolean;
28
- middleware?: MockMiddleware | MockMiddleware[];
27
+ middleware?: MiddlewareHandler | MiddlewareHandler[];
29
28
  }
30
- interface MokupViteOptions {
29
+ interface VitePluginOptions {
31
30
  dir?: string | string[] | ((root: string) => string | string[]);
32
31
  prefix?: string;
33
32
  include?: RegExp | RegExp[];
34
33
  exclude?: RegExp | RegExp[];
35
34
  watch?: boolean;
36
35
  log?: boolean;
37
- mode?: MokupMockMode;
38
- sw?: MokupSwOptions;
36
+ mode?: RuntimeMode;
37
+ sw?: ServiceWorkerOptions;
39
38
  playground?: boolean | {
40
39
  path?: string;
41
40
  enabled?: boolean;
42
41
  };
43
42
  }
44
- type MokupViteOptionsInput = MokupViteOptions | MokupViteOptions[];
43
+ type VitePluginOptionsInput = VitePluginOptions | VitePluginOptions[];
45
44
 
46
- export type { DirectoryConfig, HttpMethod, MockContext, MockMiddleware, MockResponse, MockResponseHandler, MockRule, MokupMockMode, MokupSwOptions, MokupViteOptions, MokupViteOptionsInput };
45
+ export type { HttpMethod, RequestHandler, RouteDirectoryConfig, RouteResponse, RouteRule, RuntimeMode, ServiceWorkerOptions, VitePluginOptions, VitePluginOptionsInput };
@@ -159,6 +159,18 @@ function applyRouteOverrides(response, route) {
159
159
  }
160
160
  return new Response(response.body, { status, headers });
161
161
  }
162
+ function resolveResponse(value, fallback) {
163
+ if (value instanceof Response) {
164
+ return value;
165
+ }
166
+ if (value && typeof value === "object" && "res" in value) {
167
+ const resolved = value.res;
168
+ if (resolved instanceof Response) {
169
+ return resolved;
170
+ }
171
+ }
172
+ return fallback;
173
+ }
162
174
  function normalizeHandlerValue(c, value) {
163
175
  if (value instanceof Response) {
164
176
  return value;
@@ -194,17 +206,19 @@ function createRouteHandler(route) {
194
206
  function createFinalizeMiddleware(route) {
195
207
  return async (c, next) => {
196
208
  const response = await next();
197
- const resolved = response ?? c.res;
209
+ const resolved = resolveResponse(response, c.res);
198
210
  if (route.delay && route.delay > 0) {
199
211
  await delay(route.delay);
200
212
  }
201
- return applyRouteOverrides(resolved, route);
213
+ const overridden = applyRouteOverrides(resolved, route);
214
+ c.res = overridden;
215
+ return overridden;
202
216
  };
203
217
  }
204
218
  function wrapMiddleware(handler) {
205
219
  return async (c, next) => {
206
220
  const response = await handler(c, next);
207
- return response ?? c.res;
221
+ return resolveResponse(response, c.res);
208
222
  };
209
223
  }
210
224
  function createHonoApp(routes) {
@@ -162,6 +162,18 @@ function applyRouteOverrides(response, route) {
162
162
  }
163
163
  return new Response(response.body, { status, headers });
164
164
  }
165
+ function resolveResponse(value, fallback) {
166
+ if (value instanceof Response) {
167
+ return value;
168
+ }
169
+ if (value && typeof value === "object" && "res" in value) {
170
+ const resolved = value.res;
171
+ if (resolved instanceof Response) {
172
+ return resolved;
173
+ }
174
+ }
175
+ return fallback;
176
+ }
165
177
  function normalizeHandlerValue(c, value) {
166
178
  if (value instanceof Response) {
167
179
  return value;
@@ -197,17 +209,19 @@ function createRouteHandler(route) {
197
209
  function createFinalizeMiddleware(route) {
198
210
  return async (c, next) => {
199
211
  const response = await next();
200
- const resolved = response ?? c.res;
212
+ const resolved = resolveResponse(response, c.res);
201
213
  if (route.delay && route.delay > 0) {
202
214
  await delay(route.delay);
203
215
  }
204
- return applyRouteOverrides(resolved, route);
216
+ const overridden = applyRouteOverrides(resolved, route);
217
+ c.res = overridden;
218
+ return overridden;
205
219
  };
206
220
  }
207
221
  function wrapMiddleware(handler) {
208
222
  return async (c, next) => {
209
223
  const response = await handler(c, next);
210
- return response ?? c.res;
224
+ return resolveResponse(response, c.res);
211
225
  };
212
226
  }
213
227
  function createHonoApp(routes) {
@@ -322,7 +336,7 @@ function createMiddleware(getApp, logger) {
322
336
  };
323
337
  }
324
338
 
325
- const require$1 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('shared/mokup.zAF8ClCC.cjs', document.baseURI).href)));
339
+ const require$1 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('shared/mokup.Cvbs0IQE.cjs', document.baseURI).href)));
326
340
  const mimeTypes = {
327
341
  ".html": "text/html; charset=utf-8",
328
342
  ".css": "text/css; charset=utf-8",
@@ -740,7 +754,7 @@ const configExtensions = [".ts", ".js", ".mjs", ".cjs"];
740
754
  async function loadModule$1(file) {
741
755
  const ext = configExtensions.find((extension) => file.endsWith(extension));
742
756
  if (ext === ".cjs") {
743
- const require$1 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('shared/mokup.zAF8ClCC.cjs', document.baseURI).href)));
757
+ const require$1 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('shared/mokup.Cvbs0IQE.cjs', document.baseURI).href)));
744
758
  delete require$1.cache[file];
745
759
  return require$1(file);
746
760
  }
@@ -924,7 +938,7 @@ function isSupportedFile(file) {
924
938
  async function loadModule(file) {
925
939
  const ext = pathe.extname(file).toLowerCase();
926
940
  if (ext === ".cjs") {
927
- const require$1 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('shared/mokup.zAF8ClCC.cjs', document.baseURI).href)));
941
+ const require$1 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('shared/mokup.Cvbs0IQE.cjs', document.baseURI).href)));
928
942
  delete require$1.cache[file];
929
943
  return require$1(file);
930
944
  }
package/dist/sw.d.cts CHANGED
@@ -1,14 +1,14 @@
1
- interface MokupServiceWorkerOptions {
1
+ interface ServiceWorkerRegisterOptions {
2
2
  path?: string;
3
3
  scope?: string;
4
4
  enabled?: boolean;
5
5
  }
6
- interface MokupServiceWorkerUnregisterOptions {
6
+ interface ServiceWorkerUnregisterOptions {
7
7
  path?: string;
8
8
  scope?: string;
9
9
  }
10
- declare function registerMokupServiceWorker(options?: MokupServiceWorkerOptions): Promise<ServiceWorkerRegistration | null>;
11
- declare function unregisterMokupServiceWorker(options?: MokupServiceWorkerUnregisterOptions): Promise<ServiceWorkerRegistration[]>;
10
+ declare function registerMokupServiceWorker(options?: ServiceWorkerRegisterOptions): Promise<ServiceWorkerRegistration | null>;
11
+ declare function unregisterMokupServiceWorker(options?: ServiceWorkerUnregisterOptions): Promise<ServiceWorkerRegistration[]>;
12
12
 
13
13
  export { registerMokupServiceWorker, unregisterMokupServiceWorker };
14
- export type { MokupServiceWorkerOptions, MokupServiceWorkerUnregisterOptions };
14
+ export type { ServiceWorkerRegisterOptions, ServiceWorkerUnregisterOptions };
package/dist/sw.d.mts CHANGED
@@ -1,14 +1,14 @@
1
- interface MokupServiceWorkerOptions {
1
+ interface ServiceWorkerRegisterOptions {
2
2
  path?: string;
3
3
  scope?: string;
4
4
  enabled?: boolean;
5
5
  }
6
- interface MokupServiceWorkerUnregisterOptions {
6
+ interface ServiceWorkerUnregisterOptions {
7
7
  path?: string;
8
8
  scope?: string;
9
9
  }
10
- declare function registerMokupServiceWorker(options?: MokupServiceWorkerOptions): Promise<ServiceWorkerRegistration | null>;
11
- declare function unregisterMokupServiceWorker(options?: MokupServiceWorkerUnregisterOptions): Promise<ServiceWorkerRegistration[]>;
10
+ declare function registerMokupServiceWorker(options?: ServiceWorkerRegisterOptions): Promise<ServiceWorkerRegistration | null>;
11
+ declare function unregisterMokupServiceWorker(options?: ServiceWorkerUnregisterOptions): Promise<ServiceWorkerRegistration[]>;
12
12
 
13
13
  export { registerMokupServiceWorker, unregisterMokupServiceWorker };
14
- export type { MokupServiceWorkerOptions, MokupServiceWorkerUnregisterOptions };
14
+ export type { ServiceWorkerRegisterOptions, ServiceWorkerUnregisterOptions };
package/dist/sw.d.ts CHANGED
@@ -1,14 +1,14 @@
1
- interface MokupServiceWorkerOptions {
1
+ interface ServiceWorkerRegisterOptions {
2
2
  path?: string;
3
3
  scope?: string;
4
4
  enabled?: boolean;
5
5
  }
6
- interface MokupServiceWorkerUnregisterOptions {
6
+ interface ServiceWorkerUnregisterOptions {
7
7
  path?: string;
8
8
  scope?: string;
9
9
  }
10
- declare function registerMokupServiceWorker(options?: MokupServiceWorkerOptions): Promise<ServiceWorkerRegistration | null>;
11
- declare function unregisterMokupServiceWorker(options?: MokupServiceWorkerUnregisterOptions): Promise<ServiceWorkerRegistration[]>;
10
+ declare function registerMokupServiceWorker(options?: ServiceWorkerRegisterOptions): Promise<ServiceWorkerRegistration | null>;
11
+ declare function unregisterMokupServiceWorker(options?: ServiceWorkerUnregisterOptions): Promise<ServiceWorkerRegistration[]>;
12
12
 
13
13
  export { registerMokupServiceWorker, unregisterMokupServiceWorker };
14
- export type { MokupServiceWorkerOptions, MokupServiceWorkerUnregisterOptions };
14
+ export type { ServiceWorkerRegisterOptions, ServiceWorkerUnregisterOptions };
package/dist/vite.cjs CHANGED
@@ -4,7 +4,7 @@ const node_fs = require('node:fs');
4
4
  const process = require('node:process');
5
5
  const node_url = require('node:url');
6
6
  const chokidar = require('@mokup/shared/chokidar');
7
- const sw = require('./shared/mokup.zAF8ClCC.cjs');
7
+ const sw = require('./shared/mokup.Cvbs0IQE.cjs');
8
8
  require('node:buffer');
9
9
  require('@mokup/shared/hono');
10
10
  require('node:module');
@@ -328,7 +328,9 @@ function createMokupPlugin(options = {}) {
328
328
  if (swRoutes.length === 0) {
329
329
  await refreshRoutes(currentServer ?? void 0);
330
330
  }
331
- const script = buildSwLifecycleScript();
331
+ const script = buildSwLifecycleScript(
332
+ command === "build" ? void 0 : resolveSwImportPath(base)
333
+ );
332
334
  if (!script) {
333
335
  return html;
334
336
  }
@@ -459,11 +461,12 @@ function createMokupPlugin(options = {}) {
459
461
  return;
460
462
  }
461
463
  const dirs = resolveAllDirs();
462
- previewWatcher = chokidar__default.watch(dirs, { ignoreInitial: true });
464
+ const watcher = chokidar__default.watch(dirs, { ignoreInitial: true });
465
+ previewWatcher = watcher;
463
466
  const scheduleRefresh = sw.createDebouncer(80, () => refreshRoutes(server));
464
- previewWatcher.on("add", scheduleRefresh);
465
- previewWatcher.on("change", scheduleRefresh);
466
- previewWatcher.on("unlink", scheduleRefresh);
467
+ watcher.on("add", scheduleRefresh);
468
+ watcher.on("change", scheduleRefresh);
469
+ watcher.on("unlink", scheduleRefresh);
467
470
  server.httpServer?.once("close", () => {
468
471
  previewWatcher?.close();
469
472
  previewWatcher = null;
package/dist/vite.d.cts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { Plugin } from 'vite';
2
- import { MokupViteOptionsInput } from './index.cjs';
3
- export { DirectoryConfig, HttpMethod, MockContext, MockMiddleware, MockResponse, MockResponseHandler, MockRule, MokupMockMode, MokupSwOptions, MokupViteOptions } from './index.cjs';
4
- import '@mokup/shared/hono';
2
+ import { VitePluginOptionsInput } from './index.cjs';
3
+ export { HttpMethod, RequestHandler, RouteDirectoryConfig, RouteResponse, RouteRule, RuntimeMode, ServiceWorkerOptions, VitePluginOptions } from './index.cjs';
4
+ export { Context, MiddlewareHandler } from '@mokup/shared/hono';
5
5
 
6
- declare function createMokupPlugin(options?: MokupViteOptionsInput): Plugin;
6
+ declare function createMokupPlugin(options?: VitePluginOptionsInput): Plugin;
7
7
 
8
8
  // @ts-ignore
9
9
  export = createMokupPlugin;
10
- export { MokupViteOptionsInput };
10
+ export { VitePluginOptionsInput };
package/dist/vite.d.mts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { Plugin } from 'vite';
2
- import { MokupViteOptionsInput } from './index.mjs';
3
- export { DirectoryConfig, HttpMethod, MockContext, MockMiddleware, MockResponse, MockResponseHandler, MockRule, MokupMockMode, MokupSwOptions, MokupViteOptions } from './index.mjs';
4
- import '@mokup/shared/hono';
2
+ import { VitePluginOptionsInput } from './index.mjs';
3
+ export { HttpMethod, RequestHandler, RouteDirectoryConfig, RouteResponse, RouteRule, RuntimeMode, ServiceWorkerOptions, VitePluginOptions } from './index.mjs';
4
+ export { Context, MiddlewareHandler } from '@mokup/shared/hono';
5
5
 
6
- declare function createMokupPlugin(options?: MokupViteOptionsInput): Plugin;
6
+ declare function createMokupPlugin(options?: VitePluginOptionsInput): Plugin;
7
7
 
8
- export { MokupViteOptionsInput, createMokupPlugin as default };
8
+ export { VitePluginOptionsInput, createMokupPlugin as default };
package/dist/vite.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { Plugin } from 'vite';
2
- import { MokupViteOptionsInput } from './index.js';
3
- export { DirectoryConfig, HttpMethod, MockContext, MockMiddleware, MockResponse, MockResponseHandler, MockRule, MokupMockMode, MokupSwOptions, MokupViteOptions } from './index.js';
4
- import '@mokup/shared/hono';
2
+ import { VitePluginOptionsInput } from './index.js';
3
+ export { HttpMethod, RequestHandler, RouteDirectoryConfig, RouteResponse, RouteRule, RuntimeMode, ServiceWorkerOptions, VitePluginOptions } from './index.js';
4
+ export { Context, MiddlewareHandler } from '@mokup/shared/hono';
5
5
 
6
- declare function createMokupPlugin(options?: MokupViteOptionsInput): Plugin;
6
+ declare function createMokupPlugin(options?: VitePluginOptionsInput): Plugin;
7
7
 
8
8
  // @ts-ignore
9
9
  export = createMokupPlugin;
10
- export { MokupViteOptionsInput };
10
+ export { VitePluginOptionsInput };
package/dist/vite.mjs CHANGED
@@ -2,7 +2,7 @@ import { existsSync } from 'node:fs';
2
2
  import { cwd } from 'node:process';
3
3
  import { fileURLToPath } from 'node:url';
4
4
  import chokidar from '@mokup/shared/chokidar';
5
- import { r as resolvePlaygroundOptions, a as resolveSwConfig, b as resolveSwUnregisterConfig, c as createPlaygroundMiddleware, d as buildSwScript, e as createLogger, f as createMiddleware, g as createDebouncer, i as isInDirs, h as resolveDirs, s as scanRoutes, j as sortRoutes, k as createHonoApp } from './shared/mokup.C6zZ8YEh.mjs';
5
+ import { r as resolvePlaygroundOptions, a as resolveSwConfig, b as resolveSwUnregisterConfig, c as createPlaygroundMiddleware, d as buildSwScript, e as createLogger, f as createMiddleware, g as createDebouncer, i as isInDirs, h as resolveDirs, s as scanRoutes, j as sortRoutes, k as createHonoApp } from './shared/mokup.BJg257y9.mjs';
6
6
  import 'node:buffer';
7
7
  import '@mokup/shared/hono';
8
8
  import 'node:module';
@@ -321,7 +321,9 @@ function createMokupPlugin(options = {}) {
321
321
  if (swRoutes.length === 0) {
322
322
  await refreshRoutes(currentServer ?? void 0);
323
323
  }
324
- const script = buildSwLifecycleScript();
324
+ const script = buildSwLifecycleScript(
325
+ command === "build" ? void 0 : resolveSwImportPath(base)
326
+ );
325
327
  if (!script) {
326
328
  return html;
327
329
  }
@@ -452,11 +454,12 @@ function createMokupPlugin(options = {}) {
452
454
  return;
453
455
  }
454
456
  const dirs = resolveAllDirs();
455
- previewWatcher = chokidar.watch(dirs, { ignoreInitial: true });
457
+ const watcher = chokidar.watch(dirs, { ignoreInitial: true });
458
+ previewWatcher = watcher;
456
459
  const scheduleRefresh = createDebouncer(80, () => refreshRoutes(server));
457
- previewWatcher.on("add", scheduleRefresh);
458
- previewWatcher.on("change", scheduleRefresh);
459
- previewWatcher.on("unlink", scheduleRefresh);
460
+ watcher.on("add", scheduleRefresh);
461
+ watcher.on("change", scheduleRefresh);
462
+ watcher.on("unlink", scheduleRefresh);
460
463
  server.httpServer?.once("close", () => {
461
464
  previewWatcher?.close();
462
465
  previewWatcher = null;
package/dist/webpack.cjs CHANGED
@@ -7,7 +7,7 @@ const process = require('node:process');
7
7
  const chokidar = require('@mokup/shared/chokidar');
8
8
  const esbuild = require('@mokup/shared/esbuild');
9
9
  const pathe = require('@mokup/shared/pathe');
10
- const sw = require('./shared/mokup.zAF8ClCC.cjs');
10
+ const sw = require('./shared/mokup.Cvbs0IQE.cjs');
11
11
  require('node:buffer');
12
12
  require('@mokup/shared/hono');
13
13
  require('node:fs');
@@ -411,7 +411,8 @@ function createMokupWebpackPlugin(options = {}) {
411
411
  );
412
412
  if (!watcher && watchEnabled) {
413
413
  const dirs = resolveAllDirs();
414
- watcher = chokidar__default.watch(dirs, { ignoreInitial: true });
414
+ const fsWatcher = chokidar__default.watch(dirs, { ignoreInitial: true });
415
+ watcher = fsWatcher;
415
416
  const scheduleRefresh = sw.createDebouncer(80, () => {
416
417
  void refreshRoutes().then(rebuildBundles).then(() => {
417
418
  if (watchingCompiler?.watching) {
@@ -421,17 +422,17 @@ function createMokupWebpackPlugin(options = {}) {
421
422
  logger.error("Failed to refresh mokup routes:", error);
422
423
  });
423
424
  });
424
- watcher.on("add", (file) => {
425
+ fsWatcher.on("add", (file) => {
425
426
  if (sw.isInDirs(file, dirs)) {
426
427
  scheduleRefresh();
427
428
  }
428
429
  });
429
- watcher.on("change", (file) => {
430
+ fsWatcher.on("change", (file) => {
430
431
  if (sw.isInDirs(file, dirs)) {
431
432
  scheduleRefresh();
432
433
  }
433
434
  });
434
- watcher.on("unlink", (file) => {
435
+ fsWatcher.on("unlink", (file) => {
435
436
  if (sw.isInDirs(file, dirs)) {
436
437
  scheduleRefresh();
437
438
  }
@@ -1,7 +1,7 @@
1
- import { MokupViteOptionsInput } from './index.cjs';
2
- export { DirectoryConfig, HttpMethod, MockContext, MockMiddleware, MockResponse, MockResponseHandler, MockRule, MokupMockMode, MokupSwOptions, MokupViteOptions } from './index.cjs';
1
+ import { VitePluginOptionsInput } from './index.cjs';
2
+ export { HttpMethod, RequestHandler, RouteDirectoryConfig, RouteResponse, RouteRule, RuntimeMode, ServiceWorkerOptions, VitePluginOptions } from './index.cjs';
3
3
  import { IncomingMessage, ServerResponse } from 'node:http';
4
- import '@mokup/shared/hono';
4
+ export { Context, MiddlewareHandler } from '@mokup/shared/hono';
5
5
 
6
6
  interface WebpackPluginInstance {
7
7
  apply: (compiler: WebpackCompiler) => void;
@@ -81,8 +81,8 @@ interface WebpackCompiler {
81
81
  };
82
82
  };
83
83
  }
84
- declare function createMokupWebpackPlugin(options?: MokupViteOptionsInput): WebpackPluginInstance;
84
+ declare function createMokupWebpackPlugin(options?: VitePluginOptionsInput): WebpackPluginInstance;
85
85
 
86
86
  // @ts-ignore
87
87
  export = createMokupWebpackPlugin;
88
- export { MokupViteOptionsInput, createMokupWebpackPlugin };
88
+ export { VitePluginOptionsInput, createMokupWebpackPlugin };
@@ -1,7 +1,7 @@
1
- import { MokupViteOptionsInput } from './index.mjs';
2
- export { DirectoryConfig, HttpMethod, MockContext, MockMiddleware, MockResponse, MockResponseHandler, MockRule, MokupMockMode, MokupSwOptions, MokupViteOptions } from './index.mjs';
1
+ import { VitePluginOptionsInput } from './index.mjs';
2
+ export { HttpMethod, RequestHandler, RouteDirectoryConfig, RouteResponse, RouteRule, RuntimeMode, ServiceWorkerOptions, VitePluginOptions } from './index.mjs';
3
3
  import { IncomingMessage, ServerResponse } from 'node:http';
4
- import '@mokup/shared/hono';
4
+ export { Context, MiddlewareHandler } from '@mokup/shared/hono';
5
5
 
6
6
  interface WebpackPluginInstance {
7
7
  apply: (compiler: WebpackCompiler) => void;
@@ -81,6 +81,6 @@ interface WebpackCompiler {
81
81
  };
82
82
  };
83
83
  }
84
- declare function createMokupWebpackPlugin(options?: MokupViteOptionsInput): WebpackPluginInstance;
84
+ declare function createMokupWebpackPlugin(options?: VitePluginOptionsInput): WebpackPluginInstance;
85
85
 
86
- export { MokupViteOptionsInput, createMokupWebpackPlugin, createMokupWebpackPlugin as default };
86
+ export { VitePluginOptionsInput, createMokupWebpackPlugin, createMokupWebpackPlugin as default };
package/dist/webpack.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { MokupViteOptionsInput } from './index.js';
2
- export { DirectoryConfig, HttpMethod, MockContext, MockMiddleware, MockResponse, MockResponseHandler, MockRule, MokupMockMode, MokupSwOptions, MokupViteOptions } from './index.js';
1
+ import { VitePluginOptionsInput } from './index.js';
2
+ export { HttpMethod, RequestHandler, RouteDirectoryConfig, RouteResponse, RouteRule, RuntimeMode, ServiceWorkerOptions, VitePluginOptions } from './index.js';
3
3
  import { IncomingMessage, ServerResponse } from 'node:http';
4
- import '@mokup/shared/hono';
4
+ export { Context, MiddlewareHandler } from '@mokup/shared/hono';
5
5
 
6
6
  interface WebpackPluginInstance {
7
7
  apply: (compiler: WebpackCompiler) => void;
@@ -81,8 +81,8 @@ interface WebpackCompiler {
81
81
  };
82
82
  };
83
83
  }
84
- declare function createMokupWebpackPlugin(options?: MokupViteOptionsInput): WebpackPluginInstance;
84
+ declare function createMokupWebpackPlugin(options?: VitePluginOptionsInput): WebpackPluginInstance;
85
85
 
86
86
  // @ts-ignore
87
87
  export = createMokupWebpackPlugin;
88
- export { MokupViteOptionsInput, createMokupWebpackPlugin };
88
+ export { VitePluginOptionsInput, createMokupWebpackPlugin };
package/dist/webpack.mjs CHANGED
@@ -3,7 +3,7 @@ import { cwd } from 'node:process';
3
3
  import chokidar from '@mokup/shared/chokidar';
4
4
  import { build } from '@mokup/shared/esbuild';
5
5
  import { isAbsolute, resolve } from '@mokup/shared/pathe';
6
- import { r as resolvePlaygroundOptions, a as resolveSwConfig, b as resolveSwUnregisterConfig, c as createPlaygroundMiddleware, e as createLogger, f as createMiddleware, i as isInDirs, g as createDebouncer, h as resolveDirs, s as scanRoutes, j as sortRoutes, k as createHonoApp, d as buildSwScript, t as toPosix } from './shared/mokup.C6zZ8YEh.mjs';
6
+ import { r as resolvePlaygroundOptions, a as resolveSwConfig, b as resolveSwUnregisterConfig, c as createPlaygroundMiddleware, e as createLogger, f as createMiddleware, i as isInDirs, g as createDebouncer, h as resolveDirs, s as scanRoutes, j as sortRoutes, k as createHonoApp, d as buildSwScript, t as toPosix } from './shared/mokup.BJg257y9.mjs';
7
7
  import 'node:buffer';
8
8
  import '@mokup/shared/hono';
9
9
  import 'node:fs';
@@ -402,7 +402,8 @@ function createMokupWebpackPlugin(options = {}) {
402
402
  );
403
403
  if (!watcher && watchEnabled) {
404
404
  const dirs = resolveAllDirs();
405
- watcher = chokidar.watch(dirs, { ignoreInitial: true });
405
+ const fsWatcher = chokidar.watch(dirs, { ignoreInitial: true });
406
+ watcher = fsWatcher;
406
407
  const scheduleRefresh = createDebouncer(80, () => {
407
408
  void refreshRoutes().then(rebuildBundles).then(() => {
408
409
  if (watchingCompiler?.watching) {
@@ -412,17 +413,17 @@ function createMokupWebpackPlugin(options = {}) {
412
413
  logger.error("Failed to refresh mokup routes:", error);
413
414
  });
414
415
  });
415
- watcher.on("add", (file) => {
416
+ fsWatcher.on("add", (file) => {
416
417
  if (isInDirs(file, dirs)) {
417
418
  scheduleRefresh();
418
419
  }
419
420
  });
420
- watcher.on("change", (file) => {
421
+ fsWatcher.on("change", (file) => {
421
422
  if (isInDirs(file, dirs)) {
422
423
  scheduleRefresh();
423
424
  }
424
425
  });
425
- watcher.on("unlink", (file) => {
426
+ fsWatcher.on("unlink", (file) => {
426
427
  if (isInDirs(file, dirs)) {
427
428
  scheduleRefresh();
428
429
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mokup",
3
3
  "type": "module",
4
- "version": "1.0.0",
4
+ "version": "1.0.2",
5
5
  "description": "Mock utilities and Vite plugin for mokup.",
6
6
  "license": "MIT",
7
7
  "homepage": "https://mokup.icebreaker.top",
@@ -81,11 +81,11 @@
81
81
  }
82
82
  },
83
83
  "dependencies": {
84
- "@mokup/cli": "0.3.0",
85
- "@mokup/playground": "0.0.4",
86
- "@mokup/runtime": "0.1.1",
87
- "@mokup/server": "1.0.0",
88
- "@mokup/shared": "0.1.0"
84
+ "@mokup/cli": "1.0.0",
85
+ "@mokup/playground": "0.0.6",
86
+ "@mokup/runtime": "1.0.0",
87
+ "@mokup/server": "1.0.2",
88
+ "@mokup/shared": "1.0.0"
89
89
  },
90
90
  "devDependencies": {
91
91
  "@types/node": "^25.0.9",