shellfirm 0.3.9

`shellfirm` will intercept any risky patterns (default or defined by you) and prompt you a small challenge for double verification, kinda like a captcha for your terminal.
Documentation
---
# -- mongodb:drop --
- test: "mongosh --eval db.users.drop()"
  description: "executing drop operations via MongoDB shell"
  expect_ids: ["mongodb:drop", "mongodb:interactive_drop_collection"]
- test: "mongosh  --eval  db.orders.drop()"
  description: "extra spaces in mongosh drop command still matches"
  expect_ids: ["mongodb:drop", "mongodb:interactive_drop_collection"]
- test: "mongosh --eval db.users.find()"
  description: "mongosh find operation should not trigger drop check"
  expect_ids: []

# -- mongodb:interactive_drop_collection --
- test: "db.users.drop()"
  description: "interactive MongoDB drop collection"
  expect_ids: ["mongodb:interactive_drop_collection"]
- test: "db.orders.drop()"
  description: "interactive MongoDB drop orders collection"
  expect_ids: ["mongodb:interactive_drop_collection"]
- test: "db.users.find()"
  description: "interactive MongoDB find should not trigger drop check"
  expect_ids: []

# -- mongodb:interactive_drop_database --
- test: "db.dropDatabase()"
  description: "interactive MongoDB drop database"
  expect_ids: ["mongodb:interactive_drop_database"]
- test: "DB.DROPDATABASE()"
  description: "interactive MongoDB drop database uppercase"
  expect_ids: ["mongodb:interactive_drop_database"]

# ====== EDGE CASE / STRESS TESTS ======

# -- mongodb:drop edge cases --
- test: "mongo --eval db.users.drop()"
  description: "match old mongo client with --eval drop"
  expect_ids: ["mongodb:drop", "mongodb:interactive_drop_collection"]
- test: "mongosh 'mongodb://localhost/test' --eval 'db.dropDatabase()'"
  description: "EDGE: connection string before --eval"
  expect_ids: ["mongodb:drop", "mongodb:interactive_drop_database"]

# -- mongodb:interactive_drop_collection edge cases --
- test: "db.my_collection.drop()"
  description: "EDGE: underscore in collection name"
  expect_ids: ["mongodb:interactive_drop_collection"]
- test: "db.my-collection.drop()"
  description: "match hyphenated collection name in drop"
  expect_ids: ["mongodb:interactive_drop_collection"]