@jonathanleelx/meddle 0.5.0-beta.2 → 0.5.0-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/CONFIG_STRUCTURE.md +8 -2
  2. package/README.md +2 -0
  3. package/bin/commands/mock/add.js +33 -4
  4. package/bin/commands/mock/delete.js +8 -1
  5. package/bin/commands/mock/index.js +8 -4
  6. package/bin/commands/mock/list.js +1 -0
  7. package/bin/commands/mock/toggle.js +8 -1
  8. package/bin/commands/mock/update.js +31 -5
  9. package/bin/commands/route/active.js +6 -2
  10. package/bin/commands/route/add.js +12 -2
  11. package/bin/commands/route/create.js +8 -1
  12. package/bin/commands/route/delete.js +12 -2
  13. package/bin/commands/route/update.js +12 -2
  14. package/bin/commands/update.js +4 -0
  15. package/bin/lib/file-access.js +68 -25
  16. package/bin/lib/output.js +20 -1
  17. package/bin/lib/proxy-detect.js +99 -20
  18. package/bin/lib/update-check.js +67 -6
  19. package/dist/core/config-diagnostics.d.ts.map +1 -1
  20. package/dist/core/config-diagnostics.js +6 -1
  21. package/dist/core/config-diagnostics.js.map +1 -1
  22. package/dist/core/custom-plugin-loader.d.ts.map +1 -1
  23. package/dist/core/custom-plugin-loader.js +2 -0
  24. package/dist/core/custom-plugin-loader.js.map +1 -1
  25. package/dist/core/h2-pool.d.ts +1 -0
  26. package/dist/core/h2-pool.d.ts.map +1 -1
  27. package/dist/core/h2-pool.js +79 -23
  28. package/dist/core/h2-pool.js.map +1 -1
  29. package/dist/core/mock-handler.d.ts +65 -0
  30. package/dist/core/mock-handler.d.ts.map +1 -1
  31. package/dist/core/mock-handler.js +525 -29
  32. package/dist/core/mock-handler.js.map +1 -1
  33. package/dist/core/mock-utils.d.ts +58 -0
  34. package/dist/core/mock-utils.d.ts.map +1 -0
  35. package/dist/core/mock-utils.js +167 -0
  36. package/dist/core/mock-utils.js.map +1 -0
  37. package/dist/core/plugin-bootstrap-runner.d.ts +1 -0
  38. package/dist/core/plugin-bootstrap-runner.d.ts.map +1 -1
  39. package/dist/core/plugin-bootstrap-runner.js +37 -1
  40. package/dist/core/plugin-bootstrap-runner.js.map +1 -1
  41. package/dist/core/plugin-intercept.d.ts.map +1 -1
  42. package/dist/core/plugin-intercept.js +1 -0
  43. package/dist/core/plugin-intercept.js.map +1 -1
  44. package/dist/core/plugin-source.d.ts +24 -0
  45. package/dist/core/plugin-source.d.ts.map +1 -0
  46. package/dist/core/plugin-source.js +47 -0
  47. package/dist/core/plugin-source.js.map +1 -0
  48. package/dist/core/types.d.ts +13 -1
  49. package/dist/core/types.d.ts.map +1 -1
  50. package/dist/helpers.d.ts +8 -1
  51. package/dist/helpers.d.ts.map +1 -1
  52. package/dist/helpers.js +22 -5
  53. package/dist/helpers.js.map +1 -1
  54. package/dist/plugins/builtin/mock-plugin.d.ts.map +1 -1
  55. package/dist/plugins/builtin/mock-plugin.js +6 -5
  56. package/dist/plugins/builtin/mock-plugin.js.map +1 -1
  57. package/dist/server/agent/tools.d.ts.map +1 -1
  58. package/dist/server/agent/tools.js +4 -0
  59. package/dist/server/agent/tools.js.map +1 -1
  60. package/dist/server/app-info.d.ts +19 -0
  61. package/dist/server/app-info.d.ts.map +1 -0
  62. package/dist/server/app-info.js +84 -0
  63. package/dist/server/app-info.js.map +1 -0
  64. package/dist/server/config.d.ts +1 -0
  65. package/dist/server/config.d.ts.map +1 -1
  66. package/dist/server/config.js +57 -7
  67. package/dist/server/config.js.map +1 -1
  68. package/dist/server/health.d.ts.map +1 -1
  69. package/dist/server/health.js +8 -0
  70. package/dist/server/health.js.map +1 -1
  71. package/dist/server/index.d.ts +15 -0
  72. package/dist/server/index.d.ts.map +1 -1
  73. package/dist/server/index.js +2 -0
  74. package/dist/server/index.js.map +1 -1
  75. package/dist/server/mocks.d.ts +26 -0
  76. package/dist/server/mocks.d.ts.map +1 -1
  77. package/dist/server/mocks.js +110 -13
  78. package/dist/server/mocks.js.map +1 -1
  79. package/dist/server/plugins.d.ts.map +1 -1
  80. package/dist/server/plugins.js +56 -11
  81. package/dist/server/plugins.js.map +1 -1
  82. package/dist/server/rule-files.d.ts +53 -0
  83. package/dist/server/rule-files.d.ts.map +1 -1
  84. package/dist/server/rule-files.js +281 -30
  85. package/dist/server/rule-files.js.map +1 -1
  86. package/index.js +33 -5
  87. package/mcp-server.js +3 -0
  88. package/package.json +3 -2
  89. package/plugins/builtin/mock-plugin.ts +9 -5
  90. package/web/dist/assets/alert-BmsRCcSL.js +1 -0
  91. package/web/dist/assets/arrow-right-BNum_060.js +1 -0
  92. package/web/dist/assets/{body-diff-view-D7dCWajG.js → body-diff-view-ByCHr9bv.js} +2 -2
  93. package/web/dist/assets/button-BFNlGZ5p.js +1 -0
  94. package/web/dist/assets/check-BkfHQ6re.js +1 -0
  95. package/web/dist/assets/checkbox-v2kzp7K8.js +1 -0
  96. package/web/dist/assets/chevron-down-DHwUtL4O.js +1 -0
  97. package/web/dist/assets/{circle-alert-Q8cZk9Rv.js → circle-alert-zMagrFuI.js} +1 -1
  98. package/web/dist/assets/{circle-x-C9USji_R.js → circle-x-BEkinhez.js} +1 -1
  99. package/web/dist/assets/code-DD-AYxxu.js +1 -0
  100. package/web/dist/assets/{copy-BYjq1hdN.js → copy-BRnscYy1.js} +1 -1
  101. package/web/dist/assets/detail-panel-DK7pM43g.js +4 -0
  102. package/web/dist/assets/{dist-D5Dj17P8.js → dist-BCvvYbmI.js} +1 -1
  103. package/web/dist/assets/dist-BNcjMpca.js +1 -0
  104. package/web/dist/assets/{dist-Bb9TeEub.js → dist-C-E2R2jk.js} +1 -1
  105. package/web/dist/assets/{dist-C6eaYCUo.js → dist-CFZ4xMSF.js} +1 -1
  106. package/web/dist/assets/{dist-C5nMErq8.js → dist-CRmX_NvH.js} +1 -1
  107. package/web/dist/assets/dist-DD7AvbXP.js +1 -0
  108. package/web/dist/assets/{dist-Cn0y0IRn.js → dist-LiAcI8CK.js} +1 -1
  109. package/web/dist/assets/dist-UcOFuoN0.js +5 -0
  110. package/web/dist/assets/{dist-B8XUKgXe.js → dist-YM3jbhT-.js} +1 -1
  111. package/web/dist/assets/editor-pane-actions-DN-pxFsl.js +1 -0
  112. package/web/dist/assets/es2015-CRmLuA2o.js +41 -0
  113. package/web/dist/assets/{global-panel-shell-R-EZQRhs.js → global-panel-shell-D32I98dR.js} +4 -4
  114. package/web/dist/assets/health-panel-Dw7qdFVS.js +1 -0
  115. package/web/dist/assets/index-CYUNdxqh.css +2 -0
  116. package/web/dist/assets/index-CkoYwomI.js +18 -0
  117. package/web/dist/assets/mobile-proxy-panel-DtiDkpAa.js +8 -0
  118. package/web/dist/assets/mock-config-C3jSpNNu.js +1 -0
  119. package/web/dist/assets/mock-editor-panel-ByCYWJjO.js +20 -0
  120. package/web/dist/assets/mocks-file-missing-note-DmrrCBYY.js +1 -0
  121. package/web/dist/assets/monaco-editor-6oLiu4W6.js +11 -0
  122. package/web/dist/assets/pane-split-DYB05onX.js +1 -0
  123. package/web/dist/assets/panel-heading-BS8loc49.js +1 -0
  124. package/web/dist/assets/{pencil-line-Cqe41E4h.js → pencil-line-CEZ7D-de.js} +1 -1
  125. package/web/dist/assets/plugin-code-editor-DGzCBEpg.js +2 -0
  126. package/web/dist/assets/plugin-config-NVw234EF.js +2 -0
  127. package/web/dist/assets/plugin-generator-Ba4hP5rg.js +2 -0
  128. package/web/dist/assets/plugin-test-dialog-B4ojc2_9.js +7 -0
  129. package/web/dist/assets/plus-ixZQRprm.js +1 -0
  130. package/web/dist/assets/{refresh-cw-CG3HaiQT.js → refresh-cw-BfLoHqg5.js} +1 -1
  131. package/web/dist/assets/rotate-ccw-CRguJya4.js +1 -0
  132. package/web/dist/assets/route-preview-BspvfNdW.js +1 -0
  133. package/web/dist/assets/{rule-ai-assistant-panel-CNL1O0GY.js → rule-ai-assistant-panel-CQTsZMJu.js} +2 -2
  134. package/web/dist/assets/rule-config-DDOeMRXa.js +15 -0
  135. package/web/dist/assets/rule-overview-panel-CmWdMs4I.js +1 -0
  136. package/web/dist/assets/{server-Cpj4KNwN.js → server-eYXq3PbE.js} +1 -1
  137. package/web/dist/assets/settings-panel-aB0ojA9D.js +1 -0
  138. package/web/dist/assets/{shield-check-OqUmVLQt.js → shield-check-hQXjdfZ7.js} +1 -1
  139. package/web/dist/assets/smartphone-D4Q7cQfm.js +1 -0
  140. package/web/dist/assets/switch-DpLnRvOJ.js +1 -0
  141. package/web/dist/assets/{syntax-highlight-BHsSDUha.js → syntax-highlight-EJCxGikd.js} +1 -1
  142. package/web/dist/assets/table-2-DvGHhMm4.js +1 -0
  143. package/web/dist/assets/table-C3mgEjkP.js +1 -0
  144. package/web/dist/assets/textarea-BjWF0pk4.js +1 -0
  145. package/web/dist/assets/{wand-sparkles-wkul5vje.js → wand-sparkles-DDGjzjnX.js} +1 -1
  146. package/web/dist/assets/{wifi-D9M35Ajj.js → wifi-QkTcTrED.js} +1 -1
  147. package/web/dist/assets/{zap-Djo4cgux.js → zap-CEVoVkAg.js} +1 -1
  148. package/web/dist/index.html +17 -12
  149. package/web/dist/assets/alert-Bve02Ufr.js +0 -1
  150. package/web/dist/assets/arrow-right-B4Mrlj2-.js +0 -1
  151. package/web/dist/assets/button-BTToMaBW.js +0 -1
  152. package/web/dist/assets/checkbox-DK9f9Mxu.js +0 -1
  153. package/web/dist/assets/chevron-down-CPngAx4M.js +0 -1
  154. package/web/dist/assets/chevron-right-V1DGIDbL.js +0 -1
  155. package/web/dist/assets/code-5_eJ_XpJ.js +0 -1
  156. package/web/dist/assets/code-fixer-IRTVs-a6.js +0 -20
  157. package/web/dist/assets/detail-panel--2r_Fgpi.js +0 -4
  158. package/web/dist/assets/dist-CxdY_A67.js +0 -5
  159. package/web/dist/assets/es2015-CfXu88Y7.js +0 -41
  160. package/web/dist/assets/file-system-access-DK7FI6pN.js +0 -1
  161. package/web/dist/assets/health-panel-CKt2-Gkj.js +0 -1
  162. package/web/dist/assets/index-DhzkcDnh.js +0 -18
  163. package/web/dist/assets/index-PcoCj3ST.css +0 -2
  164. package/web/dist/assets/mobile-proxy-panel-Dxz-7iYx.js +0 -8
  165. package/web/dist/assets/mock-config-84LSNP6M.js +0 -1
  166. package/web/dist/assets/mock-editor-panel-RJ1abekr.js +0 -1
  167. package/web/dist/assets/monaco-editor-CbL970eS.js +0 -11
  168. package/web/dist/assets/plugin-code-editor-DfLc4JdP.js +0 -2
  169. package/web/dist/assets/plugin-config-CT-u4XYw.js +0 -1
  170. package/web/dist/assets/plugin-generator-CyBK9FuM.js +0 -2
  171. package/web/dist/assets/plugin-test-dialog-B-NF0sGH.js +0 -7
  172. package/web/dist/assets/plus-tVxSydJ8.js +0 -1
  173. package/web/dist/assets/rotate-ccw-CAYM6Vv0.js +0 -1
  174. package/web/dist/assets/route-preview-C8nW9w7i.js +0 -1
  175. package/web/dist/assets/rule-config-DXfovZnm.js +0 -15
  176. package/web/dist/assets/select-DQ6s7CL8.js +0 -1
  177. package/web/dist/assets/settings-panel-BhXgMr_a.js +0 -1
  178. package/web/dist/assets/smartphone-DKeDuJTU.js +0 -1
  179. package/web/dist/assets/switch-C-Xk56TK.js +0 -1
  180. package/web/dist/assets/table-DymgLlcc.js +0 -1
  181. package/web/dist/assets/textarea-vuxJwU0x.js +0 -1
  182. /package/web/dist/assets/{ai-config-store-DQXVJVn_.js → ai-config-store-B_VpGvwx.js} +0 -0
  183. /package/web/dist/assets/{babel-DsprIpXZ.js → babel-D1quDdNt.js} +0 -0
  184. /package/web/dist/assets/{clipboard-Dz6MgwV-.js → clipboard-DUgC_tNv.js} +0 -0
  185. /package/web/dist/assets/{dist-DZJ9SMlJ.js → dist-Bq2klZ3g.js} +0 -0
  186. /package/web/dist/assets/{estree-BP7k0NIt.js → estree--Vq99DGn.js} +0 -0
  187. /package/web/dist/assets/{html-6FIWbqxX.js → html-D2PZBPnP.js} +0 -0
  188. /package/web/dist/assets/{postcss-Dnf30fQU.js → postcss-DfIslWug.js} +0 -0
  189. /package/web/dist/assets/{standalone-CjxtLKw-.js → standalone-D-fjaAIs.js} +0 -0
