Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions PRIVACY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Privacy Policy

API Response Comparator does not collect, sell, share, or transmit user data to
the developer or third-party analytics services.

The browser extensions store draft comparison inputs and UI preferences locally
in the browser using extension storage. This may include pasted JSON, uploaded
JSON file contents, API URLs, cURL commands, ignore fields, path search text,
selected input mode, selected result view, and theme preference.

The extensions send network requests only when the user explicitly provides
HTTPS API URLs or HTTPS cURL commands and clicks the compare action. Those
requests are sent directly from the browser to the user-provided endpoints for
the purpose of comparing API responses.

The extensions do not include analytics, advertising, tracking, remote logging,
account creation, or a separate backend service.

The web application version uses its server-side proxy only when the user
explicitly requests URL or cURL comparison through the app. The proxy validates
requests for safety and does not store comparison payloads.

If you have privacy questions or support requests, open an issue at:
https://github.com/arnabnandy7/api-response-comparator/issues
41 changes: 41 additions & 0 deletions browser-extension/chrome/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# API Response Comparator Chrome Extension

This is the Chrome-first browser extension version of API Response Comparator.
It is intentionally kept separate from the Next.js app and has no build step.

## Load Locally

1. Open `chrome://extensions`.
2. Enable **Developer mode**.
3. Click **Load unpacked**.
4. Select this folder: `browser-extension/chrome`.

## Current Scope

- Manifest V3 Chrome extension popup
- Manual JSON paste, format, file upload, and per-input clear controls
- Direct HTTPS URL fetch comparison from the extension popup
- Safe cURL parsing and structured browser fetch execution
- Optional Dev, QA, and Prod comparison with any two inputs
- Ignore leaf fields and volatility-based ignore suggestions
- `ADDED`, `REMOVED`, `CHANGED`, and `TYPE_CHANGE` rows
- Separate rows when one path has different outcome types
- Contract-change alert
- Diff counts, type filters, and path search
- Table view and color-coded JSON tree view
- Copy, JSON download, and Excel-compatible `.xls` download
- Full reset with in-flight URL and cURL request invalidation
- Light and dark themes
- Local draft persistence with `chrome.storage.local`

## Notes

- This extension fetches HTTPS API URLs directly using Chrome extension host
permissions instead of the Next.js app server proxy.
- cURL imports are parsed into structured requests. Shell operators and
file-based request bodies are rejected; browser-restricted headers are
filtered before fetch.
- The Excel export is an Excel-compatible `.xls` table so the extension can stay
dependency-free and load unpacked without a build step.
- Firefox, Edge, and other browser variants can be added under sibling folders
once the Chrome behavior is settled.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added browser-extension/chrome/assets/icons/icon-16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added browser-extension/chrome/assets/icons/icon-32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added browser-extension/chrome/assets/icons/icon-48.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 24 additions & 0 deletions browser-extension/chrome/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"manifest_version": 3,
"name": "API Response Comparator",
"description": "Compare JSON API responses across Dev, QA, and Prod from a browser popup.",
"version": "0.1.0",
"icons": {
"16": "assets/icons/icon-16.png",
"32": "assets/icons/icon-32.png",
"48": "assets/icons/icon-48.png",
"128": "assets/icons/icon-128.png"
},
"action": {
"default_title": "API Response Comparator",
"default_popup": "popup.html",
"default_icon": {
"16": "assets/icons/icon-16.png",
"32": "assets/icons/icon-32.png",
"48": "assets/icons/icon-48.png",
"128": "assets/icons/icon-128.png"
}
},
"permissions": ["storage", "clipboardWrite"],
"host_permissions": ["https://*/*"]
}
Loading
Loading