@mokup/shared 1.1.4 → 2.0.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 (142) hide show
  1. package/README.md +58 -0
  2. package/dist/chokidar.d.mts +3 -8
  3. package/dist/chokidar.d.ts +3 -9
  4. package/dist/chokidar.mjs +2 -1
  5. package/dist/chunk-_iGcCiPk.mjs +28 -0
  6. package/dist/{config-core.d.cts → config-core-dqVMz7on.d.mts} +3 -2
  7. package/dist/config-core-dqVMz7on.d.ts +5 -0
  8. package/dist/config-core.d.mts +2 -4
  9. package/dist/config-core.d.ts +2 -4
  10. package/dist/config-core.mjs +3 -2
  11. package/dist/config-utils-DFu0_9tl.d.mts +59 -0
  12. package/dist/config-utils-DFu0_9tl.d.ts +59 -0
  13. package/dist/config-utils.d.mts +3 -62
  14. package/dist/config-utils.d.ts +3 -62
  15. package/dist/config-utils.mjs +143 -159
  16. package/dist/define-config-CzB1-X1m.d.mts +20 -0
  17. package/dist/define-config-CzB1-X1m.d.ts +20 -0
  18. package/dist/define-config.d.mts +2 -20
  19. package/dist/define-config.d.ts +2 -20
  20. package/dist/define-config.mjs +146 -162
  21. package/dist/diagnostic-types-DqAzUbgn.d.mts +39 -0
  22. package/dist/diagnostic-types-DqAzUbgn.d.ts +39 -0
  23. package/dist/diagnostic-types.d.mts +2 -0
  24. package/dist/diagnostic-types.d.ts +2 -0
  25. package/dist/diagnostic-types.mjs +29 -0
  26. package/dist/diagnostics-C3QaEtqE.d.mts +101 -0
  27. package/dist/diagnostics-C3QaEtqE.d.ts +101 -0
  28. package/dist/diagnostics.d.mts +2 -0
  29. package/dist/diagnostics.d.ts +2 -0
  30. package/dist/diagnostics.mjs +129 -0
  31. package/dist/hono.d.mts +4 -3
  32. package/dist/hono.d.ts +4 -3
  33. package/dist/hono.mjs +4 -3
  34. package/dist/index-5prVUGOX.d.mts +113 -0
  35. package/dist/index-5prVUGOX.d.ts +113 -0
  36. package/dist/index.d.mts +13 -10
  37. package/dist/index.d.ts +13 -10
  38. package/dist/index.mjs +13 -18
  39. package/dist/jsonc-parser.d.mts +1 -1
  40. package/dist/jsonc-parser.d.ts +1 -1
  41. package/dist/jsonc-parser.mjs +8 -1
  42. package/dist/jsonc-utils-_Hs6a39T.d.mts +7 -0
  43. package/dist/jsonc-utils-_Hs6a39T.d.ts +7 -0
  44. package/dist/jsonc-utils.d.mts +2 -7
  45. package/dist/jsonc-utils.d.ts +2 -7
  46. package/dist/jsonc-utils.mjs +20 -20
  47. package/dist/load-rules-D_kCpu9I.d.mts +14 -0
  48. package/dist/load-rules-D_kCpu9I.d.ts +14 -0
  49. package/dist/load-rules.d.mts +2 -14
  50. package/dist/load-rules.d.ts +2 -14
  51. package/dist/load-rules.mjs +16 -34
  52. package/dist/logger-types-BbqYCr6j.d.mts +50 -0
  53. package/dist/logger-types-BbqYCr6j.d.ts +50 -0
  54. package/dist/logger.browser.d.mts +4 -3
  55. package/dist/logger.browser.d.ts +4 -3
  56. package/dist/logger.browser.mjs +49 -48
  57. package/dist/logger.d.mts +4 -3
  58. package/dist/logger.d.ts +4 -3
  59. package/dist/logger.mjs +49 -48
  60. package/dist/{mock-files.d.cts → mock-files-DfGigWmY.d.mts} +5 -5
  61. package/dist/mock-files-DfGigWmY.d.ts +10 -0
  62. package/dist/mock-files.d.mts +2 -10
  63. package/dist/mock-files.d.ts +2 -10
  64. package/dist/mock-files.mjs +38 -50
  65. package/dist/{module-loader.d.cts → module-loader-nAQlwo3D.d.mts} +7 -6
  66. package/dist/module-loader-nAQlwo3D.d.ts +14 -0
  67. package/dist/module-loader.d.mts +2 -13
  68. package/dist/module-loader.d.ts +2 -13
  69. package/dist/module-loader.mjs +60 -69
  70. package/dist/path-utils.d.mts +3 -2
  71. package/dist/path-utils.d.ts +3 -2
  72. package/dist/path-utils.mjs +25 -35
  73. package/dist/pathe.d.mts +1 -1
  74. package/dist/pathe.d.ts +1 -1
  75. package/dist/pathe.mjs +8 -1
  76. package/dist/playground-grouping.d.mts +6 -6
  77. package/dist/playground-grouping.d.ts +6 -6
  78. package/dist/playground-grouping.mjs +57 -77
  79. package/dist/rolldown.d.mts +37 -0
  80. package/dist/rolldown.d.ts +37 -0
  81. package/dist/rolldown.mjs +81 -0
  82. package/dist/{route-constants.d.cts → route-constants-BUi36iYR.d.mts} +3 -2
  83. package/dist/route-constants-BUi36iYR.d.ts +8 -0
  84. package/dist/route-constants.d.mts +2 -7
  85. package/dist/route-constants.d.ts +2 -7
  86. package/dist/route-constants.mjs +25 -21
  87. package/dist/route-utils-BiWFUqo-.d.mts +42 -0
  88. package/dist/route-utils-BiWFUqo-.d.ts +42 -0
  89. package/dist/route-utils.d.mts +2 -42
  90. package/dist/route-utils.d.ts +2 -42
  91. package/dist/route-utils.mjs +94 -121
  92. package/dist/scan-utils.d.mts +2 -114
  93. package/dist/scan-utils.d.ts +2 -114
  94. package/dist/scan-utils.mjs +14 -25
  95. package/dist/timing.d.mts +3 -2
  96. package/dist/timing.d.ts +3 -2
  97. package/dist/timing.mjs +11 -12
  98. package/package.json +88 -128
  99. package/dist/chokidar.cjs +0 -11
  100. package/dist/chokidar.d.cts +0 -9
  101. package/dist/config-core.cjs +0 -9
  102. package/dist/config-utils.cjs +0 -179
  103. package/dist/config-utils.d.cts +0 -62
  104. package/dist/define-config.cjs +0 -169
  105. package/dist/define-config.d.cts +0 -20
  106. package/dist/esbuild.cjs +0 -16
  107. package/dist/esbuild.d.cts +0 -1
  108. package/dist/esbuild.d.mts +0 -1
  109. package/dist/esbuild.d.ts +0 -1
  110. package/dist/esbuild.mjs +0 -1
  111. package/dist/hono.cjs +0 -20
  112. package/dist/hono.d.cts +0 -3
  113. package/dist/index.cjs +0 -50
  114. package/dist/index.d.cts +0 -10
  115. package/dist/jsonc-parser.cjs +0 -16
  116. package/dist/jsonc-parser.d.cts +0 -1
  117. package/dist/jsonc-utils.cjs +0 -25
  118. package/dist/jsonc-utils.d.cts +0 -7
  119. package/dist/load-rules.cjs +0 -39
  120. package/dist/load-rules.d.cts +0 -14
  121. package/dist/logger.browser.cjs +0 -55
  122. package/dist/logger.browser.d.cts +0 -21
  123. package/dist/logger.cjs +0 -55
  124. package/dist/logger.d.cts +0 -21
  125. package/dist/mock-files.cjs +0 -65
  126. package/dist/module-loader.cjs +0 -93
  127. package/dist/path-utils.cjs +0 -57
  128. package/dist/path-utils.d.cts +0 -7
  129. package/dist/pathe.cjs +0 -16
  130. package/dist/pathe.d.cts +0 -1
  131. package/dist/playground-grouping.cjs +0 -95
  132. package/dist/playground-grouping.d.cts +0 -12
  133. package/dist/route-constants.cjs +0 -30
  134. package/dist/route-utils.cjs +0 -126
  135. package/dist/route-utils.d.cts +0 -42
  136. package/dist/scan-utils.cjs +0 -39
  137. package/dist/scan-utils.d.cts +0 -114
  138. package/dist/shared/shared.DazgCdsk.d.cts +0 -49
  139. package/dist/shared/shared.DazgCdsk.d.mts +0 -49
  140. package/dist/shared/shared.DazgCdsk.d.ts +0 -49
  141. package/dist/timing.cjs +0 -20
  142. package/dist/timing.d.cts +0 -4