@@ -1,5 +1,70 @@
1
1
  import type { ProxyContext, MockHandler, MockRuleEntry } from './types';
2
2
  /** 按 id 去重,后出现的条目覆盖先前的(与前端 use-mocks 行为一致) */
3
3
  export declare function dedupeMockRulesById(rules: MockRuleEntry[]): MockRuleEntry[];
4
+ export interface MocksParseError {
5
+ /** 1-based line of the parse failure (null when the engine gives no position). */
6
+ line: number | null;
7
+ /** 1-based column of the parse failure. */
8
+ column: number | null;
9
+ /** Raw JSON.parse message. */
10
+ message: string;
11
+ }
12
+ /** Thrown when a write would overwrite a mocks file that failed to parse (issue #120). */
13
+ export declare class MocksFileInvalidError extends Error {
14
+ readonly filePath: string;
15
+ readonly parseError: MocksParseError;
16
+ readonly code = "MOCKS_FILE_INVALID";
17
+ constructor(filePath: string, parseError: MocksParseError);
18
+ }
19
+ export declare function formatMocksParseError(filePath: string, err: MocksParseError): string;
20
+ /**
21
+ * Parse mocks file text. Issue #120: empty / whitespace-only text is an empty
22
+ * rule list (not an error); anything else that fails JSON.parse returns a
23
+ * parse error with 1-based line/column.
24
+ */
25
+ export declare function parseMocksFileText(text: string): {
26
+ data: any;
27
+ error: null;
28
+ } | {
29
+ data: null;
30
+ error: MocksParseError;
31
+ };
32
+ /**
33
+ * Offset of the first JSON syntax error (V8 does not always report a
34
+ * position, e.g. "Unexpected token ']', ... is not valid JSON").
35
+ */
36
+ export declare function findJsonErrorOffset(t: string): number;
37
+ /**
38
+ * Issue #123: the real file a write to `file` must replace. Symlinks are
39
+ * followed so the link itself is never replaced. A dangling link (target
40
+ * missing) creates the target at the link destination when its directory
41
+ * exists, otherwise throws a clear error (the link is left untouched).
42
+ */
43
+ export declare function resolveMocksWriteTarget(file: string): string;
44
+ /**
45
+ * Issue #121: turn the configured `mocksFilePath` into an absolute path.
46
+ * `~` / `~/…` expand to the user's home directory; a relative path is
47
+ * resolved against the meddle directory (MEDDLE_HOME), not the directory the
48
+ * proxy happened to be started from.
49
+ */
50
+ export declare function resolveConfiguredMocksPath(raw: string | null | undefined, meddleDir: string, homeDir?: string): string | null;
51
+ export interface LegacyMocksPath {
52
+ /** What the user configured (a relative path). */
53
+ configured: string;
54
+ /** Where the file was found under the old rule (relative to the proxy's start directory). */
55
+ oldPath: string;
56
+ /** Where the path resolves now (relative to MEDDLE_HOME); does not exist. */
57
+ newPath: string;
58
+ }
59
+ /**
60
+ * Issue #121 migration notice: a relative `mocksFilePath` used to resolve
61
+ * against the proxy's start directory. If the file exists there but not
62
+ * under the new rule (MEDDLE_HOME), report both paths so the user can switch
63
+ * to the old absolute path. Never migrates or rewrites settings.
64
+ */
65
+ export declare function detectLegacyMocksPath(raw: string | null | undefined, meddleDir: string, cwd?: string, homeDir?: string): LegacyMocksPath | null;
66
+ export declare function formatLegacyMocksNotice(l: LegacyMocksPath): string;
67
+ /** Read the raw (unresolved) mocksFilePath from settings.json. */
68
+ export declare function readConfiguredMocksPath(settingsPath: string): string | null;
4
69
  export declare function createMockHandler(ctx: ProxyContext): MockHandler;
