| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Display the parameter name instead of the parameter type
whenver users interact with commands. This makes it easy to
enter commands just by their signature. We may want to expose type
information in the command list, but some quick testing showed that
this are rather intuitive anyways.
- Add shift tab backward cycling for the command completion.
- Use inspect.Signature instead of homebrew argument matching solution.
This gets rid of quite a bit of cruft.
- Remove some type checking hacks in mitmproxy.types
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Fixes #2810
|
|
|
|
|
| |
fixes #3088
fixes #2787
|
|
|
|
|
| |
This is going to be a super common error for addon authors, so we might as well
handle it.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
test-for-2850
few fixes
mock testing
Typo error
|
|
|
|
|
| |
Previously, quotes would disappear during editing, making it
impossible to enter command arguments with spaces.
|
|
|
|
| |
Display context-sensitive argument types as an "underlay" in commander.
|
|
|
|
|
|
|
| |
- Add palette entries specific to commander
- Highlight errors
- Introduce an Unknown type to keep track of extra unknown arguments to
commands
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
The type system was scattered over a number of places, making it hard to
follow. This collects all command types in types.py, and completion, validation
and parsing for each type is centralised. We should use the same mechanism for
options.
|
| |
|
|
|
|
| |
Fixes #2681
|
|
|
|
|
| |
Make the cuts API more transparent. Cut specifications are no longer a
centrally resolved core type, and flows are now passed explicitly.
|
|
|
|
| |
This lets us complete commands passed to commands correctly.
|
| |
|
| |
|
|
|
|
| |
We only return Cmd and str types for the moment.
|
|
|
|
|
|
| |
This represents a command passed as an argument. Also split arguments from
command values themselves, making the command help for meta-commands much
clearer.
|
| |
|
|
|
|
|
|
|
| |
This is just an alias for str, and in this patch is used mostly to give an
appropriate type in help strings. More to come.
Fixes #2198
|
|
|
|
|
|
|
|
|
| |
This resolves as a string during MyPy checks, but at runtime has an additional
attribute that is a command that returns valid options.
This is very ugly and clumsy, basically because MyPy is super restrictive about
what it accepts as a type. Almost any attempt to construct these types in a
more sophisticated way fails in one way or another. I'm open to suggestions.
|
|
|
| |
Fixes #2652, and many other possible crashes on user input.
|
|
|
|
| |
We should annotate with the base type, not the resulting sequence.
|
|
|
|
|
|
| |
Use this to simplify meta-commands in console, and to create a console_choose
command that prompts the user for a choice, and then executes a command with
variable substitution.
|
|
|
|
|
|
|
|
|
|
| |
Also add a "raw" export format.
The Python and Locust exports are hard to maintain, their tests are extremely
brittle, they didn't have full test coverage, and are by my guess very rarely
used. I feel the Locust export should certainly be an externally maintained
addon. The Python/requests export can come back if someone cares enough, and it
can be structured in a way we can maintain.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This PR introduces the cuts addon, a flow dissector that allows you to select
and operate on specific components of flows. It also adds the first consumer
for cuts - the cuts.save command.
Save the content of the focus to /tmp/foo:
cuts.save s.content|@focus /tmp/foo
Save the URL and response content-type headers for all flows currently shown to
file, comma-separated, one flow per line:
cuts.save s.url,q.header[content-type]|@focus /tmp/foo
We also use this to replace the body save shortcut in the console flowlist.
|
|
|
|
|
| |
Add "view.mark [flows] bool" and "view.mark.toggle [flows]". Use this to rebind
marking keys in flowlist.
|
|
|
|
|
| |
bind G to "view.go -1"
bind g to "view.go 0"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch:
- Introduces a core update() event that should be invoked whenever flows are
changed outside of the normal lifecycle.
- Extend view.resolve to know about @all, which matches all flows in the view.
- Add a core flow.resume comand, which resumes flows and broadcasts an update event.
- Define flow list bindings for:
A -> flow.resume @all
a -> flow.resume @focus
d -> view.remove @focus
z -> view.remove @all
|
|
|
|
| |
Use this for our built-ins and the console commands.
|
|
|
|
| |
Use this to add a console.view.flow command and bind "enter" in flowlist.
|
|
|
|
|
| |
This sketches out a keymap system for consone, and adds the first few top-level
commands and mappings.
|
|
|
|
|
| |
Simple browser that lets users view and select commands interactively.
Key binding for this is still to be sorted out.
|