@@ -1,42 +0,0 @@
1
- interface RouteParserResult<TToken = unknown> {
2
- template: string;
3
- tokens: TToken[];
4
- score: number[];
5
- errors: string[];
6
- warnings: string[];
7
- }
8
- type RouteParser<TToken = unknown> = (template: string) => RouteParserResult<TToken>;
9
- type RouteScoreComparator = (a: number[], b: number[]) => number;
10
- interface DerivedRoute<TToken = unknown, TMethod extends string = string> {
11
- template: string;
12
- method: TMethod;
13
- tokens: TToken[];
14
- score: number[];
15
- }
16
- declare function createRouteUtils<TToken = unknown, TRule extends {
17
- handler: unknown;
18
- } = {
19
- handler: unknown;
20
- }, TMethod extends string = string>(params: {
21
- parseRouteTemplate: RouteParser<TToken>;
22
- compareRouteScore: RouteScoreComparator;
23
- }): {
24
- deriveRouteFromFile: (file: string, rootDir: string, warn?: (message: string) => void) => DerivedRoute<TToken, TMethod> | null;
25
- resolveRule: <TOutput = DerivedRoute<TToken, TMethod>>(input: {
26
- rule: TRule;
27
- derivedTemplate: string;
28
- derivedMethod?: TMethod | undefined;
29
- prefix: string;
30
- file: string;
31
- warn?: (message: string) => void;
32
- build?: (base: DerivedRoute<TToken, TMethod>, rule: TRule) => TOutput;
33
- }) => TOutput | null;
34
- sortRoutes: <TRoute extends {
35
- method: string;
36
- score: number[];
37
- template: string;
38
- }>(routes: TRoute[]) => TRoute[];
39
- };
40
-
41
- export { createRouteUtils };
42
- export type { DerivedRoute, RouteParser, RouteParserResult, RouteScoreComparator };
@@ -1,39 +0,0 @@
1
- 'use strict';
2
-
3
- const pathe = require('pathe');
4
- const routeConstants = require('./route-constants.cjs');
5
-
6
- function normalizeMethod(method) {
7
- if (!method) {
8
- return void 0;
9
- }
10
- const normalized = method.toUpperCase();
11
- if (routeConstants.methodSet.has(normalized)) {
12
- return normalized;
13
- }
14
- return void 0;
15
- }
16
- function normalizePrefix(prefix) {
17
- if (!prefix) {
18
- return "";
19
- }
20
- const normalized = prefix.startsWith("/") ? prefix : `/${prefix}`;
21
- return normalized.endsWith("/") ? normalized.slice(0, -1) : normalized;
22
- }
23
- function resolveDirs(dir, root) {
24
- const raw = typeof dir === "function" ? dir(root) : dir;
25
- const resolved = Array.isArray(raw) ? raw : raw ? [raw] : ["mock"];
26
- const normalized = resolved.map(
27
- (entry) => pathe.isAbsolute(entry) ? entry : pathe.resolve(root, entry)
28
- );
29
- return Array.from(new Set(normalized));
30
- }
31
- function normalizeIgnorePrefix(value, fallback = ["."]) {
32
- const list = typeof value === "undefined" ? fallback : Array.isArray(value) ? value : [value];
33
- return list.filter((entry) => typeof entry === "string" && entry.length > 0);
34
- }
35
-
36
- exports.normalizeIgnorePrefix = normalizeIgnorePrefix;
37
- exports.normalizeMethod = normalizeMethod;
38
- exports.normalizePrefix = normalizePrefix;
39
- exports.resolveDirs = resolveDirs;
@@ -1,114 +0,0 @@
1
- import './config-core.cjs';
2
- import './config-utils.cjs';
3
- import './define-config.cjs';
4
- import './jsonc-utils.cjs';
5
- import './load-rules.cjs';
6
- import './mock-files.cjs';
7
- import './module-loader.cjs';
8
- import './route-constants.cjs';
9
- import './route-utils.cjs';
10
-
11
- declare function normalizeMethod(method?: string | null): string | undefined;
12
- declare function normalizePrefix(prefix: string): string;
13
- declare function resolveDirs(dir: DirInput, root: string): string[];
14
- declare function normalizeIgnorePrefix(value: string | string[] | undefined, fallback?: string[]): string[];
15
-
16
- /**
17
- * Directory input for mock scanning.
18
- *
19
- * @example
20
- * import type { DirInput } from '@mokup/shared'
21
- *
22
- * const dir: DirInput = ['mock', 'fixtures']
23
- */
24
- type DirInput = string | string[] | ((root: string) => string | string[]) | undefined;
25
- /**
26
- * Shared entry options for mokup scanners and plugins.
27
- *
28
- * @example
29
- * import type { MockEntryOptions } from '@mokup/shared'
30
- *
31
- * const entry: MockEntryOptions = {
32
- * dir: 'mock',
33
- * prefix: '/api',
34
- * watch: true,
35
- * }
36
- */
37
- interface MockEntryOptions {
38
- /**
39
- * Directory (or directories) to scan for mock routes.
40
- *
41
- * @default "mock" (resolved by Vite/webpack plugins)
42
- */
43
- dir?: DirInput;
44
- /**
45
- * Request path prefix to mount mock routes under.
46
- *
47
- * @default ""
48
- */
49
- prefix?: string;
50
- /**
51
- * Include filter for files to scan.
52
- *
53
- * @default undefined
54
- */
55
- include?: RegExp | RegExp[];
56
- /**
57
- * Exclude filter for files to scan.
58
- *
59
- * @default undefined
60
- */
61
- exclude?: RegExp | RegExp[];
62
- /**
63
- * Ignore file or folder prefixes when scanning.
64
- *
65
- * @default ["."]
66
- */
67
- ignorePrefix?: string | string[];
68
- /**
69
- * Enable file watching for live route updates.
70
- *
71
- * @default true
72
- */
73
- watch?: boolean;
74
- /**
75
- * Enable mokup logging.
76
- *
77
- * @default true
78
- */
79
- log?: boolean;
80
- }
81
- /**
82
- * Playground configuration input.
83
- *
84
- * @example
85
- * import type { PlaygroundOptionsInput } from '@mokup/shared'
86
- *
87
- * const playground: PlaygroundOptionsInput = {
88
- * path: '/__mokup',
89
- * enabled: true,
90
- * }
91
- */
92
- type PlaygroundOptionsInput = boolean | {
93
- /**
94
- * Base path for the playground UI.
95
- *
96
- * @default "/__mokup"
97
- */
98
- path?: string;
99
- /**
100
- * Emit playground assets during production builds.
101
- *
102
- * @default false
103
- */
104
- build?: boolean;
105
- /**
106
- * Enable or disable the playground routes.
107
- *
108
- * @default true
109
- */
110
- enabled?: boolean;
111
- } | undefined;
112
-
113
- export { normalizeIgnorePrefix, normalizeMethod, normalizePrefix, resolveDirs };
114
- export type { DirInput as D, MockEntryOptions as M, PlaygroundOptionsInput as P };
@@ -1,49 +0,0 @@
1
- /**
2
- * Minimal logger contract used by mokup packages.
3
- *
4
- * @example
5
- * import type { Logger } from '@mokup/shared/logger'
6
- *
7
- * const logger: Logger = {
8
- * info: console.log,
9
- * warn: console.warn,
10
- * error: console.error,
11
- * }
12
- */
13
- interface Logger {
14
- /** Log an informational message. */
15
- info: (...args: unknown[]) => void;
16
- /** Log a warning message. */
17
- warn: (...args: unknown[]) => void;
18
- /** Log an error message. */
19
- error: (...args: unknown[]) => void;
20
- /** Log a generic message (optional). */
21
- log?: (...args: unknown[]) => void;
22
- }
23
- /**
24
- * Options for creating a tagged logger.
25
- *
26
- * @example
27
- * import type { LoggerOptions } from '@mokup/shared/logger'
28
- *
29
- * const options: LoggerOptions = {
30
- * enabled: true,
31
- * tag: 'mokup',
32
- * }
33
- */
34
- interface LoggerOptions {
35
- /**
36
- * Enable or disable logging.
37
- *
38
- * @default true
39
- */
40
- enabled?: boolean;
41
- /**
42
- * Tag prefix attached to each log line.
43
- *
44
- * @default "mokup"
45
- */
46
- tag?: string;
47
- }
48
-
49
- export type { LoggerOptions as L, Logger as a };
@@ -1,49 +0,0 @@
1
- /**
2
- * Minimal logger contract used by mokup packages.
3
- *
4
- * @example
5
- * import type { Logger } from '@mokup/shared/logger'
6
- *
7
- * const logger: Logger = {
8
- * info: console.log,
9
- * warn: console.warn,
10
- * error: console.error,
11
- * }
12
- */
13
- interface Logger {
14
- /** Log an informational message. */
15
- info: (...args: unknown[]) => void;
16
- /** Log a warning message. */
17
- warn: (...args: unknown[]) => void;
18
- /** Log an error message. */
19
- error: (...args: unknown[]) => void;
20
- /** Log a generic message (optional). */
21
- log?: (...args: unknown[]) => void;
22
- }
23
- /**
24
- * Options for creating a tagged logger.
25
- *
26
- * @example
27
- * import type { LoggerOptions } from '@mokup/shared/logger'
28
- *
29
- * const options: LoggerOptions = {
30
- * enabled: true,
31
- * tag: 'mokup',
32
- * }
33
- */
34
- interface LoggerOptions {
35
- /**
36
- * Enable or disable logging.
37
- *
38
- * @default true
39
- */
40
- enabled?: boolean;
41
- /**
42
- * Tag prefix attached to each log line.
43
- *
44
- * @default "mokup"
45
- */
46
- tag?: string;
47
- }
48
-
49
- export type { LoggerOptions as L, Logger as a };
@@ -1,49 +0,0 @@
1
- /**
2
- * Minimal logger contract used by mokup packages.
3
- *
4
- * @example
5
- * import type { Logger } from '@mokup/shared/logger'
6
- *
7
- * const logger: Logger = {
8
- * info: console.log,
9
- * warn: console.warn,
10
- * error: console.error,
11
- * }
12
- */
13
- interface Logger {
14
- /** Log an informational message. */
15
- info: (...args: unknown[]) => void;
16
- /** Log a warning message. */
17
- warn: (...args: unknown[]) => void;
18
- /** Log an error message. */
19
- error: (...args: unknown[]) => void;
20
- /** Log a generic message (optional). */
21
- log?: (...args: unknown[]) => void;
22
- }
23
- /**
24
- * Options for creating a tagged logger.
25
- *
26
- * @example
27
- * import type { LoggerOptions } from '@mokup/shared/logger'
28
- *
29
- * const options: LoggerOptions = {
30
- * enabled: true,
31
- * tag: 'mokup',
32
- * }
33
- */
34
- interface LoggerOptions {
35
- /**
36
- * Enable or disable logging.
37
- *
38
- * @default true
39
- */
40
- enabled?: boolean;
41
- /**
42
- * Tag prefix attached to each log line.
43
- *
44
- * @default "mokup"
45
- */
46
- tag?: string;
47
- }
48
-
49
- export type { LoggerOptions as L, Logger as a };
package/dist/timing.cjs DELETED
@@ -1,20 +0,0 @@
1
- 'use strict';
2
-
3
- function createDebouncer(delayMs, fn) {
4
- let timer = null;
5
- return () => {
6
- if (timer) {
7
- clearTimeout(timer);
8
- }
9
- timer = setTimeout(() => {
10
- timer = null;
11
- fn();
12
- }, delayMs);
13
- };
14
- }
15
- function delay(ms) {
16
- return new Promise((resolve) => setTimeout(resolve, ms));
17
- }
18
-
19
- exports.createDebouncer = createDebouncer;
20
- exports.delay = delay;
package/dist/timing.d.cts DELETED
@@ -1,4 +0,0 @@
1
- declare function createDebouncer(delayMs: number, fn: () => void): () => void;
2
- declare function delay(ms: number): Promise<void>;
3
-
4
- export { createDebouncer, delay };