5
70
  //# sourceMappingURL=mock-handler.d.ts.map
@@ -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;AAIvE,8CAA8C;AAC9C,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAQ3E;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,WAAW,CAoPhE"}
1
+ {"version":3,"file":"mock-handler.d.ts","sourceRoot":"","sources":["../../core/mock-handler.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAYvE,8CAA8C;AAC9C,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAQ3E;AAED,MAAM,WAAW,eAAe;IAC5B,kFAAkF;IAClF,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,0FAA0F;AAC1F,qBAAa,qBAAsB,SAAQ,KAAK;IAEhC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAAE,QAAQ,CAAC,UAAU,EAAE,eAAe;IAD3E,QAAQ,CAAC,IAAI,wBAAuB;gBACf,QAAQ,EAAE,MAAM,EAAW,UAAU,EAAE,eAAe;CAI9E;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,MAAM,CAGpF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,CAsBpH;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAmDrD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkB5D;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,MAAqB,GAAG,MAAM,GAAG,IAAI,CAO3I;AAED,MAAM,WAAW,eAAe;IAC5B,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAA;IAClB,6FAA6F;IAC7F,OAAO,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAA;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,EAAE,OAAO,GAAE,MAAqB,GAAG,eAAe,GAAG,IAAI,CAS5K;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAGlE;AAED,kEAAkE;AAClE,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM3E;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,WAAW,CAudhE"}