{"id":25841642,"url":"https://github.com/somaz94/dev-toolkit-google-extension","last_synced_at":"2026-06-12T05:32:15.277Z","repository":{"id":271358509,"uuid":"913166209","full_name":"somaz94/dev-toolkit-google-extension","owner":"somaz94","description":"dev-toolkit-google-extension","archived":false,"fork":false,"pushed_at":"2026-03-25T06:12:42.000Z","size":141,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-25T11:53:46.725Z","etag":null,"topics":["base64","chrome-extension","developer-tools","devtools","javascript","json-formatter","jwt","manifest-v3","url-encoder"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/somaz94.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-07T06:52:21.000Z","updated_at":"2026-03-25T06:12:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"50e4b4fc-1674-457d-8d55-4d90fb8808ae","html_url":"https://github.com/somaz94/dev-toolkit-google-extension","commit_stats":null,"previous_names":["somaz94/dev-toolkit-google-extension"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/somaz94/dev-toolkit-google-extension","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somaz94%2Fdev-toolkit-google-extension","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somaz94%2Fdev-toolkit-google-extension/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somaz94%2Fdev-toolkit-google-extension/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somaz94%2Fdev-toolkit-google-extension/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/somaz94","download_url":"https://codeload.github.com/somaz94/dev-toolkit-google-extension/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somaz94%2Fdev-toolkit-google-extension/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34231214,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["base64","chrome-extension","developer-tools","devtools","javascript","json-formatter","jwt","manifest-v3","url-encoder"],"created_at":"2025-03-01T05:29:54.896Z","updated_at":"2026-06-12T05:32:15.270Z","avatar_url":"https://github.com/somaz94.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dev Toolkit\n\nA lightweight Chrome extension providing developer utilities for encoding, decoding, and formatting.\n\nZero dependencies. Zero permissions. Manifest V3.\n\n\u003cbr/\u003e\n\n## Screenshot\n\n\u003cimg src=\"./img/app.png\" width=\"300\" alt=\"Dev Toolkit\"\u003e\n\n\u003cbr/\u003e\n\n## Features\n\n### JSON Formatter \u0026 Validator\n- Format JSON with proper indentation\n- Validate JSON syntax\n- Support for nested objects and arrays\n\n### Base64 Encoder/Decoder\n- Encode text to Base64\n- Decode Base64 to text\n- Validate Base64 format\n\n### JWT Token Tools\n- Encode JSON payload to JWT\n- Decode JWT tokens\n- View header, payload, and signature\n\n### URL Encoder/Decoder\n- Encode URLs with special characters\n- Decode URL-encoded strings\n- Support for query parameters\n\n### Timestamp Converter\n- Unix timestamp to date (auto-detect seconds/milliseconds)\n- Date string to Unix timestamp\n- UTC and local time display\n\n### Hash Generator\n- SHA-1, SHA-256, SHA-384, SHA-512\n- Web Crypto API based\n\n### UUID Generator\n- UUID v4 generation\n- Batch generation (up to 100)\n\n### Color Converter\n- Auto-detect HEX, RGB, HSL input\n- Convert to all three formats\n\n### Diff Viewer\n- Line-by-line text comparison\n- Summary with added/removed/unchanged counts\n\n### Dark Mode\n- Toggle between light and dark themes\n- Persistent theme preference\n\n### Keyboard Shortcuts\n- `Ctrl+Enter` — Execute conversion\n- `Ctrl+Shift+C` — Copy result\n- `Alt+1-9` — Switch tabs\n\nSee [Features](docs/FEATURES.md) for detailed usage and examples.\n\n\u003cbr/\u003e\n\n## Installation\n\n\u003cbr/\u003e\n\n### Chrome Web Store\n1. Visit [Dev Toolkit](https://chromewebstore.google.com/detail/dev-toolkit/docgjoppdhbahapgbemfadlkgchnmecc)\n2. Click \"Add to Chrome\"\n\n\u003cbr/\u003e\n\n### From Source\n```bash\ngit clone https://github.com/somaz94/dev-toolkit-google-extension.git\ncd dev-toolkit-google-extension\n```\n1. Open Chrome \u003e `chrome://extensions/`\n2. Enable \"Developer mode\"\n3. Click \"Load unpacked\" and select the project directory\n\n\u003cbr/\u003e\n\n## Usage\n\n1. Click the extension icon in Chrome\n2. Select a tool tab (JSON, Base64, JWT, URL)\n3. Choose mode (Encode/Decode) if applicable\n4. Input text and click the action button\n5. Copy the result with the Copy button\n\n\u003cbr/\u003e\n\n## Examples\n\n\u003cbr/\u003e\n\n### JSON Formatting\n```json\nInput: {\"name\":\"John\",\"age\":30,\"city\":\"New York\"}\n\nOutput:\n{\n  \"name\": \"John\",\n  \"age\": 30,\n  \"city\": \"New York\"\n}\n```\n\n\u003cbr/\u003e\n\n### Base64\n```\nEncode: Hello World! → SGVsbG8gV29ybGQh\nDecode: SGVsbG8gV29ybGQh → Hello World!\n```\n\n\u003cbr/\u003e\n\n### JWT Decode\n```\nInput: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0...\n\nOutput:\nHeader: { \"alg\": \"HS256\" }\nPayload: { \"sub\": \"1234567890\" }\n```\n\n\u003cbr/\u003e\n\n### URL\n```\nEncode: https://example.com?name=John Doe → https%3A%2F%2Fexample.com%3Fname%3DJohn%20Doe\nDecode: https%3A%2F%2Fexample.com%3Fname%3DJohn%20Doe → https://example.com?name=John Doe\n```\n\n\u003cbr/\u003e\n\n### Timestamp\n```\nTimestamp → Date:\nInput: 1711270800\nOutput: UTC: 2024-03-24 07:00:00 UTC / Local: 03/24/2024, 16:00:00 KST\n\nDate → Timestamp:\nInput: 2026-03-24 (or \"now\")\nOutput: Seconds: 1774440000 / Milliseconds: 1774440000000\n```\n\n\u003cbr/\u003e\n\n### Hash\n```\nInput: Hello World!\nOutput:\nSHA-1:   2ef7bde608ce5404e97d5f042f95f89f1c232871\nSHA-256: 7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069\n```\n\n\u003cbr/\u003e\n\n### UUID\n```\nInput: 3 (or empty for 1)\nOutput:\n550e8400-e29b-41d4-a716-446655440000\n6ba7b810-9dad-11d1-80b4-00c04fd430c8\nf47ac10b-58cc-4372-a567-0e02b2c3d479\n```\n\n\u003cbr/\u003e\n\n### Color\n```\nInput: #ff6347\nOutput:\nHEX: #ff6347\nRGB: rgb(255, 99, 71)\nHSL: hsl(9, 100%, 64%)\n```\n\n\u003cbr/\u003e\n\n### Diff\n```\nInput:\nhello world\n---\nhello earth\n\nOutput:\n[Summary] +1 added, -1 removed, 0 unchanged\n  - hello world\n  + hello earth\n```\n\n\u003cbr/\u003e\n\n## Project Structure\n\n```\ndev-toolkit-google-extension/\n├── manifest.json              # Chrome extension config (Manifest V3)\n├── Makefile                   # Build, test, package commands\n├── src/\n│   ├── popup/\n│   │   ├── popup.html         # UI markup\n│   │   ├── popup.js           # Event handling \u0026 orchestration\n│   │   └── popup.css          # Light/dark theme styling\n│   └── utils/\n│       ├── jsonFormatter.js   # JSON formatting \u0026 validation\n│       ├── base64Utils.js     # Base64 encode/decode\n│       ├── jwtDecoder.js      # JWT token decoding\n│       ├── jwtEncoder.js      # JWT token encoding (HMAC-SHA256)\n│       ├── urlUtils.js        # URL encode/decode\n│       ├── timestampUtils.js  # Unix timestamp conversion\n│       ├── hashUtils.js       # Hash generation (SHA-1/256/384/512)\n│       ├── uuidUtils.js       # UUID v4 generation\n│       ├── colorUtils.js      # Color conversion (HEX/RGB/HSL)\n│       ├── diffUtils.js       # Line-by-line text diff\n│       └── validator.js       # Input validation\n├── tests/                     # Unit tests (Jest)\n├── hack/                      # Scripts (bump-version)\n├── icons/                     # Extension icons (16, 48, 128px)\n├── docs/                      # Documentation\n└── .github/workflows/         # CI/CD\n```\n\n\u003cbr/\u003e\n\n## Tech Stack\n\n- JavaScript (ES6 Modules) — no bundler, no dependencies\n- HTML5 / CSS3 with CSS custom properties\n- Chrome Extension Manifest V3\n- Native browser APIs (Clipboard, localStorage, Web Crypto)\n\n\u003cbr/\u003e\n\n## Documentation\n\n- [Features](docs/FEATURES.md) - Detailed usage and examples for all tools\n- [Development](docs/DEVELOPMENT.md) - Setup, local development, adding tools, Chrome Web Store publishing\n\n\u003cbr/\u003e\n\n## Contributing\n\nPull requests are welcome. For major changes, please open an issue first.\n\n\u003cbr/\u003e\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsomaz94%2Fdev-toolkit-google-extension","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsomaz94%2Fdev-toolkit-google-extension","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsomaz94%2Fdev-toolkit-google-extension/lists"}