@jonathanleelx/meddle 0.5.0-beta.12 → 0.5.0-beta.14
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/bin/commands/mock/add.js +8 -1
- package/bin/commands/mock/delete.js +8 -1
- package/bin/commands/mock/toggle.js +8 -1
- package/bin/commands/mock/update.js +8 -1
- package/bin/commands/route/active.js +6 -2
- package/bin/commands/route/add.js +12 -2
- package/bin/commands/route/create.js +8 -1
- package/bin/commands/route/delete.js +12 -2
- package/bin/commands/route/update.js +12 -2
- package/bin/lib/output.js +20 -1
- package/bin/lib/proxy-detect.js +99 -20
- package/dist/core/mock-handler.d.ts.map +1 -1
- package/dist/core/mock-handler.js +39 -0
- package/dist/core/mock-handler.js.map +1 -1
- package/dist/core/types.d.ts +2 -0
- package/dist/core/types.d.ts.map +1 -1
- package/index.js +10 -2
- package/package.json +1 -1
- package/web/dist/assets/{checkbox-DqcyLjRe.js → checkbox-DfpRw_5t.js} +1 -1
- package/web/dist/assets/{code-fixer-BXKaY7F8.js → code-fixer-BWFV7546.js} +1 -1
- package/web/dist/assets/{detail-panel-ixNPR0m-.js → detail-panel-Mm27FyFh.js} +1 -1
- package/web/dist/assets/{global-panel-shell-QniQvRWl.js → global-panel-shell-DZ4TKKlS.js} +1 -1
- package/web/dist/assets/{health-panel--A3H1fpl.js → health-panel-DhLw8KKm.js} +1 -1
- package/web/dist/assets/{index-CHl5ibmb.js → index-Cw0WJSVU.js} +2 -2
- package/web/dist/assets/index-DlO3YLfJ.css +2 -0
- package/web/dist/assets/{mobile-proxy-panel-D2ZdvKNl.js → mobile-proxy-panel-rqw9ZZUP.js} +1 -1
- package/web/dist/assets/{mock-config-W0ZFx5dQ.js → mock-config-OWiFPvcg.js} +1 -1
- package/web/dist/assets/{mock-editor-panel-CWVTWR-o.js → mock-editor-panel-CeZYoHc3.js} +1 -1
- package/web/dist/assets/{monaco-editor-Dk9Ev4mh.js → monaco-editor-BQw_uavF.js} +1 -1
- package/web/dist/assets/{plugin-code-editor-DtmbZCNZ.js → plugin-code-editor-BXHzyirh.js} +1 -1
- package/web/dist/assets/{plugin-config-cTSgUsva.js → plugin-config-d4HeoImD.js} +1 -1
- package/web/dist/assets/{plugin-generator-0ZQhqtnh.js → plugin-generator-DqQTPpcL.js} +1 -1
- package/web/dist/assets/{plugin-test-dialog-CprJ-Byc.js → plugin-test-dialog-t0lJXL3D.js} +1 -1
- package/web/dist/assets/{route-preview-DyZbaemw.js → route-preview-CPzLw9Ze.js} +1 -1
- package/web/dist/assets/{rule-ai-assistant-panel-Bl-yK0cP.js → rule-ai-assistant-panel-Crc13ODb.js} +1 -1
- package/web/dist/assets/rule-config-LI7rxAJs.js +15 -0
- package/web/dist/assets/{rule-overview-panel-KEpeAiaG.js → rule-overview-panel-Cq2mUmBQ.js} +1 -1
- package/web/dist/assets/{select-Cjn7kqsh.js → select-C6-okPSH.js} +1 -1
- package/web/dist/assets/{settings-panel-CorzmHS5.js → settings-panel-CmCxMJMm.js} +1 -1
- package/web/dist/index.html +2 -2
- package/web/dist/assets/index-bfV7sxx5.css +0 -2
- package/web/dist/assets/rule-config-B_vHYXwb.js +0 -15
package/bin/commands/mock/add.js
CHANGED
|
@@ -79,6 +79,7 @@ async function run() {
|
|
|
79
79
|
const running = await isProxyRunning()
|
|
80
80
|
|
|
81
81
|
let result
|
|
82
|
+
let fileOnly = false
|
|
82
83
|
if (running) {
|
|
83
84
|
try {
|
|
84
85
|
result = await apiPost('/api/mocks', rule)
|
|
@@ -86,13 +87,19 @@ async function run() {
|
|
|
86
87
|
} catch (e) {
|
|
87
88
|
// Fallback to file mode
|
|
88
89
|
result = addMockRule(rule)
|
|
90
|
+
fileOnly = true
|
|
89
91
|
}
|
|
90
92
|
} else {
|
|
91
93
|
result = addMockRule(rule)
|
|
94
|
+
fileOnly = true
|
|
92
95
|
}
|
|
93
96
|
|
|
97
|
+
if (fileOnly) output.warnFileOnlyMode()
|
|
98
|
+
|
|
94
99
|
if (jsonFlag) {
|
|
95
|
-
output.jsonRaw(
|
|
100
|
+
output.jsonRaw(fileOnly
|
|
101
|
+
? { ...result, fileOnly: true, warning: output.FILE_ONLY_WARNING }
|
|
102
|
+
: result)
|
|
96
103
|
return
|
|
97
104
|
}
|
|
98
105
|
|
|
@@ -24,6 +24,7 @@ async function run() {
|
|
|
24
24
|
|
|
25
25
|
const running = await isProxyRunning()
|
|
26
26
|
|
|
27
|
+
let fileOnly = false
|
|
27
28
|
if (running) {
|
|
28
29
|
try {
|
|
29
30
|
await apiDelete(`/api/mocks/${id}`)
|
|
@@ -34,6 +35,7 @@ async function run() {
|
|
|
34
35
|
output.error(`Mock rule not found: id=${id}`)
|
|
35
36
|
process.exit(1)
|
|
36
37
|
}
|
|
38
|
+
fileOnly = true
|
|
37
39
|
}
|
|
38
40
|
} else {
|
|
39
41
|
const deleted = deleteMockRule(id)
|
|
@@ -41,10 +43,15 @@ async function run() {
|
|
|
41
43
|
output.error(`Mock rule not found: id=${id}`)
|
|
42
44
|
process.exit(1)
|
|
43
45
|
}
|
|
46
|
+
fileOnly = true
|
|
44
47
|
}
|
|
45
48
|
|
|
49
|
+
if (fileOnly) output.warnFileOnlyMode()
|
|
50
|
+
|
|
46
51
|
if (jsonFlag) {
|
|
47
|
-
output.jsonRaw(
|
|
52
|
+
output.jsonRaw(fileOnly
|
|
53
|
+
? { success: true, id, fileOnly: true, warning: output.FILE_ONLY_WARNING }
|
|
54
|
+
: { success: true, id })
|
|
48
55
|
return
|
|
49
56
|
}
|
|
50
57
|
|
|
@@ -28,6 +28,7 @@ async function run() {
|
|
|
28
28
|
const running = await isProxyRunning()
|
|
29
29
|
|
|
30
30
|
let result
|
|
31
|
+
let fileOnly = false
|
|
31
32
|
if (running) {
|
|
32
33
|
try {
|
|
33
34
|
result = await apiPut(`/api/mocks/${id}`, { enabled })
|
|
@@ -39,6 +40,7 @@ async function run() {
|
|
|
39
40
|
output.error(`Mock rule not found: id=${id}`)
|
|
40
41
|
process.exit(1)
|
|
41
42
|
}
|
|
43
|
+
fileOnly = true
|
|
42
44
|
}
|
|
43
45
|
} else {
|
|
44
46
|
result = updateMockRule(id, { enabled })
|
|
@@ -46,10 +48,15 @@ async function run() {
|
|
|
46
48
|
output.error(`Mock rule not found: id=${id}`)
|
|
47
49
|
process.exit(1)
|
|
48
50
|
}
|
|
51
|
+
fileOnly = true
|
|
49
52
|
}
|
|
50
53
|
|
|
54
|
+
if (fileOnly) output.warnFileOnlyMode()
|
|
55
|
+
|
|
51
56
|
if (jsonFlag) {
|
|
52
|
-
output.jsonRaw(
|
|
57
|
+
output.jsonRaw(fileOnly
|
|
58
|
+
? { ...result, fileOnly: true, warning: output.FILE_ONLY_WARNING }
|
|
59
|
+
: result)
|
|
53
60
|
return
|
|
54
61
|
}
|
|
55
62
|
|
|
@@ -72,6 +72,7 @@ async function run() {
|
|
|
72
72
|
const running = await isProxyRunning()
|
|
73
73
|
|
|
74
74
|
let result
|
|
75
|
+
let fileOnly = false
|
|
75
76
|
if (running) {
|
|
76
77
|
try {
|
|
77
78
|
result = await apiPut(`/api/mocks/${id}`, options)
|
|
@@ -83,6 +84,7 @@ async function run() {
|
|
|
83
84
|
output.error(`Mock rule not found: id=${id}`)
|
|
84
85
|
process.exit(1)
|
|
85
86
|
}
|
|
87
|
+
fileOnly = true
|
|
86
88
|
}
|
|
87
89
|
} else {
|
|
88
90
|
result = updateMockRule(id, options)
|
|
@@ -90,10 +92,15 @@ async function run() {
|
|
|
90
92
|
output.error(`Mock rule not found: id=${id}`)
|
|
91
93
|
process.exit(1)
|
|
92
94
|
}
|
|
95
|
+
fileOnly = true
|
|
93
96
|
}
|
|
94
97
|
|
|
98
|
+
if (fileOnly) output.warnFileOnlyMode()
|
|
99
|
+
|
|
95
100
|
if (jsonFlag) {
|
|
96
|
-
output.jsonRaw(
|
|
101
|
+
output.jsonRaw(fileOnly
|
|
102
|
+
? { ...result, fileOnly: true, warning: output.FILE_ONLY_WARNING }
|
|
103
|
+
: result)
|
|
97
104
|
return
|
|
98
105
|
}
|
|
99
106
|
|
|
@@ -64,8 +64,10 @@ async function run() {
|
|
|
64
64
|
// Disable all, then enable target
|
|
65
65
|
files.forEach(f => setRuleFileEnabled(f.name, f.name === targetFile))
|
|
66
66
|
|
|
67
|
+
output.warnFileOnlyMode()
|
|
68
|
+
|
|
67
69
|
if (jsonFlag) {
|
|
68
|
-
output.jsonRaw({ success: true, activeFile: targetFile })
|
|
70
|
+
output.jsonRaw({ success: true, activeFile: targetFile, fileOnly: true, warning: output.FILE_ONLY_WARNING })
|
|
69
71
|
return
|
|
70
72
|
}
|
|
71
73
|
|
|
@@ -83,8 +85,10 @@ async function run() {
|
|
|
83
85
|
|
|
84
86
|
files.forEach(f => setRuleFileEnabled(f.name, f.name === targetFile))
|
|
85
87
|
|
|
88
|
+
output.warnFileOnlyMode()
|
|
89
|
+
|
|
86
90
|
if (jsonFlag) {
|
|
87
|
-
output.jsonRaw({ success: true, activeFile: targetFile })
|
|
91
|
+
output.jsonRaw({ success: true, activeFile: targetFile, fileOnly: true, warning: output.FILE_ONLY_WARNING })
|
|
88
92
|
return
|
|
89
93
|
}
|
|
90
94
|
|
|
@@ -81,12 +81,17 @@ async function run() {
|
|
|
81
81
|
|
|
82
82
|
const newContent = ruleMapToEprcText(ruleMap)
|
|
83
83
|
saveRuleFileContent(fileName, newContent)
|
|
84
|
+
output.warnFileOnlyMode()
|
|
84
85
|
|
|
85
86
|
if (jsonFlag) {
|
|
86
|
-
output.jsonRaw({ success: true, file: fileName, pattern: pat, target: tgt
|
|
87
|
+
output.jsonRaw({ success: true, file: fileName, pattern: pat, target: tgt,
|
|
88
|
+
fileOnly: true,
|
|
89
|
+
warning: output.FILE_ONLY_WARNING
|
|
90
|
+
})
|
|
87
91
|
return
|
|
88
92
|
}
|
|
89
93
|
|
|
94
|
+
|
|
90
95
|
output.header('Route Rule Added')
|
|
91
96
|
output.success(`${pat} -> ${tgt}`)
|
|
92
97
|
output.kv('File', fileName)
|
|
@@ -109,12 +114,17 @@ async function run() {
|
|
|
109
114
|
|
|
110
115
|
const newContent = ruleMapToEprcText(ruleMap)
|
|
111
116
|
saveRuleFileContent(fileName, newContent)
|
|
117
|
+
output.warnFileOnlyMode()
|
|
112
118
|
|
|
113
119
|
if (jsonFlag) {
|
|
114
|
-
output.jsonRaw({ success: true, file: fileName, pattern: pat, target: tgt
|
|
120
|
+
output.jsonRaw({ success: true, file: fileName, pattern: pat, target: tgt,
|
|
121
|
+
fileOnly: true,
|
|
122
|
+
warning: output.FILE_ONLY_WARNING
|
|
123
|
+
})
|
|
115
124
|
return
|
|
116
125
|
}
|
|
117
126
|
|
|
127
|
+
|
|
118
128
|
output.header('Route Rule Added')
|
|
119
129
|
output.success(`${pat} -> ${tgt}`)
|
|
120
130
|
output.kv('File', fileName)
|
|
@@ -34,6 +34,7 @@ async function run() {
|
|
|
34
34
|
const running = await isProxyRunning()
|
|
35
35
|
|
|
36
36
|
let result
|
|
37
|
+
let fileOnly = false
|
|
37
38
|
if (running) {
|
|
38
39
|
try {
|
|
39
40
|
result = await apiPost('/api/rule-files', {
|
|
@@ -46,6 +47,7 @@ async function run() {
|
|
|
46
47
|
// Fallback to file mode
|
|
47
48
|
try {
|
|
48
49
|
result = createRuleFile(fileName, content, true)
|
|
50
|
+
fileOnly = true
|
|
49
51
|
} catch (err) {
|
|
50
52
|
output.error(err.message)
|
|
51
53
|
process.exit(1)
|
|
@@ -54,14 +56,19 @@ async function run() {
|
|
|
54
56
|
} else {
|
|
55
57
|
try {
|
|
56
58
|
result = createRuleFile(fileName, content, true)
|
|
59
|
+
fileOnly = true
|
|
57
60
|
} catch (err) {
|
|
58
61
|
output.error(err.message)
|
|
59
62
|
process.exit(1)
|
|
60
63
|
}
|
|
61
64
|
}
|
|
62
65
|
|
|
66
|
+
if (fileOnly) output.warnFileOnlyMode()
|
|
67
|
+
|
|
63
68
|
if (jsonFlag) {
|
|
64
|
-
output.jsonRaw(
|
|
69
|
+
output.jsonRaw(fileOnly
|
|
70
|
+
? { ...result, fileOnly: true, warning: output.FILE_ONLY_WARNING }
|
|
71
|
+
: result)
|
|
65
72
|
return
|
|
66
73
|
}
|
|
67
74
|
|
|
@@ -75,12 +75,17 @@ async function run() {
|
|
|
75
75
|
delete ruleMap[internalKey]
|
|
76
76
|
const newContent = ruleMapToEprcText(ruleMap)
|
|
77
77
|
saveRuleFileContent(fileName, newContent)
|
|
78
|
+
output.warnFileOnlyMode()
|
|
78
79
|
|
|
79
80
|
if (jsonFlag) {
|
|
80
|
-
output.jsonRaw({ success: true, file: fileName, pattern: pat
|
|
81
|
+
output.jsonRaw({ success: true, file: fileName, pattern: pat,
|
|
82
|
+
fileOnly: true,
|
|
83
|
+
warning: output.FILE_ONLY_WARNING
|
|
84
|
+
})
|
|
81
85
|
return
|
|
82
86
|
}
|
|
83
87
|
|
|
88
|
+
|
|
84
89
|
output.header('Route Rule Deleted')
|
|
85
90
|
output.success(pat)
|
|
86
91
|
output.kv('File', fileName)
|
|
@@ -102,12 +107,17 @@ async function run() {
|
|
|
102
107
|
delete ruleMap[internalKey]
|
|
103
108
|
const newContent = ruleMapToEprcText(ruleMap)
|
|
104
109
|
saveRuleFileContent(fileName, newContent)
|
|
110
|
+
output.warnFileOnlyMode()
|
|
105
111
|
|
|
106
112
|
if (jsonFlag) {
|
|
107
|
-
output.jsonRaw({ success: true, file: fileName, pattern: pat
|
|
113
|
+
output.jsonRaw({ success: true, file: fileName, pattern: pat,
|
|
114
|
+
fileOnly: true,
|
|
115
|
+
warning: output.FILE_ONLY_WARNING
|
|
116
|
+
})
|
|
108
117
|
return
|
|
109
118
|
}
|
|
110
119
|
|
|
120
|
+
|
|
111
121
|
output.header('Route Rule Deleted')
|
|
112
122
|
output.success(pat)
|
|
113
123
|
output.kv('File', fileName)
|
|
@@ -81,12 +81,17 @@ async function run() {
|
|
|
81
81
|
ruleMap[internalKey] = bm ? tgt + bm[0] : tgt
|
|
82
82
|
const newContent = ruleMapToEprcText(ruleMap)
|
|
83
83
|
saveRuleFileContent(fileName, newContent)
|
|
84
|
+
output.warnFileOnlyMode()
|
|
84
85
|
|
|
85
86
|
if (jsonFlag) {
|
|
86
|
-
output.jsonRaw({ success: true, file: fileName, pattern: pat, newTarget: tgt
|
|
87
|
+
output.jsonRaw({ success: true, file: fileName, pattern: pat, newTarget: tgt,
|
|
88
|
+
fileOnly: true,
|
|
89
|
+
warning: output.FILE_ONLY_WARNING
|
|
90
|
+
})
|
|
87
91
|
return
|
|
88
92
|
}
|
|
89
93
|
|
|
94
|
+
|
|
90
95
|
output.header('Route Rule Updated')
|
|
91
96
|
output.success(`${pat} -> ${tgt}`)
|
|
92
97
|
output.kv('File', fileName)
|
|
@@ -108,12 +113,17 @@ async function run() {
|
|
|
108
113
|
ruleMap[internalKey] = bm ? tgt + bm[0] : tgt
|
|
109
114
|
const newContent = ruleMapToEprcText(ruleMap)
|
|
110
115
|
saveRuleFileContent(fileName, newContent)
|
|
116
|
+
output.warnFileOnlyMode()
|
|
111
117
|
|
|
112
118
|
if (jsonFlag) {
|
|
113
|
-
output.jsonRaw({ success: true, file: fileName, pattern: pat, newTarget: tgt
|
|
119
|
+
output.jsonRaw({ success: true, file: fileName, pattern: pat, newTarget: tgt,
|
|
120
|
+
fileOnly: true,
|
|
121
|
+
warning: output.FILE_ONLY_WARNING
|
|
122
|
+
})
|
|
114
123
|
return
|
|
115
124
|
}
|
|
116
125
|
|
|
126
|
+
|
|
117
127
|
output.header('Route Rule Updated')
|
|
118
128
|
output.success(`${pat} -> ${tgt}`)
|
|
119
129
|
output.kv('File', fileName)
|
package/bin/lib/output.js
CHANGED
|
@@ -128,6 +128,23 @@ function tableRow(columns, widths) {
|
|
|
128
128
|
console.log(' ' + row)
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
+
/**
|
|
132
|
+
* Shared downgrade warning when CLI mutates config but cannot reach a live proxy
|
|
133
|
+
* (issue #85). Same wording for mock + route families.
|
|
134
|
+
*/
|
|
135
|
+
const FILE_ONLY_WARNING =
|
|
136
|
+
'Config written to file, but could not connect to a running proxy — restart required for changes to take effect.'
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Emit the file-only downgrade warning. Always prints to stderr (including
|
|
140
|
+
* --json mode) so the failure mode is never silent.
|
|
141
|
+
* @returns {string} the warning message
|
|
142
|
+
*/
|
|
143
|
+
function warnFileOnlyMode() {
|
|
144
|
+
console.error(chalk.yellow(' ⚠'), FILE_ONLY_WARNING)
|
|
145
|
+
return FILE_ONLY_WARNING
|
|
146
|
+
}
|
|
147
|
+
|
|
131
148
|
module.exports = {
|
|
132
149
|
setJsonMode,
|
|
133
150
|
isJsonMode,
|
|
@@ -142,5 +159,7 @@ module.exports = {
|
|
|
142
159
|
plain,
|
|
143
160
|
kv,
|
|
144
161
|
bullet,
|
|
145
|
-
tableRow
|
|
162
|
+
tableRow,
|
|
163
|
+
FILE_ONLY_WARNING,
|
|
164
|
+
warnFileOnlyMode,
|
|
146
165
|
}
|
package/bin/lib/proxy-detect.js
CHANGED
|
@@ -6,6 +6,15 @@
|
|
|
6
6
|
* every CLI command session-aware without individual changes: when
|
|
7
7
|
* --session <id> is set, MEDDLE_HOME is pinned to the session's data dir
|
|
8
8
|
* and getProxyUrl() returns that session's port.
|
|
9
|
+
*
|
|
10
|
+
* Probe priority (issue #85):
|
|
11
|
+
* 1. MEDDLE_SESSION_PORT (pinned session)
|
|
12
|
+
* 2. mcp-proxy-url.json (written by proxy on every start)
|
|
13
|
+
* 3. DEFAULT_PROXY_BASE (http://127.0.0.1:8989)
|
|
14
|
+
*
|
|
15
|
+
* Stale ports in mcp-proxy-url.json must not stick forever: isProxyRunning /
|
|
16
|
+
* resolveLiveProxyUrl fall through to later candidates when a probe fails,
|
|
17
|
+
* and cache the first live URL for subsequent getProxyUrl() / API calls.
|
|
9
18
|
*/
|
|
10
19
|
|
|
11
20
|
const fs = require('fs')
|
|
@@ -16,39 +25,61 @@ const { applySessionContext, GLOBAL_DEFAULT_PORT } = require('./session-args')
|
|
|
16
25
|
// Apply --session / MEDDLE_HOME precedence before computing paths.
|
|
17
26
|
applySessionContext()
|
|
18
27
|
|
|
28
|
+
// Resolved once for CLI (MEDDLE_HOME is set before this module loads).
|
|
19
29
|
const meddleDir = resolveMeddleHome()
|
|
20
30
|
const mcpFile = path.join(meddleDir, 'mcp-proxy-url.json')
|
|
21
31
|
const DEFAULT_PROXY_BASE = `http://127.0.0.1:${GLOBAL_DEFAULT_PORT}`
|
|
22
32
|
|
|
33
|
+
/** @type {string | null} */
|
|
34
|
+
let resolvedProxyUrl = null
|
|
35
|
+
|
|
36
|
+
function getMcpFilePath() {
|
|
37
|
+
// Prefer live MEDDLE_HOME so tests can point at a temp home after require.
|
|
38
|
+
const home = (process.env.MEDDLE_HOME || '').trim() || meddleDir
|
|
39
|
+
return path.join(home, 'mcp-proxy-url.json')
|
|
40
|
+
}
|
|
41
|
+
|
|
23
42
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* Priority:
|
|
27
|
-
* 1. MEDDLE_SESSION_PORT env (set by --session resolution)
|
|
28
|
-
* 2. mcp-proxy-url.json (written by proxy on startup)
|
|
29
|
-
* 3. DEFAULT_PROXY_BASE (http://127.0.0.1:8989)
|
|
43
|
+
* Sync best-effort URL (no liveness check). Prefer a previously resolved live
|
|
44
|
+
* URL so API calls after isProxyRunning() hit the working port.
|
|
30
45
|
*/
|
|
31
46
|
function getProxyUrl() {
|
|
47
|
+
if (resolvedProxyUrl) return resolvedProxyUrl
|
|
48
|
+
const candidates = getCandidateProxyUrls()
|
|
49
|
+
return candidates[0] || DEFAULT_PROXY_BASE
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Ordered candidate URLs to probe (deduped).
|
|
54
|
+
* Session pin is exclusive — do not fall back to global file/default.
|
|
55
|
+
*/
|
|
56
|
+
function getCandidateProxyUrls() {
|
|
32
57
|
if (process.env.MEDDLE_SESSION_PORT) {
|
|
33
|
-
return `http://127.0.0.1:${process.env.MEDDLE_SESSION_PORT}`
|
|
58
|
+
return [`http://127.0.0.1:${process.env.MEDDLE_SESSION_PORT}`]
|
|
34
59
|
}
|
|
60
|
+
const urls = []
|
|
35
61
|
try {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
62
|
+
const file = getMcpFilePath()
|
|
63
|
+
if (fs.existsSync(file)) {
|
|
64
|
+
const data = JSON.parse(fs.readFileSync(file, 'utf8'))
|
|
65
|
+
if (data.proxyUrl && typeof data.proxyUrl === 'string') {
|
|
66
|
+
urls.push(data.proxyUrl.replace(/\/$/, ''))
|
|
67
|
+
}
|
|
39
68
|
}
|
|
40
69
|
} catch (_) {}
|
|
41
|
-
|
|
70
|
+
if (!urls.includes(DEFAULT_PROXY_BASE)) {
|
|
71
|
+
urls.push(DEFAULT_PROXY_BASE)
|
|
72
|
+
}
|
|
73
|
+
return urls
|
|
42
74
|
}
|
|
43
75
|
|
|
44
76
|
/**
|
|
45
|
-
*
|
|
46
|
-
* @param {number} timeoutMs
|
|
77
|
+
* @param {string} url
|
|
78
|
+
* @param {number} timeoutMs
|
|
47
79
|
*/
|
|
48
|
-
async function
|
|
49
|
-
const url = getProxyUrl()
|
|
80
|
+
async function probeUrl(url, timeoutMs = 2000) {
|
|
50
81
|
try {
|
|
51
|
-
const response = await fetch(url + '/api/mocks', {
|
|
82
|
+
const response = await fetch(url.replace(/\/$/, '') + '/api/mocks', {
|
|
52
83
|
method: 'GET',
|
|
53
84
|
signal: AbortSignal.timeout(timeoutMs)
|
|
54
85
|
})
|
|
@@ -58,6 +89,38 @@ async function isProxyRunning(timeoutMs = 2000) {
|
|
|
58
89
|
}
|
|
59
90
|
}
|
|
60
91
|
|
|
92
|
+
/**
|
|
93
|
+
* Probe candidates in order; cache and return the first live URL, or null.
|
|
94
|
+
* @param {number} timeoutMs
|
|
95
|
+
* @param {(url: string, timeoutMs: number) => Promise<boolean>} [probe]
|
|
96
|
+
*/
|
|
97
|
+
async function resolveLiveProxyUrl(timeoutMs = 2000, probe = probeUrl) {
|
|
98
|
+
if (resolvedProxyUrl) {
|
|
99
|
+
const perTry = Math.min(timeoutMs, 800)
|
|
100
|
+
if (await probe(resolvedProxyUrl, perTry)) return resolvedProxyUrl
|
|
101
|
+
resolvedProxyUrl = null
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const candidates = getCandidateProxyUrls()
|
|
105
|
+
const perTry = Math.max(200, Math.floor(timeoutMs / Math.max(1, candidates.length)))
|
|
106
|
+
for (const url of candidates) {
|
|
107
|
+
if (await probe(url, perTry)) {
|
|
108
|
+
resolvedProxyUrl = url
|
|
109
|
+
return url
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return null
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Check if proxy is running by probing candidates (file → default fallback).
|
|
117
|
+
* @param {number} timeoutMs - Timeout in milliseconds (default 2000)
|
|
118
|
+
*/
|
|
119
|
+
async function isProxyRunning(timeoutMs = 2000) {
|
|
120
|
+
const url = await resolveLiveProxyUrl(timeoutMs)
|
|
121
|
+
return !!url
|
|
122
|
+
}
|
|
123
|
+
|
|
61
124
|
/**
|
|
62
125
|
* Wait for proxy to start
|
|
63
126
|
* @param {number} timeoutMs - Timeout in milliseconds (default 5000)
|
|
@@ -69,15 +132,15 @@ function waitForProxyUrl(timeoutMs = 5000) {
|
|
|
69
132
|
const check = () => {
|
|
70
133
|
try {
|
|
71
134
|
if (process.env.MEDDLE_SESSION_PORT) {
|
|
72
|
-
// For --session mode, poll the HTTP endpoint directly.
|
|
73
135
|
const port = process.env.MEDDLE_SESSION_PORT
|
|
74
136
|
fetch(`http://127.0.0.1:${port}/api/mocks`, { method: 'GET', signal: AbortSignal.timeout(500) })
|
|
75
137
|
.then((r) => { if (r.ok) resolve(`http://127.0.0.1:${port}`); else retry() })
|
|
76
138
|
.catch(() => retry())
|
|
77
139
|
return
|
|
78
140
|
}
|
|
79
|
-
|
|
80
|
-
|
|
141
|
+
const file = getMcpFilePath()
|
|
142
|
+
if (fs.existsSync(file)) {
|
|
143
|
+
const data = JSON.parse(fs.readFileSync(file, 'utf8'))
|
|
81
144
|
if (data.proxyUrl) {
|
|
82
145
|
return resolve(data.proxyUrl)
|
|
83
146
|
}
|
|
@@ -95,11 +158,27 @@ function waitForProxyUrl(timeoutMs = 5000) {
|
|
|
95
158
|
})
|
|
96
159
|
}
|
|
97
160
|
|
|
161
|
+
/** Test-only: clear cached live URL so the next probe re-reads candidates. */
|
|
162
|
+
function __resetResolvedProxyUrlForTest() {
|
|
163
|
+
resolvedProxyUrl = null
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/** Test-only: seed the cached live URL. */
|
|
167
|
+
function __setResolvedProxyUrlForTest(url) {
|
|
168
|
+
resolvedProxyUrl = url || null
|
|
169
|
+
}
|
|
170
|
+
|
|
98
171
|
module.exports = {
|
|
99
172
|
meddleDir,
|
|
100
173
|
mcpFile,
|
|
101
174
|
DEFAULT_PROXY_BASE,
|
|
102
175
|
getProxyUrl,
|
|
176
|
+
getCandidateProxyUrls,
|
|
177
|
+
getMcpFilePath,
|
|
178
|
+
resolveLiveProxyUrl,
|
|
179
|
+
probeUrl,
|
|
103
180
|
isProxyRunning,
|
|
104
|
-
waitForProxyUrl
|
|
181
|
+
waitForProxyUrl,
|
|
182
|
+
__resetResolvedProxyUrlForTest,
|
|
183
|
+
__setResolvedProxyUrlForTest,
|
|
105
184
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-handler.d.ts","sourceRoot":"","sources":["../../core/mock-handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mock-handler.d.ts","sourceRoot":"","sources":["../../core/mock-handler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAUvE,8CAA8C;AAC9C,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAQ3E;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,WAAW,CAmShE"}
|
|
@@ -40,6 +40,7 @@ exports.dedupeMockRulesById = dedupeMockRulesById;
|
|
|
40
40
|
exports.createMockHandler = createMockHandler;
|
|
41
41
|
const fs = __importStar(require("fs"));
|
|
42
42
|
const path = __importStar(require("path"));
|
|
43
|
+
const chokidar_1 = __importDefault(require("chokidar"));
|
|
43
44
|
const debug_1 = __importDefault(require("debug"));
|
|
44
45
|
const map_local_1 = require("./map-local");
|
|
45
46
|
const proxy_record_1 = require("./proxy-record");
|
|
@@ -95,6 +96,11 @@ function createMockHandler(ctx) {
|
|
|
95
96
|
ctx.mockIdSeq = (data.nextId || Math.max(0, ...ctx.mockRules.map(r => r.id || 0))) + 1;
|
|
96
97
|
proxyDebug(`已加载 ${ctx.mockRules.length} 条 Mock 规则 (${mockFile})`);
|
|
97
98
|
}
|
|
99
|
+
else {
|
|
100
|
+
// File removed / never created — clear in-memory rules (watcher unlink).
|
|
101
|
+
ctx.mockRules = [];
|
|
102
|
+
proxyDebug(`Mock 规则文件不存在,已清空内存规则 (${mockFile})`);
|
|
103
|
+
}
|
|
98
104
|
}
|
|
99
105
|
catch (err) {
|
|
100
106
|
console.error('加载 mock 规则失败:', err.message);
|
|
@@ -336,9 +342,42 @@ function createMockHandler(ctx) {
|
|
|
336
342
|
doSend();
|
|
337
343
|
}
|
|
338
344
|
}
|
|
345
|
+
/**
|
|
346
|
+
* Watch the mocks file for external edits (CLI file-mode / hand edits).
|
|
347
|
+
* Aligns with route-rules watcher so file-only writes still hot-reload (issue #85).
|
|
348
|
+
*/
|
|
349
|
+
function initMockFileWatcher(onReload) {
|
|
350
|
+
const mockFile = getMockFilePath();
|
|
351
|
+
const dir = path.dirname(mockFile);
|
|
352
|
+
const base = path.basename(mockFile);
|
|
353
|
+
try {
|
|
354
|
+
if (!fs.existsSync(dir))
|
|
355
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
356
|
+
}
|
|
357
|
+
catch (_) { /* ignore */ }
|
|
358
|
+
// Watch the directory (not only the file) so atomic replace / recreate
|
|
359
|
+
// still triggers — same pattern as route-rules watcher.
|
|
360
|
+
const watcher = chokidar_1.default.watch(dir, {
|
|
361
|
+
ignoreInitial: true,
|
|
362
|
+
awaitWriteFinish: { stabilityThreshold: 50, pollInterval: 25 },
|
|
363
|
+
});
|
|
364
|
+
const reload = (event, changedPath) => {
|
|
365
|
+
if (changedPath && path.basename(changedPath) !== base)
|
|
366
|
+
return;
|
|
367
|
+
proxyDebug(`mocks file ${event}: ${base}`);
|
|
368
|
+
loadMockRules();
|
|
369
|
+
if (onReload)
|
|
370
|
+
onReload();
|
|
371
|
+
};
|
|
372
|
+
watcher.on('change', (p) => reload('changed', p));
|
|
373
|
+
watcher.on('add', (p) => reload('added', p));
|
|
374
|
+
watcher.on('unlink', (p) => reload('removed', p));
|
|
375
|
+
proxyDebug(`watching mocks file: ${mockFile}`);
|
|
376
|
+
}
|
|
339
377
|
return {
|
|
340
378
|
getMockFilePath, loadMockRules, saveMockRules, matchMockRule,
|
|
341
379
|
buildMockResponseForTest, sendMockResponse, loadCustomPathsFromSettings,
|
|
380
|
+
initMockFileWatcher,
|
|
342
381
|
};
|
|
343
382
|
}
|
|
344
383
|
//# sourceMappingURL=mock-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-handler.js","sourceRoot":"","sources":["../../core/mock-handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mock-handler.js","sourceRoot":"","sources":["../../core/mock-handler.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -591,6 +591,8 @@ export interface MockHandler {
|
|
|
591
591
|
loadCustomPathsFromSettings(): {
|
|
592
592
|
mocksFilePath: string | null;
|
|
593
593
|
};
|
|
594
|
+
/** Watch mocks file for external edits; optional onReload syncs serverContext + broadcasts. */
|
|
595
|
+
initMockFileWatcher(onReload?: () => void): void;
|
|
594
596
|
}
|
|
595
597
|
export interface DiagnosticCheck {
|
|
596
598
|
name: string;
|