@jonathanleelx/meddle 0.4.5 → 0.5.0-beta.10
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 +25 -3
- package/bin/commands/mock/index.js +8 -4
- package/bin/commands/mock/list.js +1 -0
- package/bin/commands/mock/update.js +23 -4
- package/dist/core/h2-pool.d.ts +1 -0
- package/dist/core/h2-pool.d.ts.map +1 -1
- package/dist/core/h2-pool.js +79 -23
- package/dist/core/h2-pool.js.map +1 -1
- package/dist/core/mock-handler.d.ts.map +1 -1
- package/dist/core/mock-handler.js +12 -14
- package/dist/core/mock-handler.js.map +1 -1
- package/dist/core/mock-utils.d.ts +30 -0
- package/dist/core/mock-utils.d.ts.map +1 -0
- package/dist/core/mock-utils.js +117 -0
- package/dist/core/mock-utils.js.map +1 -0
- package/dist/core/plugin-intercept.d.ts.map +1 -1
- package/dist/core/plugin-intercept.js +1 -0
- package/dist/core/plugin-intercept.js.map +1 -1
- package/dist/core/remote-access.d.ts +12 -0
- package/dist/core/remote-access.d.ts.map +1 -1
- package/dist/core/remote-access.js +59 -2
- package/dist/core/remote-access.js.map +1 -1
- package/dist/core/types.d.ts +4 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/helpers.d.ts +8 -1
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +22 -5
- package/dist/helpers.js.map +1 -1
- package/dist/plugins/builtin/mock-plugin.d.ts.map +1 -1
- package/dist/plugins/builtin/mock-plugin.js +6 -5
- package/dist/plugins/builtin/mock-plugin.js.map +1 -1
- package/dist/server/agent/tools.d.ts.map +1 -1
- package/dist/server/agent/tools.js +4 -0
- package/dist/server/agent/tools.js.map +1 -1
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/mocks.d.ts.map +1 -1
- package/dist/server/mocks.js +1 -0
- package/dist/server/mocks.js.map +1 -1
- package/dist/server/rule-files.d.ts +44 -0
- package/dist/server/rule-files.d.ts.map +1 -1
- package/dist/server/rule-files.js +93 -0
- package/dist/server/rule-files.js.map +1 -1
- package/index.js +7 -8
- package/mcp-server.js +3 -0
- package/package.json +3 -2
- package/plugins/builtin/mock-plugin.ts +9 -5
- package/web/dist/assets/{checkbox-BQRlRJrm.js → checkbox-C5E3KITf.js} +1 -1
- package/web/dist/assets/{code-fixer-Dlsw62Ke.js → code-fixer-Bbz_Rlzx.js} +2 -2
- package/web/dist/assets/detail-panel-SO3wZGmE.js +4 -0
- package/web/dist/assets/{dist-CxdY_A67.js → dist-C8RHq5At.js} +1 -1
- package/web/dist/assets/{dist-B8XUKgXe.js → dist-DoE7uybN.js} +1 -1
- package/web/dist/assets/{es2015-CfXu88Y7.js → es2015-DG46NGN7.js} +1 -1
- package/web/dist/assets/{global-panel-shell-CNR5hbEs.js → global-panel-shell-czRfHl6X.js} +2 -2
- package/web/dist/assets/health-panel-B1nzvjHe.js +1 -0
- package/web/dist/assets/index-ChDOPlV_.js +18 -0
- package/web/dist/assets/index-bfV7sxx5.css +2 -0
- package/web/dist/assets/mobile-proxy-panel-By90SSuO.js +8 -0
- package/web/dist/assets/mock-config-8d2upIWY.js +1 -0
- package/web/dist/assets/mock-editor-panel-BzWl9IR3.js +1 -0
- package/web/dist/assets/{monaco-editor-DYWjOxN7.js → monaco-editor-BQUxbjIX.js} +1 -1
- package/web/dist/assets/plugin-code-editor-B38R8_va.js +2 -0
- package/web/dist/assets/plugin-config-BLTqZSgU.js +1 -0
- package/web/dist/assets/{plugin-generator-B217-RVa.js → plugin-generator-E5zcpf48.js} +2 -2
- package/web/dist/assets/plugin-test-dialog-BnYV2F3L.js +7 -0
- package/web/dist/assets/{route-preview-Dv6AYYUb.js → route-preview-F0FExfHC.js} +1 -1
- package/web/dist/assets/{rule-ai-assistant-panel-DsJ1sdXd.js → rule-ai-assistant-panel-D98DyECu.js} +2 -2
- package/web/dist/assets/rule-config-CKzf2Bdl.js +15 -0
- package/web/dist/assets/rule-overview-panel-8RHOtrPS.js +1 -0
- package/web/dist/assets/{select-DSwkV3cG.js → select-BavfGQkS.js} +1 -1
- package/web/dist/assets/settings-panel-BquHT2tt.js +1 -0
- package/web/dist/assets/{switch-C-Xk56TK.js → switch-Bes_YiJu.js} +1 -1
- package/web/dist/assets/table-2-BR5e3z8m.js +1 -0
- package/web/dist/index.html +10 -10
- package/web/dist/assets/detail-panel-DElQDCRS.js +0 -4
- package/web/dist/assets/health-panel-BKOR7Y8q.js +0 -1
- package/web/dist/assets/index-DQtOwhpd.css +0 -2
- package/web/dist/assets/index-otwkxfTB.js +0 -18
- package/web/dist/assets/mobile-proxy-panel-m88i11PB.js +0 -8
- package/web/dist/assets/mock-config-COLWxz2R.js +0 -1
- package/web/dist/assets/mock-editor-panel-Bbkaq85N.js +0 -1
- package/web/dist/assets/plugin-code-editor-hGuv6MC3.js +0 -2
- package/web/dist/assets/plugin-config-DkZcWYNN.js +0 -1
- package/web/dist/assets/plugin-test-dialog-oWz-o_XG.js +0 -7
- package/web/dist/assets/rule-config-DuUVPgbM.js +0 -15
- package/web/dist/assets/settings-panel-DSSxRrV9.js +0 -1
- /package/web/dist/assets/{ai-config-store-DQXVJVn_.js → ai-config-store-C8D_PUGV.js} +0 -0
- /package/web/dist/assets/{alert-Bve02Ufr.js → alert-DCvlZAiv.js} +0 -0
- /package/web/dist/assets/{babel-DsprIpXZ.js → babel-DCr4VA1c.js} +0 -0
- /package/web/dist/assets/{body-diff-view-D7dCWajG.js → body-diff-view-B-4XWmL6.js} +0 -0
- /package/web/dist/assets/{clipboard-Dz6MgwV-.js → clipboard-VhPXNN5m.js} +0 -0
- /package/web/dist/assets/{dist-Cn0y0IRn.js → dist-Blyulj4_.js} +0 -0
- /package/web/dist/assets/{dist-DZJ9SMlJ.js → dist-Bsv9ad5F.js} +0 -0
- /package/web/dist/assets/{dist-Bb9TeEub.js → dist-CEd_wnRC.js} +0 -0
- /package/web/dist/assets/{dist-D5Dj17P8.js → dist-Ce4ujolc.js} +0 -0
- /package/web/dist/assets/{dist-C5nMErq8.js → dist-DWmDaXVN.js} +0 -0
- /package/web/dist/assets/{estree-BP7k0NIt.js → estree-qO_m2Qaw.js} +0 -0
- /package/web/dist/assets/{file-system-access-DK7FI6pN.js → file-system-access-_og-Tg9o.js} +0 -0
- /package/web/dist/assets/{html-6FIWbqxX.js → html-VDGahtyk.js} +0 -0
- /package/web/dist/assets/{postcss-Dnf30fQU.js → postcss-BUm8EKMw.js} +0 -0
- /package/web/dist/assets/{standalone-CjxtLKw-.js → standalone-Bj8SSd8Q.js} +0 -0
- /package/web/dist/assets/{syntax-highlight-BHsSDUha.js → syntax-highlight-Dk0-ewLI.js} +0 -0
- /package/web/dist/assets/{table-DymgLlcc.js → table-nW7uQVcl.js} +0 -0
- /package/web/dist/assets/{textarea-vuxJwU0x.js → textarea-BSI0rnW6.js} +0 -0
- /package/web/dist/assets/{wand-sparkles-wkul5vje.js → wand-sparkles-CJ7fSnom.js} +0 -0
- /package/web/dist/assets/{wifi-D9M35Ajj.js → wifi-CCLKyySQ.js} +0 -0
- /package/web/dist/assets/{zap-Djo4cgux.js → zap-DR-xiUMe.js} +0 -0
package/bin/commands/mock/add.js
CHANGED
|
@@ -12,23 +12,40 @@ const args = process.argv.slice(3)
|
|
|
12
12
|
const jsonFlag = args.includes('--json')
|
|
13
13
|
output.setJsonMode(jsonFlag)
|
|
14
14
|
|
|
15
|
+
function parseCorsFlag(options) {
|
|
16
|
+
if (!options.cors) return
|
|
17
|
+
const corsHeaders = {
|
|
18
|
+
'Access-Control-Allow-Origin': '{origin}',
|
|
19
|
+
'Access-Control-Allow-Credentials': 'true',
|
|
20
|
+
'Access-Control-Allow-Methods': '*',
|
|
21
|
+
'Access-Control-Allow-Headers': '*',
|
|
22
|
+
}
|
|
23
|
+
options.headers = { ...corsHeaders, ...(options.headers || {}) }
|
|
24
|
+
delete options.cors
|
|
25
|
+
}
|
|
26
|
+
|
|
15
27
|
function parseArgs(args) {
|
|
16
28
|
const options = {}
|
|
17
29
|
for (let i = 0; i < args.length; i++) {
|
|
18
30
|
if (args[i] === '--name') options.name = args[++i]
|
|
19
31
|
else if (args[i] === '--pattern') options.urlPattern = args[++i]
|
|
32
|
+
else if (args[i] === '--query') options.query = args[++i]
|
|
20
33
|
else if (args[i] === '--method') options.method = args[++i]
|
|
21
34
|
else if (args[i] === '--status') options.statusCode = parseInt(args[++i], 10)
|
|
22
35
|
else if (args[i] === '--body') options.body = args[++i]
|
|
23
36
|
else if (args[i] === '--delay') options.delay = parseInt(args[++i], 10)
|
|
37
|
+
else if (args[i] === '--cors') options.cors = true
|
|
24
38
|
else if (args[i] === '--headers') {
|
|
39
|
+
const raw = args[++i]
|
|
25
40
|
try {
|
|
26
|
-
options.headers = JSON.parse(
|
|
41
|
+
options.headers = JSON.parse(raw)
|
|
27
42
|
} catch (_) {
|
|
28
|
-
|
|
43
|
+
output.error('Invalid --headers JSON: ' + raw)
|
|
44
|
+
process.exit(1)
|
|
29
45
|
}
|
|
30
46
|
}
|
|
31
47
|
}
|
|
48
|
+
parseCorsFlag(options)
|
|
32
49
|
return options
|
|
33
50
|
}
|
|
34
51
|
|
|
@@ -49,6 +66,7 @@ async function run() {
|
|
|
49
66
|
const rule = {
|
|
50
67
|
name: options.name,
|
|
51
68
|
urlPattern: options.urlPattern,
|
|
69
|
+
query: options.query || '',
|
|
52
70
|
method: options.method || '*',
|
|
53
71
|
statusCode: options.statusCode || 200,
|
|
54
72
|
delay: options.delay || 0,
|
|
@@ -81,12 +99,16 @@ async function run() {
|
|
|
81
99
|
output.header('Mock Rule Added')
|
|
82
100
|
output.success(`#${result.id}: ${result.name}`)
|
|
83
101
|
output.kv('Pattern', result.urlPattern)
|
|
102
|
+
if (result.query) output.kv('Query', result.query)
|
|
84
103
|
output.kv('Method', result.method)
|
|
85
104
|
output.kv('Status', result.statusCode)
|
|
86
105
|
output.kv('Delay', `${result.delay}ms`)
|
|
106
|
+
if (result.headers && Object.keys(result.headers).length > 0) {
|
|
107
|
+
output.kv('Headers', JSON.stringify(result.headers))
|
|
108
|
+
}
|
|
87
109
|
}
|
|
88
110
|
|
|
89
111
|
run().catch(e => {
|
|
90
112
|
output.error(e.message)
|
|
91
113
|
process.exit(1)
|
|
92
|
-
})
|
|
114
|
+
})
|
|
@@ -32,19 +32,23 @@ Mock Commands:
|
|
|
32
32
|
meddle mock enable <id> Enable a mock rule
|
|
33
33
|
meddle mock disable <id> Disable a mock rule
|
|
34
34
|
|
|
35
|
-
Add Options:
|
|
35
|
+
Add / Update Options:
|
|
36
36
|
--name <n> Rule name
|
|
37
|
-
--pattern <p> URL pattern (regex or string)
|
|
37
|
+
--pattern <p> URL pattern (regex or string; may include query)
|
|
38
|
+
--query <q> Query match (exact key=value params, e.g. window_key=A; not prefix)
|
|
38
39
|
--method <m> HTTP method (GET, POST, *, default: *)
|
|
39
40
|
--status <s> Response status code (default: 200)
|
|
40
41
|
--body <b> Response body content
|
|
41
42
|
--delay <d> Response delay in ms (default: 0)
|
|
43
|
+
--headers <json> Response headers JSON (values may use {origin})
|
|
44
|
+
--cors Shortcut: credentials-friendly CORS headers with {origin}
|
|
42
45
|
|
|
43
46
|
Examples:
|
|
44
47
|
meddle mock list
|
|
45
48
|
meddle mock add --name "API Mock" --pattern "example.com/api" --status 200
|
|
46
|
-
meddle mock
|
|
49
|
+
meddle mock add --name "Policy A" --pattern "/ops/.*/policy" --query "window_key=A" --body '{"key":"A"}' --cors
|
|
50
|
+
meddle mock update 1 --status 404 --headers '{"X-Debug":"1"}'
|
|
47
51
|
meddle mock delete 1
|
|
48
52
|
`)
|
|
49
53
|
process.exit(1)
|
|
50
|
-
}
|
|
54
|
+
}
|
|
@@ -48,6 +48,7 @@ async function run() {
|
|
|
48
48
|
output.section('Active Rules')
|
|
49
49
|
active.forEach(rule => {
|
|
50
50
|
output.success(`#${rule.id}: ${rule.name} (${rule.urlPattern})`)
|
|
51
|
+
if (rule.query) output.kv('Query', rule.query, 4)
|
|
51
52
|
output.kv('Status', rule.statusCode, 4)
|
|
52
53
|
output.kv('Method', rule.method || '*', 4)
|
|
53
54
|
output.kv('Delay', `${rule.delay || 0}ms`, 4)
|
|
@@ -5,13 +5,25 @@
|
|
|
5
5
|
const output = require('../../lib/output')
|
|
6
6
|
const { isProxyRunning } = require('../../lib/proxy-detect')
|
|
7
7
|
const { apiPut } = require('../../lib/api-client')
|
|
8
|
-
const { updateMockRule
|
|
8
|
+
const { updateMockRule } = require('../../lib/file-access')
|
|
9
9
|
|
|
10
10
|
// Parse arguments (skip 'mock' and 'update' from argv)
|
|
11
11
|
const args = process.argv.slice(4)
|
|
12
12
|
const jsonFlag = args.includes('--json')
|
|
13
13
|
output.setJsonMode(jsonFlag)
|
|
14
14
|
|
|
15
|
+
function parseCorsFlag(options) {
|
|
16
|
+
if (!options.cors) return
|
|
17
|
+
const corsHeaders = {
|
|
18
|
+
'Access-Control-Allow-Origin': '{origin}',
|
|
19
|
+
'Access-Control-Allow-Credentials': 'true',
|
|
20
|
+
'Access-Control-Allow-Methods': '*',
|
|
21
|
+
'Access-Control-Allow-Headers': '*',
|
|
22
|
+
}
|
|
23
|
+
options.headers = { ...corsHeaders, ...(options.headers || {}) }
|
|
24
|
+
delete options.cors
|
|
25
|
+
}
|
|
26
|
+
|
|
15
27
|
function parseArgs(args) {
|
|
16
28
|
// First positional arg is id
|
|
17
29
|
let id = null
|
|
@@ -20,15 +32,19 @@ function parseArgs(args) {
|
|
|
20
32
|
for (let i = 0; i < args.length; i++) {
|
|
21
33
|
if (args[i] === '--name') options.name = args[++i]
|
|
22
34
|
else if (args[i] === '--pattern') options.urlPattern = args[++i]
|
|
35
|
+
else if (args[i] === '--query') options.query = args[++i]
|
|
23
36
|
else if (args[i] === '--method') options.method = args[++i]
|
|
24
37
|
else if (args[i] === '--status') options.statusCode = parseInt(args[++i], 10)
|
|
25
38
|
else if (args[i] === '--body') options.body = args[++i]
|
|
26
39
|
else if (args[i] === '--delay') options.delay = parseInt(args[++i], 10)
|
|
40
|
+
else if (args[i] === '--cors') options.cors = true
|
|
27
41
|
else if (args[i] === '--headers') {
|
|
42
|
+
const raw = args[++i]
|
|
28
43
|
try {
|
|
29
|
-
options.headers = JSON.parse(
|
|
44
|
+
options.headers = JSON.parse(raw)
|
|
30
45
|
} catch (_) {
|
|
31
|
-
|
|
46
|
+
output.error('Invalid --headers JSON: ' + raw)
|
|
47
|
+
process.exit(1)
|
|
32
48
|
}
|
|
33
49
|
}
|
|
34
50
|
else if (!args[i].startsWith('--') && id === null) {
|
|
@@ -36,6 +52,7 @@ function parseArgs(args) {
|
|
|
36
52
|
}
|
|
37
53
|
}
|
|
38
54
|
|
|
55
|
+
parseCorsFlag(options)
|
|
39
56
|
return { id, options }
|
|
40
57
|
}
|
|
41
58
|
|
|
@@ -83,12 +100,14 @@ async function run() {
|
|
|
83
100
|
output.header('Mock Rule Updated')
|
|
84
101
|
output.success(`#${result.id}: ${result.name}`)
|
|
85
102
|
if (options.urlPattern) output.kv('Pattern', result.urlPattern)
|
|
103
|
+
if (options.query !== undefined) output.kv('Query', result.query || '(none)')
|
|
86
104
|
if (options.method) output.kv('Method', result.method)
|
|
87
105
|
if (options.statusCode) output.kv('Status', result.statusCode)
|
|
88
106
|
if (options.delay) output.kv('Delay', `${result.delay}ms`)
|
|
107
|
+
if (options.headers) output.kv('Headers', JSON.stringify(result.headers || {}))
|
|
89
108
|
}
|
|
90
109
|
|
|
91
110
|
run().catch(e => {
|
|
92
111
|
output.error(e.message)
|
|
93
112
|
process.exit(1)
|
|
94
|
-
})
|
|
113
|
+
})
|
package/dist/core/h2-pool.d.ts
CHANGED
|
@@ -3,5 +3,6 @@ import type { ProxyResponse } from './types';
|
|
|
3
3
|
export declare const UPSTREAM_TIMEOUT_CODE = "UPSTREAM_TIMEOUT";
|
|
4
4
|
export declare function cleanHeadersForH2(headers: Record<string, any>): Record<string, any>;
|
|
5
5
|
export declare function __setH2SessionFactoryForTest(factory: ((origin: string, opts: http2.SecureClientSessionOptions) => http2.ClientHttp2Session) | null): void;
|
|
6
|
+
export declare function __setForceHttp1ForTest(value: boolean | null): void;
|
|
6
7
|
export declare function makeProxyRequest(target: string, method: string, headers: Record<string, any>, reqBody: Buffer): Promise<ProxyResponse>;
|
|
7
8
|
//# sourceMappingURL=h2-pool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"h2-pool.d.ts","sourceRoot":"","sources":["../../core/h2-pool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"h2-pool.d.ts","sourceRoot":"","sources":["../../core/h2-pool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAyB5C,eAAO,MAAM,qBAAqB,qBAAqB,CAAA;AA2BvD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CASnF;AAKD,wBAAgB,4BAA4B,CACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,0BAA0B,KAAK,KAAK,CAAC,kBAAkB,CAAC,GAAG,IAAI,GACvG,IAAI,CAEN;AAKD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAElE;AAkKD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAU5I"}
|
package/dist/core/h2-pool.js
CHANGED
|
@@ -39,6 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.UPSTREAM_TIMEOUT_CODE = void 0;
|
|
40
40
|
exports.cleanHeadersForH2 = cleanHeadersForH2;
|
|
41
41
|
exports.__setH2SessionFactoryForTest = __setH2SessionFactoryForTest;
|
|
42
|
+
exports.__setForceHttp1ForTest = __setForceHttp1ForTest;
|
|
42
43
|
exports.makeProxyRequest = makeProxyRequest;
|
|
43
44
|
const http = __importStar(require("http"));
|
|
44
45
|
const https = __importStar(require("https"));
|
|
@@ -48,10 +49,19 @@ const proxyDebug = (0, debug_1.default)('proxy');
|
|
|
48
49
|
const h2SessionPool = new Map();
|
|
49
50
|
const MAX_H2_SESSIONS = process.env.MEDDLE_MAX_H2_SESSIONS ? parseInt(process.env.MEDDLE_MAX_H2_SESSIONS) : 32;
|
|
50
51
|
const DEFAULT_UPSTREAM_REQUEST_TIMEOUT_MS = 60000;
|
|
52
|
+
// Shorter than H1: deno's http2 client can hang on empty-body responses; fallback
|
|
53
|
+
// to H1 should happen before a CORS / browser request looks "stuck" (#72).
|
|
54
|
+
const DEFAULT_H2_REQUEST_TIMEOUT_MS = 8000;
|
|
55
|
+
function parsePositiveMs(raw, fallback) {
|
|
56
|
+
const parsed = raw ? parseInt(raw, 10) : NaN;
|
|
57
|
+
return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
|
|
58
|
+
}
|
|
51
59
|
function upstreamTimeoutMs() {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
60
|
+
return parsePositiveMs(process.env.MEDDLE_UPSTREAM_TIMEOUT_MS, DEFAULT_UPSTREAM_REQUEST_TIMEOUT_MS);
|
|
61
|
+
}
|
|
62
|
+
function h2RequestTimeoutMs() {
|
|
63
|
+
const h2 = parsePositiveMs(process.env.MEDDLE_H2_REQUEST_TIMEOUT_MS, DEFAULT_H2_REQUEST_TIMEOUT_MS);
|
|
64
|
+
return Math.min(h2, upstreamTimeoutMs());
|
|
55
65
|
}
|
|
56
66
|
exports.UPSTREAM_TIMEOUT_CODE = 'UPSTREAM_TIMEOUT';
|
|
57
67
|
function upstreamTimeoutError(target, timeoutMs) {
|
|
@@ -99,6 +109,21 @@ let sessionFactoryOverride = null;
|
|
|
99
109
|
function __setH2SessionFactoryForTest(factory) {
|
|
100
110
|
sessionFactoryOverride = factory;
|
|
101
111
|
}
|
|
112
|
+
// Deno's node:http2 client hangs on empty-body responses (204/HEAD/OPTIONS)
|
|
113
|
+
// regardless of method (#72, #74 follow-up). Binary builds must not use it.
|
|
114
|
+
let forceHttp1Override = null;
|
|
115
|
+
function __setForceHttp1ForTest(value) {
|
|
116
|
+
forceHttp1Override = value;
|
|
117
|
+
}
|
|
118
|
+
function isDenoRuntime() {
|
|
119
|
+
return typeof globalThis.Deno !== 'undefined'
|
|
120
|
+
|| typeof process.versions.deno === 'string';
|
|
121
|
+
}
|
|
122
|
+
function shouldForceHttp1() {
|
|
123
|
+
if (forceHttp1Override !== null)
|
|
124
|
+
return forceHttp1Override;
|
|
125
|
+
return isDenoRuntime();
|
|
126
|
+
}
|
|
102
127
|
function createH2Session(origin, opts) {
|
|
103
128
|
return sessionFactoryOverride ? sessionFactoryOverride(origin, opts) : http2.connect(origin, opts);
|
|
104
129
|
}
|
|
@@ -151,6 +176,13 @@ function getOrCreateH2Session(origin, servername) {
|
|
|
151
176
|
});
|
|
152
177
|
});
|
|
153
178
|
}
|
|
179
|
+
/** CORS preflight (OPTIONS) and HEAD typically have empty bodies. Deno's
|
|
180
|
+
* node:http2 client never emits `response`/`end` for those, so they must
|
|
181
|
+
* not go through proxyViaH2 (#72). */
|
|
182
|
+
function shouldSkipHttp2(method) {
|
|
183
|
+
const m = String(method || '').toUpperCase();
|
|
184
|
+
return m === 'OPTIONS' || m === 'HEAD';
|
|
185
|
+
}
|
|
154
186
|
function proxyViaH2(target, method, headers, reqBody) {
|
|
155
187
|
const url = new URL(target);
|
|
156
188
|
const origin = url.origin;
|
|
@@ -159,30 +191,54 @@ function proxyViaH2(target, method, headers, reqBody) {
|
|
|
159
191
|
const servername = (url.hostname !== originalHostname) ? originalHostname : undefined;
|
|
160
192
|
return getOrCreateH2Session(origin, servername).then(session => {
|
|
161
193
|
return new Promise((resolve, reject) => {
|
|
194
|
+
const h2Headers = cleanHeadersForH2(headers);
|
|
195
|
+
h2Headers[':method'] = method;
|
|
196
|
+
h2Headers[':path'] = url.pathname + url.search;
|
|
197
|
+
h2Headers[':authority'] = originalHost;
|
|
198
|
+
h2Headers[':scheme'] = url.protocol.replace(':', '');
|
|
199
|
+
let h2Stream;
|
|
162
200
|
try {
|
|
163
|
-
|
|
164
|
-
h2Headers[':method'] = method;
|
|
165
|
-
h2Headers[':path'] = url.pathname + url.search;
|
|
166
|
-
h2Headers[':authority'] = originalHost;
|
|
167
|
-
h2Headers[':scheme'] = url.protocol.replace(':', '');
|
|
168
|
-
const h2Stream = session.request(h2Headers);
|
|
169
|
-
h2Stream.on('response', (resHeaders) => {
|
|
170
|
-
const statusCode = Number(resHeaders[':status']);
|
|
171
|
-
const clean = {};
|
|
172
|
-
for (const [k, v] of Object.entries(resHeaders)) {
|
|
173
|
-
if (!k.startsWith(':'))
|
|
174
|
-
clean[k] = v;
|
|
175
|
-
}
|
|
176
|
-
resolve({ statusCode, statusMessage: '', headers: clean, stream: h2Stream, protocol: 'h2' });
|
|
177
|
-
});
|
|
178
|
-
h2Stream.on('error', reject);
|
|
179
|
-
if (reqBody && reqBody.length > 0)
|
|
180
|
-
h2Stream.write(reqBody);
|
|
181
|
-
h2Stream.end();
|
|
201
|
+
h2Stream = session.request(h2Headers);
|
|
182
202
|
}
|
|
183
203
|
catch (err) {
|
|
184
204
|
reject(err);
|
|
205
|
+
return;
|
|
185
206
|
}
|
|
207
|
+
const timeoutMs = h2RequestTimeoutMs();
|
|
208
|
+
let settled = false;
|
|
209
|
+
const settle = (fn) => {
|
|
210
|
+
if (settled)
|
|
211
|
+
return;
|
|
212
|
+
settled = true;
|
|
213
|
+
clearTimeout(timer);
|
|
214
|
+
fn();
|
|
215
|
+
};
|
|
216
|
+
const timer = setTimeout(() => {
|
|
217
|
+
settle(() => {
|
|
218
|
+
try {
|
|
219
|
+
h2Stream.close();
|
|
220
|
+
}
|
|
221
|
+
catch (_) { /* ignore */ }
|
|
222
|
+
try {
|
|
223
|
+
h2Stream.destroy();
|
|
224
|
+
}
|
|
225
|
+
catch (_) { /* ignore */ }
|
|
226
|
+
reject(upstreamTimeoutError(target, timeoutMs));
|
|
227
|
+
});
|
|
228
|
+
}, timeoutMs);
|
|
229
|
+
h2Stream.on('response', (resHeaders) => {
|
|
230
|
+
const statusCode = Number(resHeaders[':status']);
|
|
231
|
+
const clean = {};
|
|
232
|
+
for (const [k, v] of Object.entries(resHeaders)) {
|
|
233
|
+
if (!k.startsWith(':'))
|
|
234
|
+
clean[k] = v;
|
|
235
|
+
}
|
|
236
|
+
settle(() => resolve({ statusCode, statusMessage: '', headers: clean, stream: h2Stream, protocol: 'h2' }));
|
|
237
|
+
});
|
|
238
|
+
h2Stream.on('error', (err) => settle(() => reject(err)));
|
|
239
|
+
if (reqBody && reqBody.length > 0)
|
|
240
|
+
h2Stream.write(reqBody);
|
|
241
|
+
h2Stream.end();
|
|
186
242
|
});
|
|
187
243
|
});
|
|
188
244
|
}
|
|
@@ -219,7 +275,7 @@ function proxyViaH1(target, method, headers, reqBody) {
|
|
|
219
275
|
});
|
|
220
276
|
}
|
|
221
277
|
async function makeProxyRequest(target, method, headers, reqBody) {
|
|
222
|
-
if (target.startsWith('https')) {
|
|
278
|
+
if (target.startsWith('https') && !shouldSkipHttp2(method) && !shouldForceHttp1()) {
|
|
223
279
|
try {
|
|
224
280
|
return await proxyViaH2(target, method, headers, reqBody);
|
|
225
281
|
}
|
package/dist/core/h2-pool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"h2-pool.js","sourceRoot":"","sources":["../../core/h2-pool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"h2-pool.js","sourceRoot":"","sources":["../../core/h2-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-handler.d.ts","sourceRoot":"","sources":["../../core/mock-handler.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"mock-handler.d.ts","sourceRoot":"","sources":["../../core/mock-handler.ts"],"names":[],"mappings":"AAOA,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,CAgQhE"}
|
|
@@ -45,6 +45,7 @@ const map_local_1 = require("./map-local");
|
|
|
45
45
|
const proxy_record_1 = require("./proxy-record");
|
|
46
46
|
const client_identity_1 = require("./client-identity");
|
|
47
47
|
const body_utils_1 = require("./body-utils");
|
|
48
|
+
const mock_utils_1 = require("./mock-utils");
|
|
48
49
|
const proxyDebug = (0, debug_1.default)('proxy');
|
|
49
50
|
/** 按 id 去重,后出现的条目覆盖先前的(与前端 use-mocks 行为一致) */
|
|
50
51
|
function dedupeMockRulesById(rules) {
|
|
@@ -117,25 +118,23 @@ function createMockHandler(ctx) {
|
|
|
117
118
|
return false;
|
|
118
119
|
if (rule.method && rule.method !== '*' && rule.method.toUpperCase() !== method.toUpperCase())
|
|
119
120
|
return false;
|
|
120
|
-
|
|
121
|
-
return
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}
|
|
121
|
+
if (!(0, mock_utils_1.matchUrlPattern)(url, rule.urlPattern))
|
|
122
|
+
return false;
|
|
123
|
+
if (!(0, mock_utils_1.matchQueryCondition)(url, rule.query))
|
|
124
|
+
return false;
|
|
125
|
+
return true;
|
|
126
126
|
}) || null;
|
|
127
127
|
}
|
|
128
|
-
function buildMockResponseForTest(rule) {
|
|
128
|
+
function buildMockResponseForTest(rule, requestHeaders) {
|
|
129
129
|
const statusCode = rule.statusCode || 200;
|
|
130
130
|
const ruleHeaders = {};
|
|
131
131
|
for (const [key, value] of Object.entries(rule.headers || {})) {
|
|
132
132
|
ruleHeaders[key.toLowerCase()] = value;
|
|
133
133
|
}
|
|
134
|
-
const headers = {
|
|
134
|
+
const headers = (0, mock_utils_1.resolveHeaderPlaceholders)((0, mock_utils_1.mergeResponseHeaders)({
|
|
135
135
|
'x-mock-rule': encodeURIComponent(rule.name || rule.id?.toString() || rule.urlPattern || ''),
|
|
136
|
-
'content-type':
|
|
137
|
-
|
|
138
|
-
};
|
|
136
|
+
'content-type': 'application/json',
|
|
137
|
+
}, ruleHeaders), requestHeaders);
|
|
139
138
|
let body = '';
|
|
140
139
|
if (rule.bodyType === 'file' && rule.body) {
|
|
141
140
|
let filePath = rule.body.replace(/^file:\/\//, '').replace(/^\/[A-Za-z]:\//, '');
|
|
@@ -171,13 +170,12 @@ function createMockHandler(ctx) {
|
|
|
171
170
|
for (const [key, value] of Object.entries(rule.headers || {})) {
|
|
172
171
|
ruleHeaders[key.toLowerCase()] = value;
|
|
173
172
|
}
|
|
174
|
-
const responseHeaders = {
|
|
173
|
+
const responseHeaders = (0, mock_utils_1.resolveHeaderPlaceholders)((0, mock_utils_1.mergeResponseHeaders)({
|
|
175
174
|
'X-Mock-Rule': encodeURIComponent(mockRuleName),
|
|
176
175
|
'Access-Control-Allow-Origin': '*',
|
|
177
176
|
'Access-Control-Allow-Methods': '*',
|
|
178
177
|
'Access-Control-Allow-Headers': '*',
|
|
179
|
-
|
|
180
|
-
};
|
|
178
|
+
}, ruleHeaders), req.headers);
|
|
181
179
|
let finalStatusCode = statusCode;
|
|
182
180
|
let statusMessage = 'OK (Mock)';
|
|
183
181
|
if (isFileBody) {
|
|
@@ -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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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for mock URL/query matching and response header placeholders.
|
|
3
|
+
*/
|
|
4
|
+
/** Extract the query string (without leading `?`) from a full or path-only URL. */
|
|
5
|
+
export declare function extractUrlSearch(url: string): string;
|
|
6
|
+
/** Match urlPattern as RegExp, falling back to substring includes on invalid regex. */
|
|
7
|
+
export declare function matchUrlPattern(url: string, pattern: string): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Optional query condition: every `&`-separated token must match an exact
|
|
10
|
+
* `key=value` parameter in the URL search (URLSearchParams / `&`-boundary
|
|
11
|
+
* semantics). Example: `window_key=A` matches `?window_key=A&x=1` but not
|
|
12
|
+
* `?window_key=AB`. Multi-token `a=1&b=2` requires all pairs.
|
|
13
|
+
* Empty/undefined query matches any request.
|
|
14
|
+
*/
|
|
15
|
+
export declare function matchQueryCondition(url: string, query?: string | null): boolean;
|
|
16
|
+
/** Read Origin from request headers (case-insensitive). Falls back to `*`. */
|
|
17
|
+
export declare function getRequestOrigin(headers?: Record<string, any> | null): string;
|
|
18
|
+
/** Credentials-friendly CORS header template (Origin echoed via `{origin}`). */
|
|
19
|
+
export declare function corsCredentialHeaders(): Record<string, string>;
|
|
20
|
+
/**
|
|
21
|
+
* Resolve `{origin}` placeholders in header values using the request Origin.
|
|
22
|
+
* Placeholder match is case-insensitive.
|
|
23
|
+
*/
|
|
24
|
+
export declare function resolveHeaderPlaceholders(headers: Record<string, string>, requestHeaders?: Record<string, any> | null): Record<string, string>;
|
|
25
|
+
/**
|
|
26
|
+
* Merge header maps case-insensitively: later entries win and replace any
|
|
27
|
+
* existing key that matches ignoring case (avoids duplicate ACAO * + {origin}).
|
|
28
|
+
*/
|
|
29
|
+
export declare function mergeResponseHeaders(...layers: Array<Record<string, string> | null | undefined>): Record<string, string>;
|
|
30
|
+
//# sourceMappingURL=mock-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-utils.d.ts","sourceRoot":"","sources":["../../core/mock-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAOrE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAiB/E;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,CAS7E;AAED,gFAAgF;AAChF,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO9D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAC5C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,GAAG,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GAC5D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAaxB"}
|