@jonathanleelx/meddle 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONFIG_STRUCTURE.md +315 -0
- package/LICENSE +21 -0
- package/README.md +298 -0
- package/bin/commands/mock/add.js +92 -0
- package/bin/commands/mock/delete.js +58 -0
- package/bin/commands/mock/index.js +50 -0
- package/bin/commands/mock/list.js +68 -0
- package/bin/commands/mock/toggle.js +64 -0
- package/bin/commands/mock/update.js +94 -0
- package/bin/commands/route/active.js +141 -0
- package/bin/commands/route/add.js +127 -0
- package/bin/commands/route/create.js +77 -0
- package/bin/commands/route/delete.js +120 -0
- package/bin/commands/route/index.js +59 -0
- package/bin/commands/route/list.js +67 -0
- package/bin/commands/route/preview.js +159 -0
- package/bin/commands/route/show.js +111 -0
- package/bin/commands/route/update.js +126 -0
- package/bin/commands/session/create.js +166 -0
- package/bin/commands/session/delete.js +69 -0
- package/bin/commands/session/index.js +61 -0
- package/bin/commands/session/list.js +42 -0
- package/bin/commands/session/prune.js +31 -0
- package/bin/commands/start.js +43 -0
- package/bin/commands/status.js +115 -0
- package/bin/commands/supervise.js +106 -0
- package/bin/commands/url.js +30 -0
- package/bin/doctor.js +356 -0
- package/bin/index +130 -0
- package/bin/lib/api-client.js +72 -0
- package/bin/lib/file-access.js +337 -0
- package/bin/lib/meddle-home.js +20 -0
- package/bin/lib/output.js +146 -0
- package/bin/lib/parsers.js +127 -0
- package/bin/lib/proxy-detect.js +105 -0
- package/bin/lib/route-preview.js +180 -0
- package/bin/lib/session-args.js +54 -0
- package/bin/lib/sessions.js +213 -0
- package/dist/cert.d.ts +10 -0
- package/dist/cert.d.ts.map +1 -0
- package/dist/cert.js +184 -0
- package/dist/cert.js.map +1 -0
- package/dist/core/application-identity.d.ts +55 -0
- package/dist/core/application-identity.d.ts.map +1 -0
- package/dist/core/application-identity.js +321 -0
- package/dist/core/application-identity.js.map +1 -0
- package/dist/core/body-utils.d.ts +2 -0
- package/dist/core/body-utils.d.ts.map +1 -0
- package/dist/core/body-utils.js +21 -0
- package/dist/core/body-utils.js.map +1 -0
- package/dist/core/browser.d.ts +2 -0
- package/dist/core/browser.d.ts.map +1 -0
- package/dist/core/browser.js +92 -0
- package/dist/core/browser.js.map +1 -0
- package/dist/core/client-identity.d.ts +27 -0
- package/dist/core/client-identity.d.ts.map +1 -0
- package/dist/core/client-identity.js +136 -0
- package/dist/core/client-identity.js.map +1 -0
- package/dist/core/config-diagnostics.d.ts +14 -0
- package/dist/core/config-diagnostics.d.ts.map +1 -0
- package/dist/core/config-diagnostics.js +137 -0
- package/dist/core/config-diagnostics.js.map +1 -0
- package/dist/core/connect-tunnel.d.ts +5 -0
- package/dist/core/connect-tunnel.d.ts.map +1 -0
- package/dist/core/connect-tunnel.js +45 -0
- package/dist/core/connect-tunnel.js.map +1 -0
- package/dist/core/content-encoding.d.ts +2 -0
- package/dist/core/content-encoding.d.ts.map +1 -0
- package/dist/core/content-encoding.js +77 -0
- package/dist/core/content-encoding.js.map +1 -0
- package/dist/core/custom-plugin-loader.d.ts +18 -0
- package/dist/core/custom-plugin-loader.d.ts.map +1 -0
- package/dist/core/custom-plugin-loader.js +178 -0
- package/dist/core/custom-plugin-loader.js.map +1 -0
- package/dist/core/h2-pool.d.ts +4 -0
- package/dist/core/h2-pool.d.ts.map +1 -0
- package/dist/core/h2-pool.js +180 -0
- package/dist/core/h2-pool.js.map +1 -0
- package/dist/core/inspection-dispatch.d.ts +5 -0
- package/dist/core/inspection-dispatch.d.ts.map +1 -0
- package/dist/core/inspection-dispatch.js +146 -0
- package/dist/core/inspection-dispatch.js.map +1 -0
- package/dist/core/log-rate-limit.d.ts +34 -0
- package/dist/core/log-rate-limit.d.ts.map +1 -0
- package/dist/core/log-rate-limit.js +52 -0
- package/dist/core/log-rate-limit.js.map +1 -0
- package/dist/core/map-local.d.ts +4 -0
- package/dist/core/map-local.d.ts.map +1 -0
- package/dist/core/map-local.js +195 -0
- package/dist/core/map-local.js.map +1 -0
- package/dist/core/meddle-home.d.ts +13 -0
- package/dist/core/meddle-home.d.ts.map +1 -0
- package/dist/core/meddle-home.js +56 -0
- package/dist/core/meddle-home.js.map +1 -0
- package/dist/core/mock-gate.d.ts +3 -0
- package/dist/core/mock-gate.d.ts.map +1 -0
- package/dist/core/mock-gate.js +20 -0
- package/dist/core/mock-gate.js.map +1 -0
- package/dist/core/mock-handler.d.ts +5 -0
- package/dist/core/mock-handler.d.ts.map +1 -0
- package/dist/core/mock-handler.js +339 -0
- package/dist/core/mock-handler.js.map +1 -0
- package/dist/core/on-mode-gate.d.ts +4 -0
- package/dist/core/on-mode-gate.d.ts.map +1 -0
- package/dist/core/on-mode-gate.js +64 -0
- package/dist/core/on-mode-gate.js.map +1 -0
- package/dist/core/pipeline-gate.d.ts +3 -0
- package/dist/core/pipeline-gate.d.ts.map +1 -0
- package/dist/core/pipeline-gate.js +34 -0
- package/dist/core/pipeline-gate.js.map +1 -0
- package/dist/core/pipeline.d.ts +6 -0
- package/dist/core/pipeline.d.ts.map +1 -0
- package/dist/core/pipeline.js +228 -0
- package/dist/core/pipeline.js.map +1 -0
- package/dist/core/plugin-bootstrap-runner.d.ts +6 -0
- package/dist/core/plugin-bootstrap-runner.d.ts.map +1 -0
- package/dist/core/plugin-bootstrap-runner.js +148 -0
- package/dist/core/plugin-bootstrap-runner.js.map +1 -0
- package/dist/core/plugin-bootstrap.d.ts +3 -0
- package/dist/core/plugin-bootstrap.d.ts.map +1 -0
- package/dist/core/plugin-bootstrap.js +15 -0
- package/dist/core/plugin-bootstrap.js.map +1 -0
- package/dist/core/plugin-compiler.d.ts +37 -0
- package/dist/core/plugin-compiler.d.ts.map +1 -0
- package/dist/core/plugin-compiler.js +172 -0
- package/dist/core/plugin-compiler.js.map +1 -0
- package/dist/core/plugin-context-factory.d.ts +29 -0
- package/dist/core/plugin-context-factory.d.ts.map +1 -0
- package/dist/core/plugin-context-factory.js +206 -0
- package/dist/core/plugin-context-factory.js.map +1 -0
- package/dist/core/plugin-generator.d.ts +47 -0
- package/dist/core/plugin-generator.d.ts.map +1 -0
- package/dist/core/plugin-generator.js +697 -0
- package/dist/core/plugin-generator.js.map +1 -0
- package/dist/core/plugin-health.d.ts +3 -0
- package/dist/core/plugin-health.d.ts.map +1 -0
- package/dist/core/plugin-health.js +54 -0
- package/dist/core/plugin-health.js.map +1 -0
- package/dist/core/plugin-intercept.d.ts +17 -0
- package/dist/core/plugin-intercept.d.ts.map +1 -0
- package/dist/core/plugin-intercept.js +133 -0
- package/dist/core/plugin-intercept.js.map +1 -0
- package/dist/core/plugin-runtime.d.ts +33 -0
- package/dist/core/plugin-runtime.d.ts.map +1 -0
- package/dist/core/plugin-runtime.js +254 -0
- package/dist/core/plugin-runtime.js.map +1 -0
- package/dist/core/proxy-context.d.ts +3 -0
- package/dist/core/proxy-context.d.ts.map +1 -0
- package/dist/core/proxy-context.js +129 -0
- package/dist/core/proxy-context.js.map +1 -0
- package/dist/core/proxy-record.d.ts +3 -0
- package/dist/core/proxy-record.d.ts.map +1 -0
- package/dist/core/proxy-record.js +32 -0
- package/dist/core/proxy-record.js.map +1 -0
- package/dist/core/refactor-config.d.ts +6 -0
- package/dist/core/refactor-config.d.ts.map +1 -0
- package/dist/core/refactor-config.js +45 -0
- package/dist/core/refactor-config.js.map +1 -0
- package/dist/core/refactor-status.d.ts +3 -0
- package/dist/core/refactor-status.d.ts.map +1 -0
- package/dist/core/refactor-status.js +19 -0
- package/dist/core/refactor-status.js.map +1 -0
- package/dist/core/remote-access.d.ts +40 -0
- package/dist/core/remote-access.d.ts.map +1 -0
- package/dist/core/remote-access.js +281 -0
- package/dist/core/remote-access.js.map +1 -0
- package/dist/core/route-decision.d.ts +3 -0
- package/dist/core/route-decision.d.ts.map +1 -0
- package/dist/core/route-decision.js +20 -0
- package/dist/core/route-decision.js.map +1 -0
- package/dist/core/route-loader.d.ts +14 -0
- package/dist/core/route-loader.d.ts.map +1 -0
- package/dist/core/route-loader.js +94 -0
- package/dist/core/route-loader.js.map +1 -0
- package/dist/core/route-preview.d.ts +15 -0
- package/dist/core/route-preview.d.ts.map +1 -0
- package/dist/core/route-preview.js +91 -0
- package/dist/core/route-preview.js.map +1 -0
- package/dist/core/runtime-health.d.ts +92 -0
- package/dist/core/runtime-health.d.ts.map +1 -0
- package/dist/core/runtime-health.js +205 -0
- package/dist/core/runtime-health.js.map +1 -0
- package/dist/core/sessions.d.ts +19 -0
- package/dist/core/sessions.d.ts.map +1 -0
- package/dist/core/sessions.js +93 -0
- package/dist/core/sessions.js.map +1 -0
- package/dist/core/shadow-compare.d.ts +8 -0
- package/dist/core/shadow-compare.d.ts.map +1 -0
- package/dist/core/shadow-compare.js +83 -0
- package/dist/core/shadow-compare.js.map +1 -0
- package/dist/core/shadow-readiness.d.ts +4 -0
- package/dist/core/shadow-readiness.d.ts.map +1 -0
- package/dist/core/shadow-readiness.js +118 -0
- package/dist/core/shadow-readiness.js.map +1 -0
- package/dist/core/short-response.d.ts +5 -0
- package/dist/core/short-response.d.ts.map +1 -0
- package/dist/core/short-response.js +18 -0
- package/dist/core/short-response.js.map +1 -0
- package/dist/core/static-server.d.ts +9 -0
- package/dist/core/static-server.d.ts.map +1 -0
- package/dist/core/static-server.js +136 -0
- package/dist/core/static-server.js.map +1 -0
- package/dist/core/types.d.ts +590 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +4 -0
- package/dist/core/types.js.map +1 -0
- package/dist/helpers.d.ts +36 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +290 -0
- package/dist/helpers.js.map +1 -0
- package/dist/plugins/builtin/index.d.ts +3 -0
- package/dist/plugins/builtin/index.d.ts.map +1 -0
- package/dist/plugins/builtin/index.js +23 -0
- package/dist/plugins/builtin/index.js.map +1 -0
- package/dist/plugins/builtin/logger-plugin.d.ts +8 -0
- package/dist/plugins/builtin/logger-plugin.d.ts.map +1 -0
- package/dist/plugins/builtin/logger-plugin.js +121 -0
- package/dist/plugins/builtin/logger-plugin.js.map +1 -0
- package/dist/plugins/builtin/mock-plugin.d.ts +3 -0
- package/dist/plugins/builtin/mock-plugin.d.ts.map +1 -0
- package/dist/plugins/builtin/mock-plugin.js +99 -0
- package/dist/plugins/builtin/mock-plugin.js.map +1 -0
- package/dist/plugins/builtin/router-plugin.d.ts +3 -0
- package/dist/plugins/builtin/router-plugin.d.ts.map +1 -0
- package/dist/plugins/builtin/router-plugin.js +36 -0
- package/dist/plugins/builtin/router-plugin.js.map +1 -0
- package/dist/server/agent/model.d.ts +30 -0
- package/dist/server/agent/model.d.ts.map +1 -0
- package/dist/server/agent/model.js +143 -0
- package/dist/server/agent/model.js.map +1 -0
- package/dist/server/agent/routes.d.ts +4 -0
- package/dist/server/agent/routes.d.ts.map +1 -0
- package/dist/server/agent/routes.js +188 -0
- package/dist/server/agent/routes.js.map +1 -0
- package/dist/server/agent/runtime.d.ts +12 -0
- package/dist/server/agent/runtime.d.ts.map +1 -0
- package/dist/server/agent/runtime.js +208 -0
- package/dist/server/agent/runtime.js.map +1 -0
- package/dist/server/agent/tools.d.ts +13 -0
- package/dist/server/agent/tools.d.ts.map +1 -0
- package/dist/server/agent/tools.js +1201 -0
- package/dist/server/agent/tools.js.map +1 -0
- package/dist/server/agent/types.d.ts +56 -0
- package/dist/server/agent/types.d.ts.map +1 -0
- package/dist/server/agent/types.js +3 -0
- package/dist/server/agent/types.js.map +1 -0
- package/dist/server/config.d.ts +9 -0
- package/dist/server/config.d.ts.map +1 -0
- package/dist/server/config.js +124 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/health.d.ts +4 -0
- package/dist/server/health.d.ts.map +1 -0
- package/dist/server/health.js +22 -0
- package/dist/server/health.js.map +1 -0
- package/dist/server/index.d.ts +239 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +44 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/logs.d.ts +4 -0
- package/dist/server/logs.d.ts.map +1 -0
- package/dist/server/logs.js +40 -0
- package/dist/server/logs.js.map +1 -0
- package/dist/server/mocks.d.ts +9 -0
- package/dist/server/mocks.d.ts.map +1 -0
- package/dist/server/mocks.js +103 -0
- package/dist/server/mocks.js.map +1 -0
- package/dist/server/pipeline.d.ts +16 -0
- package/dist/server/pipeline.d.ts.map +1 -0
- package/dist/server/pipeline.js +159 -0
- package/dist/server/pipeline.js.map +1 -0
- package/dist/server/plugins.d.ts +32 -0
- package/dist/server/plugins.d.ts.map +1 -0
- package/dist/server/plugins.js +795 -0
- package/dist/server/plugins.js.map +1 -0
- package/dist/server/refactor.d.ts +4 -0
- package/dist/server/refactor.d.ts.map +1 -0
- package/dist/server/refactor.js +86 -0
- package/dist/server/refactor.js.map +1 -0
- package/dist/server/rule-files.d.ts +34 -0
- package/dist/server/rule-files.d.ts.map +1 -0
- package/dist/server/rule-files.js +389 -0
- package/dist/server/rule-files.js.map +1 -0
- package/dist/server/rules.d.ts +4 -0
- package/dist/server/rules.d.ts.map +1 -0
- package/dist/server/rules.js +40 -0
- package/dist/server/rules.js.map +1 -0
- package/dist/server/sessions.d.ts +4 -0
- package/dist/server/sessions.d.ts.map +1 -0
- package/dist/server/sessions.js +20 -0
- package/dist/server/sessions.js.map +1 -0
- package/index.js +950 -0
- package/mcp-server.js +794 -0
- package/package.json +92 -0
- package/plugins/builtin/index.ts +25 -0
- package/plugins/builtin/logger-plugin.ts +126 -0
- package/plugins/builtin/mock-plugin.ts +112 -0
- package/plugins/builtin/router-plugin.ts +35 -0
- package/web/README.md +111 -0
- package/web/dist/assets/ai-config-store-DQXVJVn_.js +1 -0
- package/web/dist/assets/alert-COF-DIAE.js +1 -0
- package/web/dist/assets/arrow-right-B4Mrlj2-.js +1 -0
- package/web/dist/assets/babel-DsprIpXZ.js +15 -0
- package/web/dist/assets/body-diff-view-D7dCWajG.js +6 -0
- package/web/dist/assets/button-BTToMaBW.js +1 -0
- package/web/dist/assets/checkbox-DIBarrJx.js +1 -0
- package/web/dist/assets/chevron-down-CPngAx4M.js +1 -0
- package/web/dist/assets/chevron-right-V1DGIDbL.js +1 -0
- package/web/dist/assets/circle-alert-Q8cZk9Rv.js +1 -0
- package/web/dist/assets/circle-x-C9USji_R.js +1 -0
- package/web/dist/assets/code-5_eJ_XpJ.js +1 -0
- package/web/dist/assets/code-fixer-fQtWZ5He.js +20 -0
- package/web/dist/assets/copy-BYjq1hdN.js +1 -0
- package/web/dist/assets/detail-panel-BX_hxeI0.js +3 -0
- package/web/dist/assets/dist-B8XUKgXe.js +1 -0
- package/web/dist/assets/dist-Bb9TeEub.js +1 -0
- package/web/dist/assets/dist-C5nMErq8.js +1 -0
- package/web/dist/assets/dist-C6eaYCUo.js +1 -0
- package/web/dist/assets/dist-Cn0y0IRn.js +1 -0
- package/web/dist/assets/dist-CxdY_A67.js +5 -0
- package/web/dist/assets/dist-D5Dj17P8.js +1 -0
- package/web/dist/assets/dist-DZJ9SMlJ.js +1 -0
- package/web/dist/assets/es2015-CfXu88Y7.js +41 -0
- package/web/dist/assets/estree-BP7k0NIt.js +44 -0
- package/web/dist/assets/file-system-access-CtcvBfj4.js +1 -0
- package/web/dist/assets/global-panel-shell-ChdO0dWd.js +6 -0
- package/web/dist/assets/health-panel-CQeCQ7gr.js +1 -0
- package/web/dist/assets/html-6FIWbqxX.js +25 -0
- package/web/dist/assets/index-CjqaTnE_.css +2 -0
- package/web/dist/assets/index-L7uWxTnp.js +18 -0
- package/web/dist/assets/mobile-proxy-panel-Dj1iLami.js +8 -0
- package/web/dist/assets/mock-config-BTTCw7RK.js +1 -0
- package/web/dist/assets/mock-editor-panel-C-aVfFme.js +1 -0
- package/web/dist/assets/monaco-editor-B3brLg8j.js +11 -0
- package/web/dist/assets/pencil-line-Cqe41E4h.js +1 -0
- package/web/dist/assets/plugin-code-editor-CPjCbJ9g.js +2 -0
- package/web/dist/assets/plugin-config-BzmCkvz3.js +1 -0
- package/web/dist/assets/plugin-generator-BnEafDF9.js +2 -0
- package/web/dist/assets/plugin-test-dialog-BWoWsWV4.js +7 -0
- package/web/dist/assets/plus-tVxSydJ8.js +1 -0
- package/web/dist/assets/postcss-Dnf30fQU.js +61 -0
- package/web/dist/assets/refresh-cw-CG3HaiQT.js +1 -0
- package/web/dist/assets/rotate-ccw-CAYM6Vv0.js +1 -0
- package/web/dist/assets/route-preview-BX7sfY0O.js +1 -0
- package/web/dist/assets/rule-ai-assistant-panel-WBiOOUw5.js +47 -0
- package/web/dist/assets/rule-config-CHpVij2M.css +1 -0
- package/web/dist/assets/rule-config-fTIZVwg1.js +15 -0
- package/web/dist/assets/select-CkFOB61l.js +1 -0
- package/web/dist/assets/server-Cpj4KNwN.js +1 -0
- package/web/dist/assets/settings-panel-COCYiIUg.js +1 -0
- package/web/dist/assets/shield-check-OqUmVLQt.js +1 -0
- package/web/dist/assets/smartphone-DKeDuJTU.js +1 -0
- package/web/dist/assets/standalone-CjxtLKw-.js +29 -0
- package/web/dist/assets/switch-C-Xk56TK.js +1 -0
- package/web/dist/assets/syntax-highlight-DVhPdkuV.js +5 -0
- package/web/dist/assets/table-CT97lAYq.js +1 -0
- package/web/dist/assets/textarea-C6NooVK1.js +1 -0
- package/web/dist/assets/wand-sparkles-wkul5vje.js +1 -0
- package/web/dist/assets/wifi-D9M35Ajj.js +1 -0
- package/web/dist/assets/zap-Djo4cgux.js +1 -0
- package/web/dist/index.html +24 -0
- package/web/dist/vite.svg +1 -0
package/dist/cert.js
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.crtMgr = void 0;
|
|
37
|
+
exports.getCAStatus = getCAStatus;
|
|
38
|
+
exports.ensureRootCA = ensureRootCA;
|
|
39
|
+
exports.getRootCAPath = getRootCAPath;
|
|
40
|
+
const EasyCert = require('node-easy-cert');
|
|
41
|
+
const os = __importStar(require("os"));
|
|
42
|
+
const inquirer = require('inquirer');
|
|
43
|
+
const child_process_1 = require("child_process");
|
|
44
|
+
const fs_1 = require("fs");
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
// 证书存储在 .meddle/ca 目录下(保持独立)
|
|
47
|
+
const rootDirPath = path.resolve(os.homedir(), '.meddle', 'ca');
|
|
48
|
+
const options = {
|
|
49
|
+
rootDirPath: rootDirPath,
|
|
50
|
+
inMemory: false,
|
|
51
|
+
defaultCertAttrs: [
|
|
52
|
+
{ name: 'countryName', value: 'CN' },
|
|
53
|
+
{ name: 'organizationName', value: 'meddle' },
|
|
54
|
+
{ shortName: 'ST', value: 'SH' },
|
|
55
|
+
{ shortName: 'OU', value: 'meddle SSL Proxy' }
|
|
56
|
+
]
|
|
57
|
+
};
|
|
58
|
+
const easyCert = new EasyCert(options);
|
|
59
|
+
const crtMgr = Object.assign({}, easyCert);
|
|
60
|
+
exports.crtMgr = crtMgr;
|
|
61
|
+
crtMgr.ifRootCAFileExists = easyCert.isRootCAFileExists;
|
|
62
|
+
async function doGenerate(overwrite) {
|
|
63
|
+
const rootOptions = {
|
|
64
|
+
commonName: 'meddle',
|
|
65
|
+
overwrite: overwrite
|
|
66
|
+
};
|
|
67
|
+
return new Promise((resolvePromise, reject) => {
|
|
68
|
+
(0, fs_1.stat)(rootDirPath, (err, stats) => {
|
|
69
|
+
if (err) {
|
|
70
|
+
(0, fs_1.mkdirSync)(rootDirPath, { recursive: true });
|
|
71
|
+
}
|
|
72
|
+
else if (stats.isDirectory()) {
|
|
73
|
+
// directory exists
|
|
74
|
+
}
|
|
75
|
+
easyCert.generateRootCA(rootOptions, (error, keyPath, crtPath) => {
|
|
76
|
+
if (error)
|
|
77
|
+
reject(error);
|
|
78
|
+
else
|
|
79
|
+
resolvePromise({ keyPath, crtPath });
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
// Exported for future use
|
|
85
|
+
async function getCAStatus() {
|
|
86
|
+
const result = {
|
|
87
|
+
exist: false,
|
|
88
|
+
};
|
|
89
|
+
const ifExist = easyCert.isRootCAFileExists();
|
|
90
|
+
if (!ifExist) {
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
result.exist = true;
|
|
95
|
+
if (!/^win/.test(process.platform)) {
|
|
96
|
+
result.trusted = easyCert.ifRootCATrusted;
|
|
97
|
+
}
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function openCertForUser(rootCAPath) {
|
|
102
|
+
const platform = os.platform();
|
|
103
|
+
if (platform === 'darwin') {
|
|
104
|
+
try {
|
|
105
|
+
(0, child_process_1.execSync)(`open "${rootCAPath}"`, { stdio: 'inherit' });
|
|
106
|
+
console.log('\n已打开证书文件,请在 Keychain Access 中:');
|
|
107
|
+
console.log(' 1. 双击证书 -> 展开「Trust」');
|
|
108
|
+
console.log(' 2. 将「When using this certificate」设为「Always Trust」');
|
|
109
|
+
console.log(' 3. 关闭窗口并输入密码保存\n');
|
|
110
|
+
}
|
|
111
|
+
catch (err) {
|
|
112
|
+
console.log('证书路径:', rootCAPath);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else if (platform === 'win32') {
|
|
116
|
+
try {
|
|
117
|
+
(0, child_process_1.execSync)(`start "" "${rootCAPath}"`, { stdio: 'inherit' });
|
|
118
|
+
console.log('\n已打开证书,请按系统提示安装并信任。\n');
|
|
119
|
+
}
|
|
120
|
+
catch (err) {
|
|
121
|
+
console.log('证书路径:', rootCAPath);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
async function trustRootCA() {
|
|
126
|
+
const platform = os.platform();
|
|
127
|
+
const rootCAPath = crtMgr.getRootCAFilePath();
|
|
128
|
+
const answer = await inquirer.prompt([
|
|
129
|
+
{
|
|
130
|
+
type: 'list',
|
|
131
|
+
name: 'trustCA',
|
|
132
|
+
message: '根证书尚未信任,请选择操作:',
|
|
133
|
+
choices: [
|
|
134
|
+
{ name: '自动添加信任(需输入密码)', value: 'auto' },
|
|
135
|
+
{ name: '打开证书文件,手动添加信任', value: 'manual' },
|
|
136
|
+
{ name: '稍后自行处理', value: 'skip' }
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
]);
|
|
140
|
+
if (answer.trustCA === 'manual') {
|
|
141
|
+
openCertForUser(rootCAPath);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
if (answer.trustCA === 'skip') {
|
|
145
|
+
console.log('证书路径:', rootCAPath, '- 请稍后手动添加信任以支持 HTTPS 代理。');
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (platform === 'darwin' && answer.trustCA === 'auto') {
|
|
149
|
+
try {
|
|
150
|
+
(0, child_process_1.execSync)(`sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain "${rootCAPath}"`, {
|
|
151
|
+
stdio: 'inherit'
|
|
152
|
+
});
|
|
153
|
+
console.log('根证书已成功添加到系统信任。');
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
console.error('自动添加失败,正在打开证书文件供手动添加...');
|
|
157
|
+
openCertForUser(rootCAPath);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
else if (platform === 'win32' && answer.trustCA === 'auto') {
|
|
161
|
+
openCertForUser(rootCAPath);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
async function ensureRootCA() {
|
|
165
|
+
if (!crtMgr.ifRootCAFileExists()) {
|
|
166
|
+
const { keyPath, crtPath } = await doGenerate(false);
|
|
167
|
+
console.log('根证书已生成:', keyPath, crtPath);
|
|
168
|
+
}
|
|
169
|
+
const isTrusted = await new Promise((resolve) => {
|
|
170
|
+
crtMgr.ifRootCATrusted((err, trusted) => {
|
|
171
|
+
if (err)
|
|
172
|
+
resolve(false);
|
|
173
|
+
else
|
|
174
|
+
resolve(trusted);
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
if (!isTrusted && !process.env.MEDDLE_HEADLESS && !process.env.MEDDLE_MCP) {
|
|
178
|
+
await trustRootCA();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
function getRootCAPath() {
|
|
182
|
+
return crtMgr.getRootCAFilePath();
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=cert.js.map
|
package/dist/cert.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cert.js","sourceRoot":"","sources":["../cert.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export type ApplicationIdentitySource = 'local-process' | 'user-agent' | 'client-reported';
|
|
2
|
+
export type ApplicationIdentityConfidence = 'high' | 'medium' | 'low';
|
|
3
|
+
export interface ApplicationIdentity {
|
|
4
|
+
applicationName: string;
|
|
5
|
+
applicationProcess?: string;
|
|
6
|
+
applicationPid?: number;
|
|
7
|
+
applicationPath?: string;
|
|
8
|
+
applicationBundleId?: string;
|
|
9
|
+
applicationIdentitySource: ApplicationIdentitySource;
|
|
10
|
+
applicationIdentityConfidence: ApplicationIdentityConfidence;
|
|
11
|
+
}
|
|
12
|
+
export interface ConnectionSocket {
|
|
13
|
+
remoteAddress?: string;
|
|
14
|
+
remotePort?: number;
|
|
15
|
+
localAddress?: string;
|
|
16
|
+
localPort?: number;
|
|
17
|
+
}
|
|
18
|
+
export type ApplicationRequestHeaders = Record<string, string | string[] | undefined>;
|
|
19
|
+
export interface ApplicationIdentityResolveContext {
|
|
20
|
+
clientType?: 'local' | 'remote' | 'plugin';
|
|
21
|
+
socket?: ConnectionSocket;
|
|
22
|
+
headers?: ApplicationRequestHeaders;
|
|
23
|
+
existingIdentity?: Partial<ApplicationIdentity>;
|
|
24
|
+
}
|
|
25
|
+
interface ProcessMatch {
|
|
26
|
+
pid: number;
|
|
27
|
+
command: string;
|
|
28
|
+
}
|
|
29
|
+
type CommandRunner = (command: string, args: string[]) => Promise<string>;
|
|
30
|
+
export interface ApplicationIdentityResolverOptions {
|
|
31
|
+
platform?: NodeJS.Platform;
|
|
32
|
+
proxyPid?: number;
|
|
33
|
+
runCommand?: CommandRunner;
|
|
34
|
+
}
|
|
35
|
+
export interface ApplicationIdentityResolver {
|
|
36
|
+
resolve(context: ApplicationIdentityResolveContext): Promise<ApplicationIdentity | undefined>;
|
|
37
|
+
}
|
|
38
|
+
export interface ApplicationIdentityStrategy {
|
|
39
|
+
id: ApplicationIdentitySource;
|
|
40
|
+
resolve(context: ApplicationIdentityResolveContext): ApplicationIdentity | undefined | Promise<ApplicationIdentity | undefined>;
|
|
41
|
+
}
|
|
42
|
+
export declare function parseLsofProcess(output: string, remotePort: number, localPort: number, proxyPid: number, remoteAddress?: string, localAddress?: string): ProcessMatch | undefined;
|
|
43
|
+
export declare function extractMacApplicationPath(commandLine: string): string | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Infer the browser or embedded web runtime represented by a User-Agent string.
|
|
46
|
+
* The result describes the HTTP client signature, not a verified remote process.
|
|
47
|
+
*/
|
|
48
|
+
export declare function inferApplicationIdentityFromUserAgent(userAgent: string | undefined | null): ApplicationIdentity | undefined;
|
|
49
|
+
export declare function inferApplicationIdentityFromHeaders(headers: ApplicationRequestHeaders | undefined): ApplicationIdentity | undefined;
|
|
50
|
+
export declare function createApplicationIdentityPipeline(strategies: ApplicationIdentityStrategy[]): ApplicationIdentityResolver;
|
|
51
|
+
export declare function createLocalProcessApplicationIdentityStrategy(options?: ApplicationIdentityResolverOptions): ApplicationIdentityStrategy;
|
|
52
|
+
export declare function createUserAgentApplicationIdentityStrategy(): ApplicationIdentityStrategy;
|
|
53
|
+
export declare function createApplicationIdentityResolver(options?: ApplicationIdentityResolverOptions): ApplicationIdentityResolver;
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=application-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-identity.d.ts","sourceRoot":"","sources":["../../core/application-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.parseLsofProcess = parseLsofProcess;
|
|
37
|
+
exports.extractMacApplicationPath = extractMacApplicationPath;
|
|
38
|
+
exports.inferApplicationIdentityFromUserAgent = inferApplicationIdentityFromUserAgent;
|
|
39
|
+
exports.inferApplicationIdentityFromHeaders = inferApplicationIdentityFromHeaders;
|
|
40
|
+
exports.createApplicationIdentityPipeline = createApplicationIdentityPipeline;
|
|
41
|
+
exports.createLocalProcessApplicationIdentityStrategy = createLocalProcessApplicationIdentityStrategy;
|
|
42
|
+
exports.createUserAgentApplicationIdentityStrategy = createUserAgentApplicationIdentityStrategy;
|
|
43
|
+
exports.createApplicationIdentityResolver = createApplicationIdentityResolver;
|
|
44
|
+
const child_process_1 = require("child_process");
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
const remote_access_1 = require("./remote-access");
|
|
47
|
+
function runCommand(command, args) {
|
|
48
|
+
return new Promise((resolve, reject) => {
|
|
49
|
+
(0, child_process_1.execFile)(command, args, {
|
|
50
|
+
encoding: 'utf8',
|
|
51
|
+
maxBuffer: 1024 * 1024,
|
|
52
|
+
timeout: 1500,
|
|
53
|
+
}, (error, stdout) => {
|
|
54
|
+
if (error) {
|
|
55
|
+
reject(error);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
resolve(stdout);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
function parseNetworkEndpoint(endpoint) {
|
|
63
|
+
const match = endpoint.trim().match(/^(.*):(\d+)$/);
|
|
64
|
+
if (!match)
|
|
65
|
+
return undefined;
|
|
66
|
+
const port = Number(match[2]);
|
|
67
|
+
if (!Number.isInteger(port))
|
|
68
|
+
return undefined;
|
|
69
|
+
const rawAddress = match[1].replace(/^\[|\]$/g, '');
|
|
70
|
+
return {
|
|
71
|
+
address: (0, remote_access_1.normalizeIpAddress)(rawAddress).toLowerCase(),
|
|
72
|
+
port,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function endpointMatches(endpoint, port, address) {
|
|
76
|
+
if (!endpoint || endpoint.port !== port)
|
|
77
|
+
return false;
|
|
78
|
+
if (!address)
|
|
79
|
+
return true;
|
|
80
|
+
return endpoint.address === (0, remote_access_1.normalizeIpAddress)(address).toLowerCase();
|
|
81
|
+
}
|
|
82
|
+
function parseLsofProcess(output, remotePort, localPort, proxyPid, remoteAddress, localAddress) {
|
|
83
|
+
const processes = [];
|
|
84
|
+
let current;
|
|
85
|
+
for (const line of output.split(/\r?\n/)) {
|
|
86
|
+
if (!line)
|
|
87
|
+
continue;
|
|
88
|
+
const field = line[0];
|
|
89
|
+
const value = line.slice(1);
|
|
90
|
+
if (field === 'p') {
|
|
91
|
+
const pid = Number(value);
|
|
92
|
+
if (!Number.isInteger(pid)) {
|
|
93
|
+
current = undefined;
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
current = { pid, command: '', endpoints: [] };
|
|
97
|
+
processes.push(current);
|
|
98
|
+
}
|
|
99
|
+
else if (field === 'c' && current) {
|
|
100
|
+
current.command = value.trim();
|
|
101
|
+
}
|
|
102
|
+
else if (field === 'n' && current) {
|
|
103
|
+
current.endpoints.push(value.trim());
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
for (const processInfo of processes) {
|
|
107
|
+
if (processInfo.pid === proxyPid)
|
|
108
|
+
continue;
|
|
109
|
+
const ownsClientEndpoint = processInfo.endpoints.some((endpoint) => {
|
|
110
|
+
const [clientEndpoint, proxyEndpoint] = endpoint.split('->');
|
|
111
|
+
return endpointMatches(parseNetworkEndpoint(clientEndpoint || ''), remotePort, remoteAddress) && endpointMatches(parseNetworkEndpoint(proxyEndpoint || ''), localPort, localAddress);
|
|
112
|
+
});
|
|
113
|
+
if (ownsClientEndpoint) {
|
|
114
|
+
return {
|
|
115
|
+
pid: processInfo.pid,
|
|
116
|
+
command: processInfo.command || `PID ${processInfo.pid}`,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
function extractMacApplicationPath(commandLine) {
|
|
123
|
+
const match = commandLine.match(/^(.+?\.app)(?:\/|\s|$)/);
|
|
124
|
+
return match?.[1];
|
|
125
|
+
}
|
|
126
|
+
function readHeader(headers, name) {
|
|
127
|
+
if (!headers)
|
|
128
|
+
return '';
|
|
129
|
+
const direct = headers[name] ?? headers[name.toLowerCase()];
|
|
130
|
+
if (Array.isArray(direct))
|
|
131
|
+
return direct[0] || '';
|
|
132
|
+
if (typeof direct === 'string')
|
|
133
|
+
return direct;
|
|
134
|
+
const entry = Object.entries(headers)
|
|
135
|
+
.find(([headerName]) => headerName.toLowerCase() === name.toLowerCase());
|
|
136
|
+
const value = entry?.[1];
|
|
137
|
+
return Array.isArray(value) ? value[0] || '' : typeof value === 'string' ? value : '';
|
|
138
|
+
}
|
|
139
|
+
function inferredApplication(applicationName, confidence = 'medium') {
|
|
140
|
+
return {
|
|
141
|
+
applicationName,
|
|
142
|
+
applicationIdentitySource: 'user-agent',
|
|
143
|
+
applicationIdentityConfidence: confidence,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Infer the browser or embedded web runtime represented by a User-Agent string.
|
|
148
|
+
* The result describes the HTTP client signature, not a verified remote process.
|
|
149
|
+
*/
|
|
150
|
+
function inferApplicationIdentityFromUserAgent(userAgent) {
|
|
151
|
+
const value = userAgent?.trim();
|
|
152
|
+
if (!value)
|
|
153
|
+
return undefined;
|
|
154
|
+
if (/\bEdgiOS\//i.test(value) || /\bEdgA?\//i.test(value)) {
|
|
155
|
+
return inferredApplication('Microsoft Edge');
|
|
156
|
+
}
|
|
157
|
+
if (/\bOP(?:R|iOS)\//i.test(value)) {
|
|
158
|
+
return inferredApplication('Opera');
|
|
159
|
+
}
|
|
160
|
+
if (/\bSamsungBrowser\//i.test(value)) {
|
|
161
|
+
return inferredApplication('Samsung Internet');
|
|
162
|
+
}
|
|
163
|
+
if (/\bDuckDuckGo\//i.test(value)) {
|
|
164
|
+
return inferredApplication('DuckDuckGo Browser');
|
|
165
|
+
}
|
|
166
|
+
if (/\bFxiOS\//i.test(value) || /\bFirefox\//i.test(value)) {
|
|
167
|
+
return inferredApplication('Mozilla Firefox');
|
|
168
|
+
}
|
|
169
|
+
if (/\bCriOS\//i.test(value) || /\bChrome\//i.test(value) || /\bChromium\//i.test(value)) {
|
|
170
|
+
const isAndroidWebView = /;\s*wv\)/i.test(value)
|
|
171
|
+
|| (/\bVersion\/4\.0\b/i.test(value) && /\bMobile Safari\//i.test(value));
|
|
172
|
+
if (isAndroidWebView)
|
|
173
|
+
return inferredApplication('Android WebView', 'low');
|
|
174
|
+
return inferredApplication('Google Chrome');
|
|
175
|
+
}
|
|
176
|
+
if (/\bAppleWebKit\//i.test(value) && /\bMobile\//i.test(value) && !/\bSafari\//i.test(value)) {
|
|
177
|
+
return inferredApplication('iOS WebView', 'low');
|
|
178
|
+
}
|
|
179
|
+
if (/\bVersion\//i.test(value) && /\bSafari\//i.test(value) && /\bAppleWebKit\//i.test(value)) {
|
|
180
|
+
return inferredApplication('Safari');
|
|
181
|
+
}
|
|
182
|
+
return undefined;
|
|
183
|
+
}
|
|
184
|
+
function inferApplicationIdentityFromHeaders(headers) {
|
|
185
|
+
return inferApplicationIdentityFromUserAgent(readHeader(headers, 'user-agent'));
|
|
186
|
+
}
|
|
187
|
+
async function readApplicationMetadata(appPath, runner) {
|
|
188
|
+
try {
|
|
189
|
+
const plistPath = path.join(appPath, 'Contents', 'Info.plist');
|
|
190
|
+
const output = await runner('/usr/bin/plutil', ['-convert', 'json', '-o', '-', plistPath]);
|
|
191
|
+
const plist = JSON.parse(output);
|
|
192
|
+
const name = [plist.CFBundleDisplayName, plist.CFBundleName]
|
|
193
|
+
.find((value) => typeof value === 'string' && value.trim().length > 0);
|
|
194
|
+
const bundleId = typeof plist.CFBundleIdentifier === 'string'
|
|
195
|
+
? plist.CFBundleIdentifier.trim()
|
|
196
|
+
: undefined;
|
|
197
|
+
return {
|
|
198
|
+
name: name?.trim(),
|
|
199
|
+
bundleId: bundleId || undefined,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
catch (_) {
|
|
203
|
+
return {};
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
function createApplicationIdentityPipeline(strategies) {
|
|
207
|
+
return {
|
|
208
|
+
async resolve(context) {
|
|
209
|
+
if (context.existingIdentity?.applicationName) {
|
|
210
|
+
return context.existingIdentity;
|
|
211
|
+
}
|
|
212
|
+
for (const strategy of strategies) {
|
|
213
|
+
const identity = await strategy.resolve(context);
|
|
214
|
+
if (identity)
|
|
215
|
+
return identity;
|
|
216
|
+
}
|
|
217
|
+
return undefined;
|
|
218
|
+
},
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
function createLocalProcessApplicationIdentityStrategy(options = {}) {
|
|
222
|
+
const platform = options.platform || process.platform;
|
|
223
|
+
const proxyPid = options.proxyPid || process.pid;
|
|
224
|
+
const runner = options.runCommand || runCommand;
|
|
225
|
+
const socketCache = new WeakMap();
|
|
226
|
+
const metadataCache = new Map();
|
|
227
|
+
const resolveUncached = async (socket) => {
|
|
228
|
+
if (platform !== 'darwin')
|
|
229
|
+
return undefined;
|
|
230
|
+
if (!(0, remote_access_1.isLoopbackAddress)(socket.remoteAddress))
|
|
231
|
+
return undefined;
|
|
232
|
+
if (!socket.remotePort || !socket.localPort)
|
|
233
|
+
return undefined;
|
|
234
|
+
try {
|
|
235
|
+
const lsofOutput = await runner('/usr/sbin/lsof', [
|
|
236
|
+
'-nP',
|
|
237
|
+
'-a',
|
|
238
|
+
`-iTCP:${socket.remotePort}`,
|
|
239
|
+
'-sTCP:ESTABLISHED',
|
|
240
|
+
'-Fpcn',
|
|
241
|
+
]);
|
|
242
|
+
const processInfo = parseLsofProcess(lsofOutput, socket.remotePort, socket.localPort, proxyPid, socket.remoteAddress, socket.localAddress);
|
|
243
|
+
if (!processInfo)
|
|
244
|
+
return undefined;
|
|
245
|
+
let commandLine = '';
|
|
246
|
+
try {
|
|
247
|
+
commandLine = (await runner('/bin/ps', [
|
|
248
|
+
'-p',
|
|
249
|
+
String(processInfo.pid),
|
|
250
|
+
'-o',
|
|
251
|
+
'command=',
|
|
252
|
+
])).trim();
|
|
253
|
+
}
|
|
254
|
+
catch (_) {
|
|
255
|
+
commandLine = '';
|
|
256
|
+
}
|
|
257
|
+
const applicationPath = extractMacApplicationPath(commandLine);
|
|
258
|
+
let metadata = {};
|
|
259
|
+
if (applicationPath) {
|
|
260
|
+
let pending = metadataCache.get(applicationPath);
|
|
261
|
+
if (!pending) {
|
|
262
|
+
pending = readApplicationMetadata(applicationPath, runner);
|
|
263
|
+
metadataCache.set(applicationPath, pending);
|
|
264
|
+
}
|
|
265
|
+
metadata = await pending;
|
|
266
|
+
}
|
|
267
|
+
return {
|
|
268
|
+
applicationName: metadata.name || processInfo.command,
|
|
269
|
+
applicationProcess: processInfo.command,
|
|
270
|
+
applicationPid: processInfo.pid,
|
|
271
|
+
applicationPath,
|
|
272
|
+
applicationBundleId: metadata.bundleId,
|
|
273
|
+
applicationIdentitySource: 'local-process',
|
|
274
|
+
applicationIdentityConfidence: 'high',
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
catch (_) {
|
|
278
|
+
return undefined;
|
|
279
|
+
}
|
|
280
|
+
};
|
|
281
|
+
return {
|
|
282
|
+
id: 'local-process',
|
|
283
|
+
resolve(context) {
|
|
284
|
+
if (context.clientType && context.clientType !== 'local') {
|
|
285
|
+
return Promise.resolve(undefined);
|
|
286
|
+
}
|
|
287
|
+
const socket = context.socket;
|
|
288
|
+
if (!socket || typeof socket !== 'object')
|
|
289
|
+
return Promise.resolve(undefined);
|
|
290
|
+
const cacheKey = socket;
|
|
291
|
+
let pending = socketCache.get(cacheKey);
|
|
292
|
+
if (!pending) {
|
|
293
|
+
pending = resolveUncached(socket);
|
|
294
|
+
socketCache.set(cacheKey, pending);
|
|
295
|
+
void pending.then((identity) => {
|
|
296
|
+
if (!identity && socketCache.get(cacheKey) === pending) {
|
|
297
|
+
socketCache.delete(cacheKey);
|
|
298
|
+
}
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
return pending;
|
|
302
|
+
},
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
function createUserAgentApplicationIdentityStrategy() {
|
|
306
|
+
return {
|
|
307
|
+
id: 'user-agent',
|
|
308
|
+
resolve(context) {
|
|
309
|
+
if (context.clientType !== 'remote')
|
|
310
|
+
return undefined;
|
|
311
|
+
return inferApplicationIdentityFromHeaders(context.headers);
|
|
312
|
+
},
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
function createApplicationIdentityResolver(options = {}) {
|
|
316
|
+
return createApplicationIdentityPipeline([
|
|
317
|
+
createLocalProcessApplicationIdentityStrategy(options),
|
|
318
|
+
createUserAgentApplicationIdentityStrategy(),
|
|
319
|
+
]);
|
|
320
|
+
}
|
|
321
|
+
//# sourceMappingURL=application-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-identity.js","sourceRoot":"","sources":["../../core/application-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"body-utils.d.ts","sourceRoot":"","sources":["../../core/body-utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAC5B,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,MAAM,GAClB,MAAM,CAeR"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.safeBodyToString = safeBodyToString;
|
|
4
|
+
const content_encoding_1 = require("./content-encoding");
|
|
5
|
+
function safeBodyToString(buf, max, encoding) {
|
|
6
|
+
if (!Buffer.isBuffer(buf) || buf.length === 0)
|
|
7
|
+
return '';
|
|
8
|
+
const content = (0, content_encoding_1.decompressContentEncoding)(buf, encoding);
|
|
9
|
+
if (!content)
|
|
10
|
+
return `(compressed body: ${encoding || 'unknown'}, ${buf.length} bytes)`;
|
|
11
|
+
if (content.length > max) {
|
|
12
|
+
return `(truncated, ${content.length} bytes)\n` + content.slice(0, max).toString('utf8');
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
return content.toString('utf8');
|
|
16
|
+
}
|
|
17
|
+
catch (_) {
|
|
18
|
+
return '(binary)';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=body-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"body-utils.js","sourceRoot":"","sources":["../../core/body-utils.ts"],"names":[],"mappings":";;AAEA,4CAmBC;AArBD,yDAA+D;AAE/D,SAAgB,gBAAgB,CAC5B,GAAiB,EACjB,GAAW,EACX,QAAiB;IAEjB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEzD,MAAM,OAAO,GAAG,IAAA,4CAAyB,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzD,IAAI,CAAC,OAAO;QAAE,OAAO,qBAAqB,QAAQ,IAAI,SAAS,KAAK,GAAG,CAAC,MAAM,SAAS,CAAC;IAExF,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACvB,OAAO,eAAe,OAAO,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,UAAU,CAAC;IACtB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../core/browser.ts"],"names":[],"mappings":"AAMA,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAuC/H"}
|